Understanding Class Definition Viska Mutiawani, M.Sc 1 Viska Mutiawani - Informatika FMIPA
Konsep penting fields constructors methods parameters assignment statements conditional statements 2 Viska Mutiawani - Informatika FMIPA
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? 3 Viska Mutiawani - Informatika FMIPA
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
Basic class structure public class TicketMachine { Inner part of the class omitted. The outer wrapper of TicketMachine public class ClassName { Fields Constructors Methods The contents of a class 5 Viska Mutiawani - Informatika FMIPA
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
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
Passing data via parameters 8 Viska Mutiawani - Informatika FMIPA
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
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
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. 11 Viska Mutiawani - Informatika FMIPA
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) 12 Viska Mutiawani - Informatika FMIPA
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. 13 Viska Mutiawani - Informatika FMIPA
Mutator methods visibility modifier return type (void) method name parameter public void insertmoney(int amount) { balance += amount; field being changed assignment statement 14 Viska Mutiawani - Informatika FMIPA
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
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. 16 Viska Mutiawani - Informatika FMIPA
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
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 18 Viska Mutiawani - Informatika FMIPA
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. 19 Viska Mutiawani - Informatika FMIPA
Variabel lokal No visibility modifier A local variable public int refundbalance() { int amounttorefund; amounttorefund = balance; balance = 0; return amounttorefund; 20 Viska Mutiawani - Informatika FMIPA
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
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. 22 Viska Mutiawani - Informatika FMIPA
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
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