Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

1 CSI 3125, Preliminaries, page 1 Class

2 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.

3 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:

4 CSI 3125, Preliminaries, page 4 The General Form of a Class class class name { type instance variable; type methods(parameter list) { method body; }

5 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()

6 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();

7 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.

8 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

9 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.

10 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

11 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

12 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.

13 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);

14 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;}

15 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

16 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.

17 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.


Download ppt "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."

Similar presentations


Ads by Google