0% found this document useful (0 votes)
46 views31 pages

05 Objects and Classes

The document discusses objects and classes in object-oriented programming. It defines objects and classes, explains instance variables and methods, and how to define classes and methods in Java. It also covers concepts like encapsulation and visibility modifiers.

Uploaded by

Kasuki Shihonara
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
46 views31 pages

05 Objects and Classes

The document discusses objects and classes in object-oriented programming. It defines objects and classes, explains instance variables and methods, and how to define classes and methods in Java. It also covers concepts like encapsulation and visibility modifiers.

Uploaded by

Kasuki Shihonara
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 31

Objects and Classes


The objectives of this presentation are:

 To define objects and classes


 To understand object models and class models

 To explain instance variables and instance methods


 To explain constructors

Java Dr. Ashraf Uddin 1


Where it all starts...

 The focus of the Object-Oriented paradigm is the Object


 NOT classes. Classes are an abstraction of objects.

 Objects are identified from the real world


 An object model is created to represent the real world
 The data associated with each object are identified and modelled.
 The various behaviours of each object are identified and modelled.
 Interactions between objects are modelled.

 The Objects in the object model are classified


 Designers create classes
 Programmers implement classes
 Classes are logically grouped into a hierarchical classification structure.

Java Dr. Ashraf Uddin 2


Creating Classes

 Objects in the object model are formalized


 Objects are abstracted into classes
 Only attributes and methods relevant to our domain are
classified.
 Attributes are formalized into instance variables
 Behaviour is formalized into methods
 Classes are represented on a class diagram

Java Dr. Ashraf Uddin 3


Object

A bicycle modeled as a software object.


Source: https://docs.oracle.com/javase/tutorial/java/concepts/object.html
Java Dr. Ashraf Uddin 4
Objects and Classes

 Programmers implement classes


 Classes are templates or blueprints for Objects
 Data and methods are defined within Classes
 Classes must provide an implementation such that objects created
from those classes behave as those defined in the Object model.

 An Object is the appearance of a class


 An object is an Instance of a class
 The process of creating an object is called instantiation
 The attributes of an object are called instance variables
 The methods of an object are called instance methods

 In Java, Objects are created using the new keyword:

Employee anEmployee = new Employee();

Java Dr. Ashraf Uddin 5


Defining Classes

 A class definition must have the following:


 The keyword "class" followed by the name of the class
 The class body

 Before the keyword "class" is the optional modifier "public"


 If a class is public, it must be defined within a file which is the same
name as the class with a ".java" extension.
 i.e. Classname.java
 eg. HelloWorld.java, Account.java, Ledger.java, Transaction.java
 most classes are declared public

 The class body contains:


 Zero or more instance variables
 Zero or more methods

Java Dr. Ashraf Uddin 6


Example Class Definition
in Employee.java:

public class Employee


{
String name;
Member
Variables: int salary;
Date startingDate;
[... more variable definitions ...]

public int getSalary()


Methods:
{
return salary;
}
public int computeHourlyRate()
{
// calculate hourly rate from salary
}
[... more method definitions ...]
}
Java Dr. Ashraf Uddin 7
Defining Instance Variables

 Instance variables are declared using the same syntax as


ordinary variables.
 Variables can be prefixed with a visibility modifier

modifier type variable_name;

 Variables can have one of 4 different visibilities:


 public - the variable can be directly accessed from anywhere
 private - the variable can only be directly accessed from within the
class
 protected - the variable can be access directly from within the class,
within the package, or from within any subclass.
 default (no modifier specified) - the variable can be accessed directly
from within the package
 To preserve encapsulation, instance variables should be
declared private.
Java Dr. Ashraf Uddin 8
Visibility for member variables

Modifier Class Package Subclass World


public Y Y Y Y
protected Y Y Y N
no modifier Y Y N N
private Y N N N

Java Dr. Ashraf Uddin 9


Visibility for member variables

The following table shows where the members of the Alpha class are
visible for each of the access modifiers that can be applied to them.
Modifier Alpha Beta Alphasub Gamma
public Y Y Y Y
protected Y Y Y N
no modifier Y Y N N
private Y N N N

Java Dr. Ashraf Uddin 10


