meljun cortes java lecture creating own classes

69
Creating Your Own Creating Your Own Classes Classes Java Fundamentals and Object- Java Fundamentals and Object- Oriented Programming Oriented Programming The Complete Java Boot Camp The Complete Java Boot Camp MELJUN CORTES MELJUN CORTES MELJUN CORTES MELJUN CORTES

Upload: meljun-cortes

Post on 13-May-2015

172 views

Category:

Technology


0 download

DESCRIPTION

MELJUN CORTES Java Lecture Creating own Classes

TRANSCRIPT

Page 1: MELJUN CORTES Java Lecture Creating own Classes

Creating Your Own Creating Your Own ClassesClasses

Java Fundamentals and Object-Oriented Java Fundamentals and Object-Oriented ProgrammingProgramming

The Complete Java Boot CampThe Complete Java Boot Camp

MELJUN CORTESMELJUN CORTES

MELJUN CORTESMELJUN CORTES

Page 2: MELJUN CORTES Java Lecture Creating own Classes

ObjectivesObjectives

At the end of the lesson, the student should be At the end of the lesson, the student should be able to:able to:

Create their own classesCreate their own classes Declare attributes and methods for their classesDeclare attributes and methods for their classes Use the this reference to access instance dataUse the this reference to access instance data Create and call overloaded methodsCreate and call overloaded methods Import and create packagesImport and create packages Use access modifiers to control access to class Use access modifiers to control access to class

membersmembers

Page 3: MELJUN CORTES Java Lecture Creating own Classes

Defining your own classesDefining your own classes

Things to take note of for the syntax Things to take note of for the syntax defined in this section:defined in this section:

** means that there may be 0 or more means that there may be 0 or more occurrences of the line where it was applied to.occurrences of the line where it was applied to.

<description> <description> indicates that you have to indicates that you have to substitute an actual value for this part instead substitute an actual value for this part instead of typing it as it is.of typing it as it is.

[ ] [ ] indicates that this part is optionalindicates that this part is optional

Page 4: MELJUN CORTES Java Lecture Creating own Classes

Defining your own classesDefining your own classes

To define a class, we write:To define a class, we write:

<modifier> class <name> {<modifier> class <name> { <attributeDeclaration>*<attributeDeclaration>* <constructorDeclaration>*<constructorDeclaration>* <methodDeclaration>*<methodDeclaration>*}} where where

<modifier> is an access modifier, which may be combined with other types of modifier.

Page 5: MELJUN CORTES Java Lecture Creating own Classes

ExampleExample

public class StudentRecord {public class StudentRecord {//we'll add more code here //we'll add more code here

laterlater}} where,where,

public - means that our class is accessible to other classes outside the package

class - this is the keyword used to create a class in Java

StudentRecord - a unique identifier that describes our class

Page 6: MELJUN CORTES Java Lecture Creating own Classes

Best PracticeBest Practice

Think of an appropriate name for your class. Don't just call your class XYZ or any random names you can think of.

Class names should start with a CAPITAL letter.

The filename of your class should have the SAME NAME as your class name.

Page 7: MELJUN CORTES Java Lecture Creating own Classes

Declaring AttributesDeclaring Attributes

To declare a certain attribute for our class, To declare a certain attribute for our class, we write,we write,

<modifier> <type> <name> [= <modifier> <type> <name> [= <default_value>];<default_value>];

Page 8: MELJUN CORTES Java Lecture Creating own Classes

Instance VariablesInstance Variables

public class public class StudentRecord StudentRecord {{

private String name;private String address;private int age;private doublemathGrade;private doubleenglishGrade;private doublescienceGrade;private doubleaverage;//we'll add more code here later

}} where,where,

private here means that the variables are only accessible within the class. Other objects cannot access these variables directly. We will cover more about accessibility later.

Page 9: MELJUN CORTES Java Lecture Creating own Classes

Best PracticeBest Practice

