creating object classes

35
Java Fundamentals Creating Classes Objects and Methods Creating Classes, Objects, and Methods 1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Upload: straxbad

Post on 21-Jul-2016

224 views

Category:

Documents


0 download

DESCRIPTION

creating object classes

TRANSCRIPT

Page 1: creating object classes

Java FundamentalsCreating Classes Objects and MethodsCreating Classes, Objects, and Methods

1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 2: creating object classes

Creating Classes, Objects, and Methods

Overview

This lesson covers the following topics:• Recognize the correct general form of a class

C t bj t f l• Create an object of a class • Create methods that compile with no errors • Return a value from a method• Return a value from a method • Use parameters in a method • Create a driver class and add instances of ObjectCreate a driver class and add instances of Object

classes

2 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 3: creating object classes

Creating Classes, Objects, and Methods

Overview (cont.)

This lesson covers the following topics:• Add a constructor to a class

A l th t• Apply the new operator • Describe garbage collection and finalizers• Apply the this reference• Apply the this reference • Add a constructor to initialize a value

3 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 4: creating object classes

Creating Classes, Objects, and Methods

Creating a Class Template

Programmers can create their own classes. • Classes are essentially a template or blueprint for all

instances of the classinstances of the class.• The class code also communicates to the compiler how

to define, create, and interact with objects of the class.j• The code on the following slide starts to create the Class

Vehicle which will represent the basic outline for Vehicle objectsobjects.

4 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 5: creating object classes

Creating Classes, Objects, and Methods

Creating a Class Template Example

p blic class Vehicle {public class Vehicle {// the Vehicle class has two fields

private String make;private int milesPerGallon;

//constructor//constructorpublic Vehicle(){}

//mutator/setter methodpublic void setMake(String m){

make = m;}

//mutator/setter methodpublic void setMilesPerGallon(int mpg){

milesPerGallon = mpg;}

//accessor/getter method//accessor/getter methodpublic String getMake(){

return make;}

//accessor/getter methodpublic int getMilesPerGallon(){

5 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

p g (){return milesPerGallon;

} }

Page 6: creating object classes

Creating Classes, Objects, and Methods

Creating an Instance of a Class

Once you have created a class, you can create instances of the class (objects) in a Driver Class or inside other Object Classes.Object Classes.

Instances: • Inherit all attributes and methods defined in the class

template.• Interact independently of one another.• Are reference objects.

A t d i th t

6 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

• Are created using the new operator.

Page 7: creating object classes

Creating Classes, Objects, and Methods

Instantiate an Instance

To instantiate an instance of a Vehicle called myCar, write:

public class VehicleTester{{public static void main(String[] args){

Vehicle myCar = new Vehicle();}

}

In Java, instantiation is the creation of objects from a class.

7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 8: creating object classes

Creating Classes, Objects, and Methods

Constructors

Constructors are methods that allow the user to create instances of (instantiate) a class.• Good programming practice dictates that classes should• Good programming practice dictates that classes should

have a default constructor. • Constructors which contain parameters typically initialize p yp y

the private variables of the class to values passed in by the user.Constructors do not have a return type (void or other)• Constructors do not have a return type (void or other).

8 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 9: creating object classes

Creating Classes, Objects, and Methods

Default Constructor

Good programming practice dictates that classes should have a default constructor. A default constructor: • Takes no parameters• Takes no parameters.• Typically initializes all private variables to base values.

public Vehicle() {make = ““;milesPerGallon = 0;

}

9 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 10: creating object classes

Creating Classes, Objects, and Methods

Constructor with Parameters

A constructor with parameters is used when you want to initialize the private variables to values other than the default values.default values.public Vehicle(String m, int mpg){

make=m;milesPerGallon=mpg;

Parameters}

Parameters are variables that are listed as part of a method (or ) d l i I h l b S i d iconstructor) declaration. In the example above, String m and int

mpg are parameters. Values are given to the parameters when a call to the method or constructor is made.

10 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 11: creating object classes

Creating Classes, Objects, and Methods

Instantiate Vehicle Instance

To instantiate a Vehicle instance using the constructor with parameters, write:

To instantiate a Vehicle instance using the default

Vehicle myCar = new Vehicle(“Toyota”, 30);

To instantiate a Vehicle instance using the default constructor, write:Vehicle myCar = new Vehicle();

11 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 12: creating object classes

