Presentation is loading. Please wait.

Presentation is loading. Please wait.

Object Based Programming

Similar presentations


Presentation on theme: "Object Based Programming"— Presentation transcript:

1 Object Based Programming
Chapter 8

2 In This Chapter We will learn about classes Garbage Collection
Data Abstraction and encapsulation

3 Contrast Procedural Languages Object Oriented Languages
Action oriented Concentrate on writing functions Data supports the actions Object Oriented Languages Concentrate on creating reference types Look for nouns which indicate classes Fields are data members Methods support manipulation of the objects

4 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?

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

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

7 Constructors Methods which have the same name as the class
Included in a class to ensure that instance variables contain valid values when objects are created The constructor is called when a class object is created with the new Note: Do not have the constructor return a value

8 Using Classes View Figure 8.2 Note Advantages of classes
Creation of a time object with new Call of the constructor Use of public methods to get and set the private data values Use of toString functions Advantages of classes Simplifies client perception of classes Reduces number of parameters

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

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

11 Using the this Reference
Every object can access a reference to itself Use the keyword this If a method has a local variable with same name as class variable, use the this to access the class variable Explicit use of this can increase program clarity for human readers Note example, Figure 8.4

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

13 Using Set and Get Methods
Private data fields manipulated only by provided public methods Some methods used to set 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 public The set methods are written to ensure valid data values

14 Composition A class can have references to objects of other classes 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.7 Employee Class Figure 8.8 Employee Test program Figure 8.9

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

16 Enumerations – enum types
enum constants can be used anywhere constants can enum constructor Like class constructors, can specify parameters and be overloaded Note use from chapter 6, Figure 6.9 See example, Figure 8.10 Note test program, Figure 8.11

17 Enumerations – enum types
static method values Generated by the compiler for every enum Returns an array of the enum’s constants in the order in which they were declared static method range 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, inclusive An enhanced for statement can iterate over an EnumSet as it can over an array

18 Enumeration as a Class When an enumeration is defined
A class is created Default methods include toString equals ordinal valueOf Also possible to provide additional methods

19 Enumeration as a Class Consider the following example of an enumeration of card suits View definition of class Suit Note constructor, getColor View demonstration program

20 Enumeration as a Class View class LetterGrade
An enumeration class Note class elements Consider the following code LetterGrade myGrade = LetterGrade.B_PLUS; Discuss the results of calls to various LetterGrade methods

21 Garbage Collection Garbage collection finalize method
JVM marks an object for garbage collection when there are no more references 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.13 finalize method All classes in Java have the finalize method Inherited from the Object class finalize is called by the garbage collector when it performs termination housekeeping finalize takes no parameters and has return type void

22 static Class Members Normally each class object has its own copy of the instance variables Possible to specify a variable that is shared by all existing objects of the class Called a static variable Also called a class variable – class wide information Also possible to have a static method 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.13

23 static Class Members String objects are immutable
String concatenation operations actually result in the creation of a new String object static methods cannot access non-static class members Also cannot use the this reference

24 static Class Members static method gc 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 no objects or only a subset of eligible objects will be collected Note example call in Fig. 8.13

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

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

27 Packages Packages enable grouping together multiple related classes
Specify a class to be part of a package with first line package myStuff; Place all classes in same directory which is named with the name of the package In your program which uses the package import myStuff.*;

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

29 Data Abstraction & Encapsulation
Information hiding Classes hide details of implementation 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 methods provided


Download ppt "Object Based Programming"

Similar presentations


Ads by Google