Encapsulation

 Encapsulation is a very important O-O concept


 Each object has 2 views. An internal view and an external view

 Encapsulation is a form of protection


 Also called Information Hiding
 The outside world does not have direct access to the internal
implementation.
 As long as the external view does not change, the internal view can
take on any form without affecting the outside world
 By hiding data and providing methods to gain access to it, an object
can maintain high data integrity
 Methods have the responsibility of maintaining data integrity

 private visibility offers full encapsulation


 protected and default offer limited encapsulation
 public offers no encapsulation

Java Dr. Ashraf Uddin 11


Encapsulation Example
Class Definition:
Instances:
public class Account
{
private int number;
private int number = 11346
overdraftLimit; May 1,
overdraftLimit = 1000
private Date startDate; 2001
startDate
private String owner; owner

[... methods ...] Sun

}
Instance variables are encapsulated.
number = 12364
- no direct access from outside
overdraftLimit = 300 June 15,
the object
startDate 1994
owner
Each object has its own variables.
These variables are declared
within the class. Jupiter

Java Dr. Ashraf Uddin 12


Defining Instance Methods
 Method definitions include a method signature and a method
body.
 Methods signatures are defined with the following syntax:

modifier return_type method_name(type name, ...)

 The return type can be:


 a fundamental data type
 an object reference
 void (no return)

 Parameters are optional


 If the method takes no parameters, empty brackets are required ()
 Multiple parameters are separated by commas
 Parameters are defined by type and name
 A parameter is a local variable whose scope is the method.
Java Dr. Ashraf Uddin 13
Defining Instance Methods - Visibility
 Methods have the same visibility modifiers as variables
 public - the method can be invoked from anywhere
 private - the method can only be invoked from within the class
 protected - the method can be invoked directly from within the class,
within the package, or from within any subclass.
 default (no modifier specified) - the method can be invoked directly
from within the package
 If a method is part of the class's public interface (external
view), the method should be public
 If a method is part of the class's internal implementation (ie,
support method, etc), it should be private.
 Be careful using default or protected. Use only when
justified.

Java Dr. Ashraf Uddin 14


Defining Instance Methods - Body
 A method's body contains all the statements to be executed
as part of the method
 The method body is contained within curly braces after the
method definition:
 Use {} placement and indentation to clearly show code structure

public class CalculationSheet


{
public void performCalculations()
{
[... method body ...]
}

public void clearSheet()


{
}
[...]
Java } Dr. Ashraf Uddin 15
Returning values from methods
 A method which has a non-void return type MUST return a
value
 The return value's type must match the type defined in the method's
signature.
 A void method can use a return statement (with no return value) to exit
the method.
 The return value can be used the same as any other expression.

public class Car


{
private int currentGear;
private int currentRpms;

public int calculateSpeed()


{
return currentRpms * currentGear;
}
}
Java Dr. Ashraf Uddin 16
Classes as types
 When a class is defined, the compiler view the class as a
new type.
 When a variable is declared, its type can be a primitive type
or "Class" type.
 Any variable whose type is a class is an object reference.
 The variable is a reference to an instance of the specified class.
 The variables holds the address (in memory) of the object.

int x; Employee anEmployee;

0 null
Note: null means “refers
to no object”

Java Dr. Ashraf Uddin 17


null References
 null means “refers to no object"

 Object references can be compared to null to see if an object


is present or not.
 null is the default value of an object reference before it is
initialized

Employee anEmployee;

[...]

if (anEmployee == null)
{
}

Java Dr. Ashraf Uddin 18


Initializing Object References - new
 To initialize an object reference, you must assign it the
address of an object

 The new operator creates a new instance and returns the


address of the newly created object
 new allocates memory for the object

 new also invokes a method on the object called a constructor


 new returns the address of the memory allocated for the object.

Employee anEmployee;

[...]

anEmployee = new Employee();

Java Dr. Ashraf Uddin 19


Assigning Object References
 Assigning one reference to another results in two references
to the same object
 If two references contain the same memory address, they are referring
to the same object.

 Each object has a reference count


 When an object's reference count becomes zero, it will be collected by
the garbage collector

Employee anEmployee = new Employee();


Employee anotherEmployee = anEmployee;

anEmployee

anotherEmployee Employee

Java Dr. Ashraf Uddin 20


