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.