Creating Classes, Objects, and Methods

Defining Methods

A method is a block of code which is referred to by name and can be called at any point in a program simply by utilizing the method's name. There are four main parts toutilizing the method s name. There are four main parts to defining your own method:• Access Modifier (public, private, protected, default)• Return type• Method name• Parameter(s)public returnType methodName(Parameter p, …){

/*code that will execute with each call to the

12 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

/*code that will execute with each call to the method goes here*/

}

Page 13: creating object classes

Creating Classes, Objects, and Methods

Components of a Method

Method components include: • Return type:

This identifies what type of object if any will be returned– This identifies what type of object, if any, will be returned when the method is invoked (called).

– If nothing will be returned, the return type is declared as void.

• Method name: Used to make a call to the method.

13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 14: creating object classes

Creating Classes, Objects, and Methods

Components of a Method (cont.)

• Parameter(s): – The programmer may choose to include parameters

depending on the purpose and function of the method.depending on the purpose and function of the method. – Parameters can be of any primitive or type of object, but

the parameter type used when calling the method must match the parameter type specified in the methodmatch the parameter type specified in the method definition.

14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 15: creating object classes

Creating Classes, Objects, and Methods

Method Components Example

public String getName(String firstName, String lastName){

Return type Name of method Parameters

{return( firstName + " " + lastName );

}

15 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 16: creating object classes

Creating Classes, Objects, and Methods

Class Methods

Every class will have a set of methods associated with it which allow functionality for the class.• Accessor method• Accessor method

– “getter”– Returns the value of a specific private variable.

• Mutator method– “setter”

Ch t th l f ifi i t i bl– Changes or sets the value of a specific private variable.• Functional method

– Returns or performs some sort of functionality for the class.

16 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Returns or performs some sort of functionality for the class.

Page 17: creating object classes

Creating Classes, Objects, and Methods

Accessor Methods

Accessor methods access and return the value of a specific private variable of the class.• Non void return type corresponds to the data type of the• Non-void return type corresponds to the data type of the

variable you are accessing.• Include a return statement.• Usually have no parameters.

public String getMake(){return make;

}

public int getMilesPerGallon(){return milesPerGallon;

17 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

return milesPerGallon;}

Page 18: creating object classes

Creating Classes, Objects, and Methods

Mutator Methods

Mutator methods set or modify the value of a specified private variable of the class.• Void return type• Void return type.• Parameter with a type that corresponds to the type of

the variable being set.g

public void setMake(String m){make = m;

}

public void setMilesPerGallon(int mpg){milesPerGallon = mpg;

}

18 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 19: creating object classes

Creating Classes, Objects, and Methods

Functional Methods

Functional methods perform a functionality for the class.• Void or non-void return type.

P t ti l d d d di h t i• Parameters are optional and used depending on what is needed for the method's function.

19 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 20: creating object classes

Creating Classes, Objects, and Methods

Functional Methods (cont.)

Below is a functional method for the class Vehicle that compares two vehicles and returns an int value for the comparison.comparison.

//Compares the miles per gallon of each vehicle passed in, //returns 0 if they are the same, 1 if the first vehicle is //larger than the second and -1 if the second vehicle is larger than//larger than the second and 1 if the second vehicle is larger than the first

public int compareTo(Vehicle v1, Vehicle v2){if(v1.getMilesPerGallon()= = v2.getMilesPerGallon())

return 0; if(v1.getMilesPerGallon()> v2.getMilesPerGallon())

return 1; return -1;

}

20 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

}

Page 21: creating object classes

Creating Classes, Objects, and Methods

Using Constructors and Methods in a Driver class main method ExampleFor the following: • What functionality does each line have?

Wh t ill th fi l i t t t t i t t th ?• What will the final print statement print to the screen?

public class VehicleTester{public static void main(String[] args){pub c stat c o d a (St g[] a gs){

Vehicle v;v=new Vehicle();v.setMake(”Ford”);

tMil P G ll (35)v.setMilesPerGallon(35);

System.out.print(“My “+v.getMake() + “ gets “ + v.getMilesPerGallon() + “ mpg.”);

}

21 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

}

Page 22: creating object classes

Creating Classes, Objects, and Methods

this Reference

Within an instance method or a constructor, this is a reference to the current object. The reference to the object whose method or constructor is being called.whose method or constructor is being called.• Refer to any member of the current object by using this.• Most commonly used when a field is shadowed by a y y

method or constructor parameter of the same name.

22 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 23: creating object classes

Creating Classes, Objects, and Methods

this Reference Example

When a method argument “shadows” a field of the object, the this reference is used to differentiate the local scope from the class scope.from the class scope.

public class Point {private int x;Private int y;Private int y;

//constructorpublic Point(int x, int y) {

this.x = x;thithis.y = y;

}}

