Understanding Class Definition

advertisement
Understanding Class Definition
Viska Mutiawani, M.Sc
Konsep penting






fields
constructors
methods
parameters
assignment statements
conditional statements
Ticket machines – an external view

Menyelidiki perilaku mesin tiket.


Kita akan gunakan projek naive-ticket-machine.
Mesin mengeluarkan tiket dengan harga tetap.



Bagaimana cara menentukan harga?
Bagaimana ‘uang’ dimasukkan ke dalam mesin?
Bagaimana mesin mencatat banyaknya uang yang telah
dimasukkan?
Ticket machines – an internal view



Berinteraksi langsung dengan objek, akan
memberikan petunjuk mengenai perilakunya.
Telusuri lebih dalam untuk melihat bagaimana
perilaku tersebut diimplementasikan.
Java class yang akan dibuat merupakan internal
view dari objek.
Basic class structure
public class TicketMachine
{
Inner part of the class omitted.
}
public class ClassName
{
Fields
Constructors
Methods
}
The outer wrapper
of TicketMachine
The contents of a
class
Fields/medan/keadaan




Fields menyimpan
nilai dari suatu objek.
Juga dikenal sebagai
instance variables.
Pd BlueJ, gunakan
pilihan Inspect utk
menampilkan field dr
suatu objek.
Fields mendefinisikan
keadaan suatu objek.
public class TicketMachine
{
private int price;
private int balance;
private int total;
Constructor and methods omitted.
}
visibility modifier
type
variable name
private int price;
Constructors




Method Constructors
menginisialisasi suatu
objek.
Namanya haruslah
sama dengan nama
class.
Menyimpan nilai awal
dari field.
Bisa saja memiliki
eksternal parameter
untuk memberi nilai
awal pada field.
public TicketMachine(int ticketCost)
{
price = ticketCost;
balance = 0;
total = 0;
}
Passing data via parameters
Assignment

Suatu nilai disimpan dalam field (dan variabel
lainnya) via assignment statements:



variable = expression;
price = ticketCost;
Satu variabel menyimpan satu nilai, jadi nilai
sebelumnya akan hilang.
Methods


Suatu Method merupakan implementasi perilaku dari
objek.
Secara umum ada 3:




Method constructor: digunakan untuk mencipta objek dan
memberi nilai awal pada objek yang dicipta
Method accessor
Method mutator
Struktur method terdiri dari bagian header dan body.
Accessor methods




Method Accessors: mengembalikan informasi
mengenai objek.
Bagian header mendefinisikan method’s
signature. public int getPrice()
Bagian body melingkupi semua method’s
statements.
Terdapat statement return pada body.
Accessor methods
return type
visibility modifier
method name
public int getPrice()
{
return price;
}
parameter list
(empty or not)
return statement
start and end of method body (block)
Objects First with Java - A Practical
Introduction using BlueJ, © David J.
Mutator methods



Struktur method yang sama: header dan body.
Digunakan untuk mengubah keadaan suatu
objek.
Dengan cara mengubah nilai satu atau lebih
field.


Umumnya mengandung assignment statements.
Umumnya menerima parameters.
Mutator methods
visibility modifier
return type (void)
method name
parameter
public void insertMoney(int amount)
{
balance += amount;
assignment statement
}
field being changed
Objects First with Java - A Practical
Introduction using BlueJ, © David J.
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 += balance;
// Clear the balance.
balance = 0;
}
Objects First with Java - A Practical
Introduction using BlueJ, © David J.
Lihat kembali mesin tiket yang dibuat

Beberapa perilaku masih kurang sesuai seperti:




Tiada pengecekan nilai uang yang masuk.
Tiada kembalian.
Tiada pengecekan initialization yg masuk akal.
Cara memperbaiki?

Perlu perilaku yang lebih bagus dan pintar.
Making choices
public void insertMoney(int amount)
{
if(amount > 0) {
balance += amount;
}
else {
System.out.println("Use a positive amount: " +
amount);
}
}
Making choices
‘if’ keyword
boolean condition to be tested - gives a true or false result
actions if condition is true
if(perform some test) {
Do the statements here if the test gave a true result
}
else {
Do the statements here if the test gave a false result
}
‘else’ keyword
actions if condition is false
Objects First with Java - A Practical
Introduction using BlueJ, © David J.
Variabel lokal

Fields juga merupakan variable.



Field menyimpan nilai selama objek tersebut hidup.
Field dpt diakses dalam satu class.
Methods dapat memiliki variabel yang berumur
‘singkat’ atau variabel lokal.


Variabel ini hanya ada selama method tersebut
dijalankan.
Variabel ini hanya dpt diakses di dalam method.
Variabel lokal
A local variable
No visibility
modifier
public int refundBalance()
{
int amountToRefund;
amountToRefund = balance;
balance = 0;
return amountToRefund;
}
Objects First with Java - A Practical
Introduction using BlueJ, © David J.
Review




Class terdiri dari fields, constructors dan methods.
Fields menyimpan nilai yang menentukan keadaan
suatu objek.
Constructors mencipta objek.
Methods memberikan implementasi perilaku dari
objek.
Review




Fields, parameters dan variabel lokal, semuanya
merupakan variabel.
Fields ‘hidup’ selama objek tersebut hidup.
Parameters digunakan untuk menerima nilai pada
constructor atau method.
Variabel lokal digunakan sebagai tempat
penyimpanan sementara.
Review


Objects dpt memiliki pilihan via conditional (if)
statements.
A true or false test memungkinkan hanya satu aksi
yang dipilih dari beberapa alternatif pilihan.
Download