Declare all your instance variables on the top Declare all your instance variables on the top of the class declaration.of the class declaration.

Declare one variable for each line.Declare one variable for each line.Instance variables, like any other variables Instance variables, like any other variables should start with a SMALL letter.should start with a SMALL letter.

Use an appropriate data type for each variable Use an appropriate data type for each variable you declare.you declare.

Declare instance variables as private so that Declare instance variables as private so that only that class’s methods can access them only that class’s methods can access them directly.directly.

Page 10: MELJUN CORTES Java Lecture Creating own Classes

Class (static) variablesClass (static) variables

public class public class StudentRecord StudentRecord {{//instance variables we have declaredprivate static int studentCount;//we'll add more code here later

}}

we use the keyword static to indicate that a we use the keyword static to indicate that a variable is a static variablevariable is a static variable

Rarely a good idea, usually acceptable only for constants.

Page 11: MELJUN CORTES Java Lecture Creating own Classes

Declaring MethodsDeclaring Methods

To declare methods we write, To declare methods we write,

<modifier> <returnType> <name><modifier> <returnType> <name> ([final] <parameter>*) {([final] <parameter>*) { <statement>*<statement>*}} where,where,

<modifier> can carry a number of different modifiers <returnType> can be any data type (including void) <name> can be any valid identifier <parameter> ::= <parameter_type> <parameter_name>[,]

Page 12: MELJUN CORTES Java Lecture Creating own Classes

Accessor MethodsAccessor Methods

Accessor methodsAccessor methods used to read values from our class variables used to read values from our class variables

(instance/static). (instance/static). usually written as:usually written as:

get<NameOfInstanceVariable> It also returns a value.It also returns a value.

Page 13: MELJUN CORTES Java Lecture Creating own Classes

Example 1Example 1

public class StudentRecord {public class StudentRecord {

private String name;:public String getName(){

return name;

}}} where,where,

public - means that the method can be called from objects outside the class

String - is the return type of the method. This means that the method should return a value of type String

getName - the name of the method () - this means that our method does not have any parameters

Page 14: MELJUN CORTES Java Lecture Creating own Classes

Example 2Example 2

public class StudentRecord {public class StudentRecord {

private String name;:public double getAverage(){

double result = 0;result=(mathGrade+englishGrade+scienceGrade)/3;

return result;

}}}

Page 15: MELJUN CORTES Java Lecture Creating own Classes

Mutator MethodsMutator Methods

Mutator MethodsMutator Methods used to write or change values of our used to write or change values of our

instance/class variables. instance/class variables. Usually written as:Usually written as:

set<NameOfInstanceVariable>

Page 16: MELJUN CORTES Java Lecture Creating own Classes

ExampleExample

public class StudentRecord {public class StudentRecord {

private String name;:public void setName( String temp ){

name = temp;

}}} where,where,

public - means that the method can be called from objects outside the class

void - means that the method does not return any value setName - the name of the method (String temp) - parameter that will be used inside our method

Page 17: MELJUN CORTES Java Lecture Creating own Classes

Multiple return statementsMultiple return statements

You can have multiple return statements You can have multiple return statements for a method as long as they are not on the for a method as long as they are not on the same block. same block.

You can also use constants to return You can also use constants to return values instead of variables. values instead of variables.

Page 18: MELJUN CORTES Java Lecture Creating own Classes

ExampleExample

public String getNumberInWords( int num ){String defaultNum = "zero";if( num == 1 ){

return "one"; //return a constant}else if( num == 2){

return "two"; //return a constant}//return a variablereturn defaultNum;

}}

Page 19: MELJUN CORTES Java Lecture Creating own Classes

Static methodsStatic methods

public class StudentRecord {public class StudentRecord {

private static int studentCount;public static int getStudentCount(){

return studentCount;

}}} where,where,

public- means that the method can be called from objects outside the class

static-means that the method is static and should be called by typing,[ClassName].[methodName]. For example, in this case, we call the method StudentRecord.getStudentCount()

