csi 3125, preliminaries, page 1 class. csi 3125, preliminaries, page 2 class the most important...

17
CSI 3125, Preliminaries, page 1 Class

Upload: bryan-merritt

Post on 19-Jan-2016

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: CSI 3125, Preliminaries, page 1 Class. CSI 3125, Preliminaries, page 2 Class The most important thing to understand about a class is that it defines a

CSI 3125, Preliminaries, page 1

Class

Page 2: CSI 3125, Preliminaries, page 1 Class. CSI 3125, Preliminaries, page 2 Class The most important thing to understand about a class is that it defines a

CSI 3125, Preliminaries, page 2

Class• The most important thing to understand about a class

is that it defines a new data type. • Once defined, this new type can be used to create

objects of that type.• Thus, a class is a template for an object, and an object

is an instance of a class. • Because an object is an instance of a class, you will

often see the two words object and instance used interchangeably.

Page 3: CSI 3125, Preliminaries, page 1 Class. CSI 3125, Preliminaries, page 2 Class The most important thing to understand about a class is that it defines a

CSI 3125, Preliminaries, page 3

The General Form of a Class• When define a class,• declare its exact form and nature. • Specifying the data that it contains and the code that

operates on that data. • A class is declared by use of the class keyword.• The general form of a class definition is shown here:

Page 4: CSI 3125, Preliminaries, page 1 Class. CSI 3125, Preliminaries, page 2 Class The most important thing to understand about a class is that it defines a

CSI 3125, Preliminaries, page 4

The General Form of a Class• class class name• {• type instance variable;• type methods(parameter list)• {• method body;• }• }

Page 5: CSI 3125, Preliminaries, page 1 Class. CSI 3125, Preliminaries, page 2 Class The most important thing to understand about a class is that it defines a

CSI 3125, Preliminaries, page 5

The General Form of a Class• The data or variables defined within a class are called

instance variables• Methods and variables defined within the class are

called members in the class• All methods have the same form as main()

Page 6: CSI 3125, Preliminaries, page 1 Class. CSI 3125, Preliminaries, page 2 Class The most important thing to understand about a class is that it defines a

CSI 3125, Preliminaries, page 6

The Class• Example• class check• {• int a,b,c;

}• Here class called check that defines 3 instance variables : a,b

& c• Here class check defines a new type of data• The new data type is called check• Class declaration is only a template• To create check object • Check obj = new check();

Page 7: CSI 3125, Preliminaries, page 1 Class. CSI 3125, Preliminaries, page 2 Class The most important thing to understand about a class is that it defines a

CSI 3125, Preliminaries, page 7

The General Form of a Class• After this statement executes, obj will be an instance

of check.• the new operator dynamically allocates memory for

an object. • Check obj = new check();• The class name followed by parentheses specifies the

constructor for the class. • A constructor defines what occurs when an object of a

class is created.

Page 8: CSI 3125, Preliminaries, page 1 Class. CSI 3125, Preliminaries, page 2 Class The most important thing to understand about a class is that it defines a

CSI 3125, Preliminaries, page 8

Add methods in the class• Syntax• type method name(parameter list)• {

method body;

• }• --• Methods with arguments• Methods with return type

Page 9: CSI 3125, Preliminaries, page 1 Class. CSI 3125, Preliminaries, page 2 Class The most important thing to understand about a class is that it defines a

CSI 3125, Preliminaries, page 9

Constructors• Initialized the class variables• It has the same name as the class in which it resides

and is syntactically similar to a method• Once defined, the constructor is automatically called

immediately after the object is created, before the new operator completes.• They have no return type, not even void.

Page 10: CSI 3125, Preliminaries, page 1 Class. CSI 3125, Preliminaries, page 2 Class The most important thing to understand about a class is that it defines a

CSI 3125, Preliminaries, page 10

