Slide 6: Writing Classes Bank Account Class 1. File Account.java berisi sebagian hal yang diperlukan untuk merepresentasikan sebuah bank account. Ketik dan simpan program tersebut serta pelajari methods apa saja yang dimilikinya. Kemudian lengkapi Account class tersebut seperti ketentuan berikut. Ingat, methods pada program Account.java hanya dapat dijalankan jika anda sudah menyelesaikan ManageAccounts pada pertanyaan no 2. a. Isi program pada bagian method toString, method tersebut memberikan hasil sebuah string yang berisi name, account number, and balance dari account tersebut. b. Lengkapi program pada bagian method chargeFee, yang akan menarik biaya pelayanan dari account tersebut. c. Ubah chargeFee sehingga tidak berupa void lagi, tetapi memberikan return new balance. Ingat! Anda perlu membuat perubahan pada dua tempat. d. Lengkapi program pada bagian method changeName yang meminta sebuah string sebagai parameter dan mengubah nama pada account tersebut menjadi string pada parameter. 2. LengkapiManageAccounts.java yang berisi program yang menggunakan Account class diatas. Simpan dan lengkapi sesuai dengan perintah yang ada pada comment. 3. Modifikasi ManageAccounts sehingga program tersebut mencetak balance setelah pemanggilan chargeFees. Gunakan balance yang didapatkan dari pemanggilan chargeFees method , bukan dengan menggunakan getBalance method seperti yang dipanggil setelah deposit dan withdrawal. //******************************************************* // Account.java // // A bank account class with methods to deposit to, withdraw from, // change the name on, charge a fee to, and print a summary of the account. //******************************************************* public class Account { private double balance; private String name; private long acctNum; //---------------------------------------------//Constructor -- initializes balance, owner, and account number //---------------------------------------------public Account(double initBal, String owner, long number) { balance = initBal; name = owner; acctNum = number; } //---------------------------------------------// Checks to see if balance is sufficient for withdrawal. // If so, decrements balance by amount; if not, prints message. //---------------------------------------------public void withdraw(double amount) { if (balance >= amount) balance -= amount; else 1|P age
System.out.println("Insufficient funds"); } //---------------------------------------------// Adds deposit amount to balance. //---------------------------------------------public void deposit(double amount) { balance += amount; } //---------------------------------------------// Returns balance. //---------------------------------------------public double getBalance() { return balance; }
//---------------------------------------------// Returns a string containing the name, account number, and balance. //---------------------------------------------public String toString() { } //---------------------------------------------// Deducts $10 service fee //---------------------------------------------public void chargeFee() {
} //---------------------------------------------// Changes the name on the account //---------------------------------------------public void changeName(String newName) { } } // **************************************************************** // ManageAccounts.java // // Use Account class to create and manage Sally and Joe's // bank accounts // **************************************************************** public class ManageAccounts { public static void main(String[] args) { 2|P age
Account acct1, acct2; //create account1 for Sally with $1000 acct1 = new Account(1000, "Sally", 1111); //create account2 for Joe with $500 //deposit $100 to Joe's account //print Joe's new balance (use getBalance()) //withdraw $50 from Sally's account //print Sally's new balance (use getBalance()) //charge fees to both accounts //change the name on Joe's account to Joseph //print summary for both accounts } }
Voting with Buttons Files VoteCounter.java dan VoteCounterPanel.java merupakan program seperti PushCounter.java dan PushCounterPanel.java pada slide 6 yang sedikit dimodifikasi. Pada program sebelumnya, text pada program menghitung berapa kali button di-pushed, kali ini diasumsikan setiap push merupakan suara yang memilih Joe sehingga button dan variables harus disesuaikan namanya dengan tepat. 1. Compile program tersebut dan jalankan untuk memahami bagaimana cara kerjanya. 2. Modifikasi program tersebut sehingga terdapat dua kandidat yang dapat dipilih yaitu Joe dan Sam. Lakukan dengan langkah berikut : a. Tambahkan variables untuk Sam—sebuah vote counter, a button, and label. b. Buat sebuah inner class baru dengan nama SamButtonListener untuk menyimak clicks pada button untuk Sam. Instantiate sebuah instance dari class ketika menambahkan ActionListener pada button untuk Sam. c. Tambahkan button dan label untuk Sam ke panel. 3. Compile dan jalankan program. //********************************************************* // VoteCounter.java // // Demonstrates a graphical user interface and event listeners to // tally votes for two candidates, Joe and Sam. //********************************************************* import javax.swing.JFrame; public class VoteCounter { //---------------------------------------------// Creates the main program frame. //---------------------------------------------public static void main(String[] args) {
3|P age
JFrame frame = new JFrame("Vote Counter"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(new VoteCounterPanel()); frame.pack(); frame.setVisible(true); } }
//********************************************************* // VoteCounterPanel.java // // Demonstrates a graphical user interface and event listeners to // tally votes for two candidates, Joe and Sam. //********************************************************* import java.awt.*; import java.awt.event.*; import javax.swing.*; public class VoteCounterPanel extends JPanel { private int votesForJoe; private JButton joe; private JLabel labelJoe; //---------------------------------------------// Constructor: Sets up the GUI. //---------------------------------------------public VoteCounterPanel() { votesForJoe = 0; joe = new JButton("Vote for Joe"); joe.addActionListener(new JoeButtonListener()); labelJoe = new JLabel("Votes for Joe: " + votesForJoe); add(joe); add(labelJoe); setPreferredSize(new Dimension(300, 40)); setBackground(Color.cyan); } //*************************************************** // Represents a listener for button push (action) events //*************************************************** private class JoeButtonListener implements ActionListener { //---------------------------------------------// Updates the counter and label when Vote for Joe // button is pushed //---------------------------------------------public void actionPerformed(ActionEvent event) { votesForJoe++; labelJoe.setText("Votes for Joe: " + votesForJoe); } } }
4|P age
Car Design Rancang dan implementasikan sebuah Car class yang berisi instance data yang merepresentasikan make, model dan year dari car tersebut. Definisikan Car constructor untuk menginisialisasi nilainilainya. Buat Getter dan Setter methods untuk semua instance data, dan sebuah toString method yang me-return sebuah baris yang mendeskripsikan car tersebut. Buat juga sebuah driver class yaitu CarTest, dimana main methodnya meng-instantiates dan meng-update beberapa Car objects.
5|P age