No Slide Title

Download Report

Transcript No Slide Title

Looking inside classes Fields, Constructors & Methods Week 3

Java Class Definitions

CONCEPTS COVERED

• Fields • Constructors • Methods • Parameters • Printing

Java Class Definitions

TICKET MACHINES – AN EXTERNAL VIEW

Exploring the behavior of a ticket machine.

• Use the

naive-ticket-machine

project.

• Machines supply tickets of a fixed price.

– How is that price determined?

• How is ‘money’ entered into a machine?

• How does a machine keep track of the money that is entered?

BlueJ Demonstration

A first look at the

naive-ticket-machine

project

TicketMachine int price int balance int total int getPrice() int getBalance() void insertMoney(int amount) void printTicket()

Java Class Definitions

SOURCE CODE – AN INTERNAL VIEW

• Interacting with an object gives us clues about its behavior.

• Looking inside the object’s class definition

(source code)

allows us to determine how that behavior is provided or implemented.

• All Java classes have a similar-looking internal view/structure.

Java Class Definitions

BASIC STRUCTURE OF A JAVA CLASS public class

ClassName

{

Fields Constructors Methods

} public class { TicketMachine

Inner part of the class omitted.

}

Java Class Definitions

FIELDS

• Fields store

values

for an object.

• They are also known as

instance variables

, and/or

attributes

.

• Use Inspect in BlueJ to view an object’s fields.

• The values held in an object’s fields constitute the

state

of that object.

Java Class Definitions

STRUCTURE OF FIELDS IN A JAVA CLASS public class TicketMachine { private private private int int int price total ; balance ; ;

Constructor and methods omitted.

}

visibility modifier data type variable name

private int price ;

Java Class Definitions

CONSTRUCTORS

• Constructors

initialize

an object • They have the

same name

as their class • They do not have a return type • They can store initial values into the fields • They often receive

external parameter values

that are used to set initial field values

Methods

• The Java language is built from many classes, each with its own inbuilt methods. Much of programming in Java is about using inbuilt methods as well as being able to create your own methods.

• The method header or signature describes the method’s: – accessibility modifiers, public or private, – whether or not it returns a value and if so what type, – the name of the method,

starting with a lowercase letter,

– input needed (formal parameters) for the method to fulfill its task.

Encapsulation

• Normally we make

fields

object’s data

private

that hold the • • • While the

methods

that can access those fields are made

public This way we provide controlled access to the data, thus protecting it This is called encapsulation

Java Class Definitions

STRUCTURE OF A CLASS CONSTRUCTOR public class TicketMachine { private int price; private int balance; private int total; } public TicketMachine (int ticketCost) { price = ticketCost; } balance = 0; total = 0;

Java Class Definitions

ACCESSOR METHODS

• Methods implement the behavior of objects.

• Accessors object.

provide information about an • Methods

header

have a structure consisting of a and a

body

.

• Method header defines the method’s access modifier, return type and signature.

public int getPrice()

• Method body statements.

encloses a method’s

Java Class Definitions

ACCESSOR METHODS

return type visibility modifier

public { } int return price;

method name

getPrice ()

parameter list (empty) return statement start and end of method body (

block

)

Java Class Definitions

MUTATOR METHODS

• Mutators have a standard method structure of method header and method body.

• Mutators are used to

mutate

object’s state.

(i.e. change) an • Mutators achieve this through changing the value of one or more object fields (attributes).

– Typically contain assignment statements.

– Typically receive parameters.

Java Class Definitions

MUTATOR METHODS

visibility modifier return type ( void ) method name parameter

public { void insertMoney (int amount) balance = balance + amount; }

field being changed assignment statement start and end of method body (

block

)

Java Class Definitions

PASSING DATA VIA PARAMETERS

Java Class Definitions

PRINTING FROM METHODS public { void printTicket () // Simulate the printing of a ticket.

System.out.println("##################"); System.out.println("# The BlueJ Line"); System.out.println("# Ticket"); System.out.println("# " + price + " cents."); System.out.println("##################"); System.out.println(); // Update the total collected with the balance.

total = total + balance; // Clear the balance.

balance = 0; }

Required Reading

Objects First With Java – A Practical Introduction using BlueJ Related reading for this lecture

• Chapter 2 pp 18-37 (Constructors & Methods)

Reading for next week’s lecture

• Chapter 2 pp 37-45 (Choices)