Understanding Class Definition Viska Mutiawani, M.Sc
1
Viska Mutiawani - Informatika FMIPA Unsyiah
Konsep penting
2
fields constructors methods parameters assignment statements conditional statements
Viska Mutiawani - Informatika FMIPA Unsyiah
Ticket machines – an external view Menyelidiki perilaku mesin tiket.
Kita akan gunakan projek naive-ticket-machine. Mesin mengeluarkan tiket dengan harga tetap.
3
Bagaimana cara menentukan harga?
Bagaimana ‘uang’ dimasukkan ke dalam mesin? Bagaimana mesin mencatat banyaknya uang yang telah dimasukkan?
Viska Mutiawani - Informatika FMIPA Unsyiah
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.
4
Viska Mutiawani - Informatika FMIPA Unsyiah
Basic class structure
public class TicketMachine { Inner part of the class omitted. }
public class ClassName { Fields Constructors Methods }
5
The outer wrapper of TicketMachine
The contents of a class
Viska Mutiawani - Informatika FMIPA Unsyiah
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;
Viska Mutiawani - Informatika FMIPA Unsyiah
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; }
Viska Mutiawani - Informatika FMIPA Unsyiah
Passing data via parameters
8
Viska Mutiawani - Informatika FMIPA Unsyiah
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.
9
Viska Mutiawani - Informatika FMIPA Unsyiah
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.
10
Viska Mutiawani - Informatika FMIPA Unsyiah
Accessor methods
11
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.
Viska Mutiawani - Informatika FMIPA Unsyiah
Accessor methods
return type visibility modifier
method name parameter list public int getPrice() (empty or not) { return price;
return statement
}
start and end of method body (block)
12
Viska Mutiawani - Informatika FMIPA Unsyiah
Mutator methods
Struktur method yang sama: header dan body. Digunakan untuk mengubah keadaan suatu objek. Dengan cara mengubah nilai satu atau lebih field.
13
Umumnya mengandung assignment statements. Umumnya menerima parameters.
Viska Mutiawani - Informatika FMIPA Unsyiah
Mutator methods
visibility modifier
return type (void) method name
parameter
public void insertMoney(int amount) { balance += amount; assignment statement }
field being changed
14
Viska Mutiawani - Informatika FMIPA Unsyiah
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; } 15
Viska Mutiawani - Informatika FMIPA Unsyiah
Lihat kembali mesin tiket yang dibuat
Beberapa perilaku masih kurang sesuai seperti:
Cara memperbaiki?
16
Tiada pengecekan nilai uang yang masuk. Tiada kembalian. Tiada pengecekan initialization yg masuk akal. Perlu perilaku yang lebih bagus dan pintar.
Viska Mutiawani - Informatika FMIPA Unsyiah
Making choices
public void insertMoney(int amount) { if(amount > 0) { balance += amount; } else { System.out.println("Use a positive amount: " + amount); } }
17
Viska Mutiawani - Informatika FMIPA Unsyiah
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
18
actions if condition is false
Viska Mutiawani - Informatika FMIPA Unsyiah
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.
19
Variabel ini hanya ada selama method tersebut dijalankan. Variabel ini hanya dpt diakses di dalam method.
Viska Mutiawani - Informatika FMIPA Unsyiah
Variabel lokal
A local variable
No visibility modifier
20
public int refundBalance() { int amountToRefund; amountToRefund = balance; balance = 0; return amountToRefund; }
Viska Mutiawani - Informatika FMIPA Unsyiah
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.
21
Viska Mutiawani - Informatika FMIPA Unsyiah
Review
22
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.
Viska Mutiawani - Informatika FMIPA Unsyiah
Review
Objects dpt memiliki pilihan via conditional (if) statements. A true or false test memungkinkan hanya satu aksi yang dipilih dari beberapa alternatif pilihan.
23
Viska Mutiawani - Informatika FMIPA Unsyiah
Important things need to be done at home
Siapkan komputer anda kemudian:
Coba project naïve-ticket-machine pada BlueJ projects chapter 02 Coba project better-ticket-machine pada BlueJ projects chapter 02
Minggu depan akan ditanya pemahaman anda terhadap program tersebut.
24
Viska Mutiawani - Informatika FMIPA Unsyiah