Object Based Programming
Download
Report
Transcript Object Based Programming
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