int- is the return type of the method. This means that the method should return a value of type int

getStudentCount- the name of the method ()- this means that our method does not have any parameters

Page 20: MELJUN CORTES Java Lecture Creating own Classes

Using “final” with Method Using “final” with Method ParametersParameters

The values of method parameter usually do not change during the execution of a method.

Declare these parameters final if they do not need to change:

void someMethod(final int x) { // some code here}

Page 21: MELJUN CORTES Java Lecture Creating own Classes

Best PracticeBest Practice

Method names should start with a SMALL letter.

Method names should be verbs Always provide documentation before the

declaration of the method. You can use javadoc style for this.

Page 22: MELJUN CORTES Java Lecture Creating own Classes

Best PracticeBest Practice

Avoid using statics. Static variables are susceptible to corruption and static methods make your design inflexible. Constants are generally the only acceptable use of statics.

Method parameters should usually be declared final.

Page 23: MELJUN CORTES Java Lecture Creating own Classes

Source Code for class Source Code for class StudentRecordStudentRecord

public class StudentRecord {public class StudentRecord {private String name;private String address;private int age;private double mathGrade;private double englishGrade;private double scienceGrade;private double average;private static int studentCount;

Page 24: MELJUN CORTES Java Lecture Creating own Classes

Source Code for class Source Code for class StudentRecordStudentRecord

/**/** * Returns the name of the student* Returns the name of the student */*/public String getName(){public String getName(){

return name;}}

/**/** * Changes the name of the student* Changes the name of the student */*/public void setName( String temp ){public void setName( String temp ){

name = temp;}}

Page 25: MELJUN CORTES Java Lecture Creating own Classes

/**/** * Computes the average of the english, math and science* Computes the average of the english, math and science * grades* grades */*/public double getAverage(){public double getAverage(){

double result = 0;result = ( mathGrade + englishGrade + scienceGrade ) / 3;return result;

}}/**/** * returns the number of instances of StudentRecords* returns the number of instances of StudentRecords */*/public static int getStudentCount(){public static int getStudentCount(){

return studentCount;}}

Source Code for class Source Code for class StudentRecordStudentRecord

Page 26: MELJUN CORTES Java Lecture Creating own Classes

Sample Source Code that uses Sample Source Code that uses StudentRecordStudentRecordpublic class StudentRecordExample {

public static void main( String[] args ){

//create three objects for Student record StudentRecord annaRecord = new StudentRecord(); StudentRecord beahRecord = new StudentRecord(); StudentRecord crisRecord = new StudentRecord();

//set the name of the studentsannaRecord.setName("Anna");beahRecord.setName("Beah");crisRecord.setName("Cris");

//print anna's nameSystem.out.println( annaRecord.getName() );

//print number of studentsSystem.out.println("Count=” + StudentRecord.getStudentCount());

}}

Page 27: MELJUN CORTES Java Lecture Creating own Classes

Program OutputProgram Output

AnnaAnnaStudent Count = 0Student Count = 0

Page 28: MELJUN CORTES Java Lecture Creating own Classes

““this” reference this” reference

The this referenceThe this reference Reference of an instance to itself.Reference of an instance to itself. Used by an instance to access its own membersUsed by an instance to access its own members

Usually used when an instance variable and a parameter variable have the same name.

To use the this reference, we type,To use the this reference, we type,this.<nameOfTheInstanceVariable>this.<nameOfTheInstanceVariable>

NOTE: You can only use the this reference for instance NOTE: You can only use the this reference for instance variables and NOT class (static) variables.variables and NOT class (static) variables.

Page 29: MELJUN CORTES Java Lecture Creating own Classes

class Person { private String lastName; private String firstName; Person(String lastName, String firstName) { this.lastName = lastName; this.firstName = firstName;

} String getFirstName() {

return firstName; } void setFirstName(String firstName) {

this.firstName = firstName; }

String getLastName() { return lastName;

} void setLastName(String lastName) { this.lastName = lastName; }}

Page 30: MELJUN CORTES Java Lecture Creating own Classes

Overloading MethodsOverloading Methods

Method overloadingMethod overloading allows a method with the same name but different allows a method with the same name but different

parameters, to have different implementations and parameters, to have different implementations and return values of different typesreturn values of different types

can be used when the same operation has different can be used when the same operation has different implementations.implementations.

Always remember that overloaded methods have Always remember that overloaded methods have the following properties:the following properties: the same namethe same name different parametersdifferent parameters return types can be different or the samereturn types can be different or the same

Page 31: MELJUN CORTES Java Lecture Creating own Classes

ExampleExample

public void print( String temp ) { System.out.println("Name:" + name); System.out.println("Address:" + address); System.out.println("Age:" + age); }

public void print(double eGrade, double mGrade, double sGrade) { System.out.println("Name:" + name); System.out.println("Math Grade:" + mGrade); System.out.println("English Grade:" + eGrade); System.out.println("Science Grade:" + sGrade); }

Page 32: MELJUN CORTES Java Lecture Creating own Classes

ExampleExample

public static void main( String[] args ) { StudentRecord annaRecord = new StudentRecord();

annaRecord.setName("Anna"); annaRecord.setAddress("Philippines"); annaRecord.setAge(15); annaRecord.setMathGrade(80); annaRecord.setEnglishGrade(95.5); annaRecord.setScienceGrade(100);

//overloaded methods annaRecord.print( annaRecord.getName() ); annaRecord.print( annaRecord.getEnglishGrade(), annaRecord.getMathGrade(), annaRecord.getScienceGrade());}

Page 33: MELJUN CORTES Java Lecture Creating own Classes

OutputOutput

we will have the output for the first call to print,we will have the output for the first call to print,Name:AnnaName:AnnaAddress:PhilippinesAddress:PhilippinesAge:15Age:15

we will have the output for the second call to we will have the output for the second call to print,print,Name:AnnaName:AnnaMath Grade:80.0Math Grade:80.0English Grade:95.5English Grade:95.5Science Grade:100.0Science Grade:100.0

Page 34: MELJUN CORTES Java Lecture Creating own Classes

ConstructorsConstructors

Constructors are important in instantiating an object. It is a method where initializations are placed.

The following are the properties of a constructor: Constructors have the same name as the class Like methods, constructors can have accessibility

modifiers and parameters. Unlike methods, constructors do not have any return

type A constructor may be called only by using the new

operator during class instantiation.

Page 35: MELJUN CORTES Java Lecture Creating own Classes

ConstructorsConstructors

To declare a constructor, we write,To declare a constructor, we write, <accessModifier> <className> (<parameter>*) {<accessModifier> <className> (<parameter>*) { <statement>*<statement>*}}

Page 36: MELJUN CORTES Java Lecture Creating own Classes

ConstructorsConstructors

This is a constructor:This is a constructor:

public class Person { public Person() { }} This is not a constructor:This is not a constructor:

public class Person { public void Person() { }}

Page 37: MELJUN CORTES Java Lecture Creating own Classes

Default ConstructorDefault Constructor

The default constructorThe default constructor is the constructor without any is the constructor without any

parameters. parameters. If the class does not specify any If the class does not specify any

constructors, then an implicit default constructors, then an implicit default constructor is created.constructor is created.

Page 38: MELJUN CORTES Java Lecture Creating own Classes

ExampleExample

If you write a class without a constructor:If you write a class without a constructor:public StudentRecord(){public StudentRecord(){

//some code here}}

The compiler will add the default constructor before The compiler will add the default constructor before compiling your code:compiling your code:public StudentRecord(){public StudentRecord(){ public StudentRecord() {public StudentRecord() { super();super(); }}

//some code here}}

Page 39: MELJUN CORTES Java Lecture Creating own Classes

Overloading ConstructorsOverloading Constructors

public StudentRecord(){public StudentRecord(){//some initialization code here

}}

public public StudentRecord(String temp)StudentRecord(String temp){{this.name = temp;

}}

public public StudentRecord(String name, String address)StudentRecord(String name, String address){{this.name = name;this.address = address;

}}

public public StudentRecord(double mGrade, double eGrade, StudentRecord(double mGrade, double eGrade, double sGrade){

mathGrade = mGrade;englishGrade = eGrade;scienceGrade = sGrade;

}}

Page 40: MELJUN CORTES Java Lecture Creating own Classes

Using ConstructorsUsing Constructors

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

//create three objects for Student record

StudentRecord annaRecord=new StudentRecord("Anna");

StudentRecord beahRecord=new StudentRecord("Beah",

"Philippines");

StudentRecord crisRecord=new StudentRecord(80,90,100);

//some code here}}

Page 41: MELJUN CORTES Java Lecture Creating own Classes

““this()” constructor callthis()” constructor call

Constructor calls can be chained, meaning, you Constructor calls can be chained, meaning, you can call another constructor from inside another can call another constructor from inside another constructor. constructor.

We use the this() call for thisWe use the this() call for this There are a few things to remember when using There are a few things to remember when using

the the this this constructor call:constructor call: When using the this constructor call, IT MUST When using the this constructor call, IT MUST

OCCUR AS THE FIRST STATEMENT in a OCCUR AS THE FIRST STATEMENT in a constructorconstructor

It can ONLY BE USED IN A CONSTRUCTOR It can ONLY BE USED IN A CONSTRUCTOR DEFINITION. The this call can then be followed by DEFINITION. The this call can then be followed by any other relevant statements.any other relevant statements.

Page 42: MELJUN CORTES Java Lecture Creating own Classes

ExampleExample

public StudentRecord(){

this(""); // default value

}

public StudentRecord(String name){

this.name = name;

}

Page 43: MELJUN CORTES Java Lecture Creating own Classes

PackagesPackages

Packages have two purposes:Packages have two purposes: Extra layer of encapsulation. Preventing name collision.

Page 44: MELJUN CORTES Java Lecture Creating own Classes

PackagesPackages

Extra layer of encapsulation. You can hide methods, attributes or entire

classes from objects outside the package… …provides programmer freedom to implement

internal interactions between classes within a package without affecting other classes.

…protects sensitive methods or attributes.

Page 45: MELJUN CORTES Java Lecture Creating own Classes

PackagesPackages

Preventing name collision. Two classes can have the same name for as Two classes can have the same name for as

long as they are in different packages.long as they are in different packages.

Page 46: MELJUN CORTES Java Lecture Creating own Classes

Importing PackagesImporting Packages

To be able to use classes outside of the package To be able to use classes outside of the package you are currently working in, you need to import you are currently working in, you need to import the package of those classes. the package of those classes.

By default, all your Java programs import the By default, all your Java programs import the java.lang.* package, that is why you can use java.lang.* package, that is why you can use classes like String and Integers inside the classes like String and Integers inside the program eventhough you haven't imported any program eventhough you haven't imported any packages.packages.

The syntax for importing packages is as follows:The syntax for importing packages is as follows:

import <nameOfPackage>;

Page 47: MELJUN CORTES Java Lecture Creating own Classes

ExampleExample

import java.awt.Color;import java.awt.Color;import java.awt.*;import java.awt.*;

Page 48: MELJUN CORTES Java Lecture Creating own Classes

Creating Your Own PackagesCreating Your Own Packages

Package declaration should be first non-Package declaration should be first non-comment line of code:comment line of code:

package com.calenmartin;

import java.util.*;import java.math.*;

class Foo {…

}

Page 49: MELJUN CORTES Java Lecture Creating own Classes

Creating Your Own Creating Your Own PackagesPackages

Class files must be stored in folder structure Class files must be stored in folder structure denoted by package name:denoted by package name:

com

calenmartin

Foo.class

Page 50: MELJUN CORTES Java Lecture Creating own Classes

Creating Your Own Creating Your Own PackagesPackages

Package names are usually reverse of Package names are usually reverse of URLs, since URLs are unique:URLs, since URLs are unique:

package org.apache.*;package org.w3c.*:package com.oracle.*;Package com.orangeandbronze.*;

Page 51: MELJUN CORTES Java Lecture Creating own Classes

Setting the CLASSPATHSetting the CLASSPATH

Now, suppose we place the package schoolClasses under the C:\ directory.

We need to set the classpath to point to that directory so that when we try to run it, the JVM will be able to see where our classes are stored.

Before we discuss how to set the classpath, let us take a look at an example on what will happen if we don't set the classpath.

Page 52: MELJUN CORTES Java Lecture Creating own Classes

Setting the CLASSPATHSetting the CLASSPATH

Suppose we compile and then run the Suppose we compile and then run the StudentRecord class we wrote in the last section, StudentRecord class we wrote in the last section,

C:\schoolClasses>javac StudentRecord.java

C:\schoolClasses>java StudentRecordException in thread "main" java.lang.NoClassDefFoundError: StudentRecord (wrong name: schoolClasses/StudentRecord) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source)

Page 53: MELJUN CORTES Java Lecture Creating own Classes

Setting the CLASSPATHSetting the CLASSPATH

To set the classpath in Windows, we type To set the classpath in Windows, we type this at the command prompt,this at the command prompt,C:\schoolClasses> set CLASSPATH=C:\C:\schoolClasses> set CLASSPATH=C:\ where C:\ is the directory in which we have where C:\ is the directory in which we have

placed the packagesplaced the packages

After setting the classpath, we can now After setting the classpath, we can now run our program anywhere by typing,run our program anywhere by typing,C:\schoolClasses> java C:\schoolClasses> java schoolClasses.StudentRecordschoolClasses.StudentRecord

Page 54: MELJUN CORTES Java Lecture Creating own Classes

Setting the CLASSPATHSetting the CLASSPATH

For Unix base systems, suppose we have For Unix base systems, suppose we have our classes in the directory our classes in the directory /usr/local/myClasses, we write,/usr/local/myClasses, we write,

export export CLASSPATH=/usr/local/myClassesCLASSPATH=/usr/local/myClasses

Page 55: MELJUN CORTES Java Lecture Creating own Classes

Setting the CLASSPATHSetting the CLASSPATH

Take note that you can set the classpath Take note that you can set the classpath anywhere. You can also set more than one anywhere. You can also set more than one classpath, we just have to separate them by ;(for classpath, we just have to separate them by ;(for windows) and : (for Unix based systems). For windows) and : (for Unix based systems). For example,example,

set CLASSPATH=C:\myClasses;D:\;E:\MyPrograms\Java

and for Unix based systems,and for Unix based systems,export CLASSPATH=/usr/local/java:/usr/myClasses

Page 56: MELJUN CORTES Java Lecture Creating own Classes

Setting the CLASSPATHSetting the CLASSPATH

The classpath can also be passed as an The classpath can also be passed as an option before calling option before calling javajava or or javac

javac –classpath C:\myClasses MyClass.java

java –classpath C:\myClasses MyClass

ororjavac –cp C:\myClasses MyClass.javajava –cp C:\myClasses MyClass

Page 57: MELJUN CORTES Java Lecture Creating own Classes

Working with External LibrariesWorking with External Libraries

External libraries are usually distributed in External libraries are usually distributed in “jar” files. Jar files are basically just zip “jar” files. Jar files are basically just zip files with a “.jar” extension.files with a “.jar” extension.

To use the external libraries, just make To use the external libraries, just make sure the jar files are in the CLASSPATH.sure the jar files are in the CLASSPATH.

set CLASSPATH=C:\MyLibraries\commons-collections.jar;C:\MyLibraries\HttpClient.jar

Page 58: MELJUN CORTES Java Lecture Creating own Classes

Access ModifiersAccess Modifiers

There are four access levels:There are four access levels: public - accessible to any object protected - only w/in package and subclasses default - only w/in package

or “friendly” private - only w/in class

Page 59: MELJUN CORTES Java Lecture Creating own Classes

Access ModifiersAccess Modifiers

For For public, , protected and and private access modifiers are explicitly written in access modifiers are explicitly written in the code to indicate the access typethe code to indicate the access type

For For default default oror “friendly” “friendly” access, no access, no keyword is used.keyword is used.

Page 60: MELJUN CORTES Java Lecture Creating own Classes

default accessibilitydefault accessibility

Default accessDefault access specifies that only classes in the same specifies that only classes in the same

package can have access to the class' package can have access to the class' variables and methodsvariables and methods

no actual keyword for the default modifier; it is no actual keyword for the default modifier; it is applied in the absence of an access modifier.applied in the absence of an access modifier.

Page 61: MELJUN CORTES Java Lecture Creating own Classes

ExampleExample

public class StudentRecord {public class StudentRecord {

//default access to instance variable

int name;

//default access to methodString getName(){

return name;

}}}

Page 62: MELJUN CORTES Java Lecture Creating own Classes

public accessibilitypublic accessibility

public access public access specifies that class members are accessible to specifies that class members are accessible to

anyone, both inside and outside the class. anyone, both inside and outside the class. Any object that interacts with the class can Any object that interacts with the class can

have access to the public members of the have access to the public members of the class.class.

Keyword: publicKeyword: public

Page 63: MELJUN CORTES Java Lecture Creating own Classes

ExampleExample

public class StudentRecord {public class StudentRecord {

//default access to instance variable

public int name;

//default access to methodpublic String getName(){

return name;

}}}

Page 64: MELJUN CORTES Java Lecture Creating own Classes

protected accessibilityprotected accessibility

protected accessprotected access specifies that the class members are specifies that the class members are

accessible only to methods in that class and accessible only to methods in that class and the subclasses of the class.the subclasses of the class.

Keyword: protectedKeyword: protected

Page 65: MELJUN CORTES Java Lecture Creating own Classes

ExampleExample

public class StudentRecord {public class StudentRecord {

//default access to instance variable

protected int name;

//default access to methodprotected String getName(){

return name;

}}}

Page 66: MELJUN CORTES Java Lecture Creating own Classes

private accessibilityprivate accessibility

private accessibilityprivate accessibility specifies that the class members are only specifies that the class members are only

accessible by the class they are defined in. accessible by the class they are defined in. Keyword: privateKeyword: private

Page 67: MELJUN CORTES Java Lecture Creating own Classes

ExampleExample

public class StudentRecord {public class StudentRecord {

//default access to instance variable

private int name;

//default access to methodprivate String getName(){

return name;

}}}

Page 68: MELJUN CORTES Java Lecture Creating own Classes

Best PracticeBest Practice

The instance variables of a class should The instance variables of a class should normally be declared private, and the class normally be declared private, and the class will just provide accessor and mutator will just provide accessor and mutator methods to these variables.methods to these variables.

Page 69: MELJUN CORTES Java Lecture Creating own Classes

SummarySummary

Defining your own classesDefining your own classes Declaring Fields (instance, static/class)Declaring Fields (instance, static/class) Declaring Methods (accessor, mutator, static)Declaring Methods (accessor, mutator, static) Returning values and Multiple return statementsReturning values and Multiple return statements The this referenceThe this reference Overloading MethodsOverloading Methods Constructors (default, overloading, this() call)Constructors (default, overloading, this() call) PackagesPackages Classpath and using external librariesClasspath and using external libraries Access Modifiers (default, public, private, Access Modifiers (default, public, private,

protected)protected)