Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Object Based Programming Chapter 8 Contrast • Procedural Languages – _____________ oriented – Concentrate on writing _____________ – Data supports the actions • Object Oriented Languages – Concentrate on creating _________________ – Look for nouns which indicate classes • ______________ are data members • Methods support manipulation of the _____________ 2 Find the Objects … the Verbs What are verbs that represent things that the objects do? In this game, what are nouns that are potential classes? 3 List Objects, Actions Objects Actions 4 Abstract Data Types (ADTs) • ____________ 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.1 – Time class – keeps track of time in 24 hour format 5 Declaring Classes • Usually data fields are specified as ________ • Methods are declared as ______________ • Any class member (data or method) which does not need to be accessed __________ ________________ should be private • It does not matter which comes first, data fields or methods – The author prefers data fields first 6 Constructors • Methods which have the _______________ as the class • Included in a class to ensure that instance variables contain __________________ when objects are created • The constructor is called when a class object is _____________________________ • Note: – Do not have the constructor return a value 7 Using Classes • View Figure 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 ________________________ of classes – Reduces number of _____________________ 8 Class Scope • __________________________________ 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 ______________ are available, accessible • __________________ public and private control this availability 9 Controlling Access to Members • The following would not be allowed – why? public class TimeTest2 { public static void main( String args[] ) { Time1 t = new Time1(); t.hour = 7; } } • The data members are . 10 Using the this Reference • Every object can access a reference to itself – Use the keyword _____________ • If a method has a local variable with ____________________ as class variable, use the this to access the class variable • Explicit use of this can increase program _____________________ for human readers • Note example, Figure 8.4 in text 11 Using Overloaded Constructors • ________________________ for the same class are allowed • The ___________________________ of the constructors must be different – Different _____________ and/or ___________ of parameters • See example in Figure 8.5 and 8.6 12 Using Set and Get Methods • Private data fields manipulated only by provided ________________ – Some methods used to set the data values – Others used to get the values • Return the value _____________ • _____________ the value • Note: this is not the same as making the data values _______________ – The set methods are written to ______________________________ 13 Using Set and Get Methods • View new version of Time class, Figure 8.7 • View the use of the Time3 class, Figure 8.8 • Note: – Creation of the Time3 object – _________________ the event handlers – Use of if – else – if sequence to perform the specified action – The displayTime() method – The tick() method 14 Composition • A class can have references to objects of _____________________ 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 • Employee Class 15 Garbage Collection • When constructors initialize an object's variables – Memory is acquired, allocated by OS – Eventually that memory must be _________________ lest this resource is squandered • Java performs automatic ____________ collection – – – – Returns memory of objects no longer in use Happens when references to an object _____________ Object is ___________ for garbage collection Garbage collection can be called for explicitly with the ____________________ function • Exists for every class • A void class, no parameters (See example Fig. 8.12, text) 16 Static Class Members • Normally each class object has its own copy of the __________________ variables • Possible to specify a variable that is ___________ by all existing objects of the class – Called a _________________ variable – Also called a ________ variable – class wide information • Also possible to have a static _____________ – Can be called even if _______________ of the class has been instantiated – Use ___________, then dot, then static method name • Note example in Figure 8.12 in text 17 Final Instance Variables • Like ___________ identifiers in C++ • Used when a variable is not supposed to be modified – Example of principle of __________________ • Must be initialized at __________________ – Otherwise cannot be modified! • By convention, the variable name is ______ – Helps human readers see programmer intent 18 Creating Packages • A ___________ is a group of related classes and interfaces • To create a package – Declare a ________ class – Specify a package name • • • • ________ per source code file Must ________ all other declarations, statements Last part of name is __________ name where stored Example: package com.deitel.jhtp4.ch08; 19 static Import • Recall static fields and methods of class Math • J2SE 5.0 enables importing static members as if _________________________ • Note Figure 8.14 import static java.lang.Math.* 20 Creating Packages – Compile class so placed in correct directories • Rest of the name is _______________ • Compiler __________ directories as needed, places compiled .class file in last of sequence – Finally, _________ the reusable class into a program and use the class // Java extension packages import javax.swing.*; // Deitel packages import com.deitel.jhtp4.ch08.Time2; . . . 21 Package Access • When no access modifier specified for class element – Then it is considered to have _____________. • If program uses multiple classes from same package – Classes can access each other's packageaccess elements directly through ________________________________ 22 Package Access • View example, Figure 8.18 • Every Java class has its own _________ file • When PackageDataTest is compiled – A ______________ for PackageDataTest class is created – A class file for the PackageData also created – They are placed in same ________________ • Because they are part of the same package – PackageDataTest allowed to _________ 23 package access data of objects of PackageData Software Reusability • Many classes exist in the Java API • Avoid "reinventing the wheel" – _________________ of Java API – If it has a class that fits your needs, use it rather than creating your own 24 Data Abstraction & Encapsulation • Information hiding – Classes _______________ of implementation from client • Example: – ____________ can be implemented with array or with linked list – _______________ which depends on one implementation will have problems if new version with different implementation comes out • Only use the methods provided 25