Constructors• eg• class check• {• int a,b;• check(){a=b=10;}• void show(){system.out.println(“a=“+a+”b=“+b);• }• …• Check obj=new check();• Then the constructor method automatically executed

Page 11: CSI 3125, Preliminaries, page 1 Class. CSI 3125, Preliminaries, page 2 Class The most important thing to understand about a class is that it defines a

CSI 3125, Preliminaries, page 11

Parameterized Constructors• Constructor method with parameters• Theses value can be passed when object is created and initialized to

class variables• eg• class check• {• int a,b;• check(int x, int y ){a=x; b=y;}• void show(){system.out.println(“a=“+a+”b=“+b);• }• …• check obj=new check(10,20);• Then the constructor method assigns a=10 and b=20

Page 12: CSI 3125, Preliminaries, page 1 Class. CSI 3125, Preliminaries, page 2 Class The most important thing to understand about a class is that it defines a

CSI 3125, Preliminaries, page 12

The this Keyword• Method will need to refer to the object that invoked

it. • To allow this, Java defines the this keyword. • This can be used inside any method to refer to the

current object.• That is, this is always a reference to the object on

which the method was invoked. • Can use this anywhere a reference to an object of the

current class’ type is permitted.

Page 13: CSI 3125, Preliminaries, page 1 Class. CSI 3125, Preliminaries, page 2 Class The most important thing to understand about a class is that it defines a

CSI 3125, Preliminaries, page 13

The this Keyword• eg• class check• {• int a,b;• check(int x, int y ){this.a=x; this.b=y;}• void show(){system.out.println(“a=“+a+”b=“+b);• }• …• check obj=new check(10,20);

Page 14: CSI 3125, Preliminaries, page 1 Class. CSI 3125, Preliminaries, page 2 Class The most important thing to understand about a class is that it defines a

CSI 3125, Preliminaries, page 14

Instance Variable Hiding• it is illegal in Java to declare two local variables with the

same name• When a local variable has the same name as an instance

variable, the local variable hides the instance variable. • • This is why a & b were not used as the names of the

parameters to the check ( ) constructor inside the check class. • If they had been, then a would have referred to the formal

parameter, hiding the instance variable a.

• check(int a, int b ){this.a=a; this.b=b;}

Page 15: CSI 3125, Preliminaries, page 1 Class. CSI 3125, Preliminaries, page 2 Class The most important thing to understand about a class is that it defines a

CSI 3125, Preliminaries, page 15

Garbage Collection• Since objects are dynamically allocated by using the new

operator• how such objects are destroyed and their memory released for

later reallocation. • In C++, dynamically allocated objects must be manually

released by use of a delete operator. • in Java automatically deallocate. • The technique is called garbage collection.• It works like this: • when no references to an object exist, that object is assumed to

be no longer needed, and the memory occupied by the object can be reclaimed. • There is no explicit need to destroy

Page 16: CSI 3125, Preliminaries, page 1 Class. CSI 3125, Preliminaries, page 2 Class The most important thing to understand about a class is that it defines a

CSI 3125, Preliminaries, page 16

The finalize( ) Method• By using finalization, can define specific actions that will occur

when an object is just about to be reclaimed by the garbage collector.• To add a finalizer to a class, simply define the finalize( ) method. • The Java run time calls that method whenever it is about to

recycle an object of that class. • Inside the finalize( ) method , specify those actions that must

be performed before an object is destroyed.• The garbage collector runs periodically, checking for objects

that are no longer referenced by any running state or indirectly through other referenced objects. • Right before an asset is freed, the Java run time calls the

finalize( ) method on the object.

Page 17: CSI 3125, Preliminaries, page 1 Class. CSI 3125, Preliminaries, page 2 Class The most important thing to understand about a class is that it defines a

CSI 3125, Preliminaries, page 17

The finalize( ) Method• The finalize( ) method has this general form:• protected void finalize( )• {• // finalization code here• }• The keyword protected is a specifier that prevents access to

finalize( ) by code defined outside its class. • It is important to understand that finalize( ) is only called just

prior to garbage collection. • It is not called when an object goes out-of-scope, for example. • This means that you cannot know when—or even if—finalize( )

will be executed.