Presentation is loading. Please wait.

Presentation is loading. Please wait.

Object Based Programming Chapter 8. 2 Contrast ____________________ Languages –Action oriented –Concentrate on writing ________________ –Data supports.

Similar presentations


Presentation on theme: "Object Based Programming Chapter 8. 2 Contrast ____________________ Languages –Action oriented –Concentrate on writing ________________ –Data supports."— Presentation transcript:

1 Object Based Programming Chapter 8

2 2 Contrast ____________________ Languages –Action oriented –Concentrate on writing ________________ –Data supports the actions Object Oriented Languages –Concentrate on creating reference types –Look for ____________ which indicate classes Fields are data members Methods support manipulation of the objects

3 3 Find the Objects … the Verbs In this game, what are nouns that are potential classes? What are verbs that represent things that the objects do?

4 4 Abstract Data Types (ADTs) Classes in Java make creation of ADTs easier –Implementation details ____________ from users of the class –Client code not dependent on ________________ Example of a class –Figure 8.1Figure 8.1 –Time class – keeps track of time in 24 hour format

5 5 Declaring Classes Usually data fields are specified as __________ ______________ are declared as public Any class member (data or method) which does not need to be accessed outside the class should be private It ____________________________ which comes first, data fields or methods –The author prefers data fields first

6 6 Constructors Methods which have the same name as the _____________________ Included in a class to ensure that instance variables contain __________________ when objects are created The constructor is called when a class object is created with the __________________ Note: –Do not have the constructor return a _________

7 7 Using Classes View Figure 8.2Figure 8.2 Note –Creation of a time object with new –Call of the constructor –Use of public functions to ____________ the private data values –Use of toString functions –Use of DecimalFormat class Advantages of classes –Simplifies client __________________ of classes –Reduces number of _______________________

8 8 Class Scope Variables and methods belong to the class's scope _________________ the class's scope –All class members are available, accessible Outside the class's scope –Client code that uses the class –Only _____________ members are available, accessible Access modifiers public and private control this availability

9 9 Controlling Access to Members The following would not be allowed – why? The data members are ___________. public class TimeTest2 { public static void main( String args[] ) { Time1 t = new Time1(); t.hour = 7; } public class TimeTest2 { public static void main( String args[] ) { Time1 t = new Time1(); t.hour = 7; }

10 10 Using the this Reference Every object can access a reference to ______ –Use the keyword this If a method has a ________ variable with same name as _________ variable, use the this to access the class variable Explicit use of this can increase program _____________ for human readers Note example, Figure 8.4Figure 8.4

11 11 Using Overloaded Constructors ________________ constructors for the same class are allowed The _____________ of the constructors must be different –Different numbers and/or types of parameters See example in Figure 8.5 and 8.6Figure 8.5 8.6

12 12 Using Set and Get Methods Private data fields manipulated only by provided _________________________ –Some methods used to _________ the data values –Others used to get the values Return the value directly Print the value Note: this is not the same as making the data values __________________ –The set methods are written to ensure valid data values

13 13 Composition A class can have references to __________________________ as members Example: –An alarm clock class contains a Time object as one of its members –Employee class has Date object as one of its members –See Date Class, Figure 8.7Figure 8.7 Employee Class Figure 8.8Figure 8.8 Employee Test program Figure 8.9Figure 8.9

14 14 Enumerations – enum types Declared with an ___________ declaration A comma-separated list of enum constants Declares an enum class with the following restrictions: –enum types are implicitly _____________ –enum constants are implicitly ______________ –Attempting to create an object of an enum type with new is a compilation error

15 15 Enumerations – enum types enum constants can be used anywhere _____________ can enum constructor –Like class constructors, can specify ____________ and be overloaded See example, Figure 8.10Figure 8.10 Note test program, Figure 8.11Figure 8.11

16 16 Enumerations – enum types static method values –Generated by the __________ for every enum –Returns an array of the enum ’s constants in the order in which they were declared static method _________ of class EnumSet –Takes two parameters, the first and last enum constants in the desired range –Returns an EnumSet containing the constants in that range, ________________ –An enhanced _________ statement can iterate over an EnumSet as it can over an array

17 17 Garbage Collection Garbage collection –JVM marks an object for garbage collection when there are no more _________________ to that object –JVM’s garbage collector will retrieve those objects memory so it can be used for other objects –See lines 27 – 32 of Figure 8.1327 – 32 of Figure 8.13 _________________ method –All classes in Java have the finalize method Inherited from the Object class –finalize is called by the ____________________ when it performs termination housekeeping –finalize takes no parameters and has no return type _____________

18 18 static Class Members Normally each class object has its own copy of the instance variables Possible to specify a variable that is __________ by all existing objects of the class –Called a static variable –Also called a __________ variable – class wide information Also possible to have a static ______________ –Can be called even if no object of the class has been instantiated –Use class name, then dot, then static method name Note examples in Fig. 8.12, test pgm Fig. 8.13Fig. 8.12Fig. 8.13

19 19 static Class Members String objects are _________________ –String concatenation operations actually result in the creation of a ___________ String object static methods ________________ non- static class members –Also cannot use the ____________ reference

20 20 static Class Members static method _________ of class System –Indicates that the garbage collector should make a best-effort attempt to reclaim objects eligible for garbage collection –It is possible that _______ objects or only a _________ of eligible objects will be collected Note example call in Fig. 8.13Fig. 8.13

21 21 static Import Recall static fields and methods of class Math J2SE 5.0 enables importing static members as if ______________________ where used Note Figure 8.14 import static java.lang.Math.*Note Figure 8.14

22 22 Final Instance Variables Principle of least privilege –Code should have only the privilege and access it needs to ________________, but no more final instance variables –Keyword ______________ Specifies that a variable is ______ modifiable (is a constant) –final instance variables can be initialized at their _______________________ If they are not initialized in their declarations, they must be initialized in all constructors – Fig. 8.15Fig. 8.15

23 23 Software Reusability Many classes exist in the Java API Avoid "__________________" –Study capabilities of Java API –If it has a class that fits your needs, use it rather than creating your own

24 24 Data Abstraction & Encapsulation Information hiding –Classes hide details of _______________ from client Example: –Stack can be implemented with array or with linked list –Client program which depends on one implementation will have problems if new version with different implementation comes out Only use the ________________ provided


Download ppt "Object Based Programming Chapter 8. 2 Contrast ____________________ Languages –Action oriented –Concentrate on writing ________________ –Data supports."

Similar presentations


Ads by Google