Invoking Instance Methods
 To invoke a method on an object, use the . (dot) operator

objectReference.methodName(parameters);

 If there is a return value, it can be used as an expression

Car aCar = new Car();

[...]

if (aCar.calculateSpeed()>110)
{
System.out.println("You're Speeding!");
}

[...]

Java Dr. Ashraf Uddin 21


Passing Parameters to Methods
 Method parameters are declared in the method's signature.
 When a method invocation is made, any parameters included
in the invocation are passed to the method
 All parameters are passed by value. i.e, a copy is made
 The value of fundamental data types are copied
 The value of object references (i.e, memory addresses) are copied

 Parameters become available within the method. They are


not known outside the method.

public float calculateInterestForMonth(float rate)


{
return lowBalanceForMonth * (rate/12.0);
}

Java Dr. Ashraf Uddin 22


Overloading Methods
 Java allows for method overloading.
 A Method is overloaded when the class provides several
implementations of the same method, but with different
parameters
 The methods have the same name
 The methods have differing numbers of parameters or different types of
parameters

public float calculateInterestForMonth()


{
return lowBalanceForMonth * (defaultRate/12.0);
}

public float calculateInterestForMonth(float rate)


{
return lowBalanceForMonth * (rate/12.0);
}
Java Dr. Ashraf Uddin 23
Methods - gets
 Objects have variables.
 Because of encapsulation, those variables are generally private
 However, the outside world may need to use those variables
 The class implementor may choose to add a "get" method to return the
value

 The usual name of the get method is the name of the


variable prefixed with the word "get"
 getName(), getAddress(), getPhone(), getBalance()

public class BankAccount


{
private float balance;

public float getBalance()


{
return balance;
}
Java Dr. Ashraf Uddin 24
Methods - sets
 Similarly, the outside world may need to set the value of an
instance variable
 The class implementor may choose to implement a set method.
 The responsibility of the set method is to set the appropriate variable
while MAINTAINING data integrity of the object.

 The usual name of the set method is the name of the


variable prefixed with the word "set"
 setName(), setAddress(), setPhone(), setBalance()

public class BankAccount


{
private String ownerName;

public void setOwnerName(String aName)


{
ownerName = aName;
}
Java Dr. Ashraf Uddin 25
Initializing Objects - Constructors
 When an object is created, all instance variables are
initialized to the default value for their type
 Fundamentals are 0, 0.0, false
 Object references are null

 In order to put the object into a usable state, its instance


variables should be initialized to usable values
 This could be accomplished by calling the various set methods
 This is not always possible because it is not required that all instance
variables have set methods.

 Java provides for another method of initializing objects


 When an object is created, a constructor is invoked. The
responsibility of the constructor method is to initialize the
object into a usable state.

Java Dr. Ashraf Uddin 26


Constructors
 Constructors have the following characteristics
 There is NO return type. NOT even void
 The method name is the same name as the class
 Constructors can be overloaded

Java Dr. Ashraf Uddin 27


Constructors - Example
public class BankAccount
{
String ownersName;
int accountNumber;
float balance;

public BankAccount()
{
}

public BankAccount(int anAccountNumber)


{
accountNumber = anAccountNumber;
}

public BankAccount(int anAccountNumber, String aName)


{
accountNumber = anAccountNumber;
ownersName = aName;
}

[...]
}
Java Dr. Ashraf Uddin 28
Constructors - Example
 When an object is created (using new) the compiler
determines which constructor is to be invoked by the
parameters passed
 Multiple constructors allows the class programmer to define many
different ways of creating an object.

public static void main(String[] args)


{
BankAccount anAccount = new BankAccount();
BankAccount anotherAccount = new BankAccount(12345);
BankAccount myAccount = new BankAccount(33423, "Craig");
}

Java Dr. Ashraf Uddin 29


Constructors
 If no constructors are defined for a class, the compiler
automatically generates a default, no argument constructor
 All instance variables are initialized to default values.

Java Dr. Ashraf Uddin 30


Review

 What is the difference between classes and objects?


 What are the modifiers for classes, instance variables and
methods? What do they mean?
 What is encapsulation? Why is it important?
 How are method parameters defined?
 How are method parameters passed?
 What are constructors?

Java Dr. Ashraf Uddin 31

You might also like