23 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 24: creating object classes

Creating Classes, Objects, and Methods

Card Class Example

Consider a standard deck of playing cards. To represent each card as an instance of a Card class, what attributes would the class need to have?would the class need to have?• Suit • Name• Points public class Card {

private String suit;private String name;private int points;

}

24 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 25: creating object classes

Creating Classes, Objects, and Methods

Reference Object Representation

When creating a new instance of an object, a reference is made to the object in memory.• The reference points to the object• The reference points to the object.• All attribute variables are created and initialized based

on the constructor used.Card c = new Card();

suit = null name= null points = 0

25 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 26: creating object classes

Creating Classes, Objects, and Methods

Understanding Garbage Collection

Memory management is difficult to master as a computer programmer. Luckily, Java has a special functionality called garbage collection.called garbage collection.

Garbage collection: g• Cleans up unused objects from memory.• Prevents memory leaks, free errors, and dangling

pointers.

26 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 27: creating object classes

Creating Classes, Objects, and Methods

Understanding Garbage Collection Example

Considering the code below, what will happen in memory after the line c2 = c; ? • When executed c2 = c; takes the reference c2 and• When executed, c2 = c; takes the reference c2 and

makes it reference the same object as c.• This effectively renders the original object c2 useless, y g j

and garbage collection takes care of it by removing it from memory.

Card c=new Card("Diamonds","Four",4);Card c2=new Card("Spades","Ace",1);c2 = c;

27 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 28: creating object classes

Fi li

Creating Classes, Objects, and Methods

Finalizers

A finalizer is code called by the garbage collector when it determines no more references to the object exist.

All objects inherit a finalize() method from java.lang.Object. j g j• This method takes no parameters and is written to

perform no action when called.

28 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 29: creating object classes

Fi li ( t )

Creating Classes, Objects, and Methods

Finalizers (cont.)

Overriding the finalize() method in classes allows you to modify what happens before garbage collection, such as:• Notifying the user about the garbage collection that is• Notifying the user about the garbage collection that is

about to occur.• Cleaning up non-Java resources, such as closing a file. g p g

29 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 30: creating object classes

Fi li M th d E l

Creating Classes, Objects, and Methods

Finalize Method Example

This is an example of the finalize() method overridden in a class. It closes all associated files and notifies the user that the finalization occurs.that the finalization occurs.

protected void finalize(){try{

close(); //close all filesclose(); //close all files}finally{

System.out.println(“Finalization has occured”);}

}

30 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 31: creating object classes

Creating Classes, Objects, and Methods

Terminology

Key terms used in this lesson included: • Accessor method

Cl• Class• Constructor• Finalizers• Finalizers• Garbage collection• InitializationInitialization• Instantiate• Method

31 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 32: creating object classes

Creating Classes, Objects, and Methods

Terminology

Key terms used in this lesson included: • Mutator method• new• Null• Object• Object• Reference• this Referencethis Reference

32 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 33: creating object classes

Creating Classes, Objects, and Methods

Summary

In this lesson, you should have learned how to:• Recognize the correct general form of a class

C t bj t f l• Create an object of a class • Create methods that compile with no errors • Return a value from a method• Return a value from a method • Use parameters in a method • Create a driver class and add instances of ObjectCreate a driver class and add instances of Object

classes

33 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 34: creating object classes

Creating Classes, Objects, and Methods

Summary (cont.)

In this lesson, you should have learned how to:• Add a constructor to a class

A l th t• Apply the new operator • Describe garbage collection and finalizers• Apply the this reference• Apply the this reference • Add a constructor to initialize a value

34 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 35: creating object classes

Creating Classes, Objects, and Methods

Practice

The exercises for this lesson cover the following topics:• Creating a class

C ti d i t t• Creating and using constructors• Creating methods with parameters and return values• Creating constructor to work with random values• Creating constructor to work with random values• Applying the new operator and the this reference

35 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.