Minggu, 10 Januari 2010

Tugas Pemrograman Berorientasi Objek

1. Listing Program
 Kelas Animal
package Animal;
public class Animal {
private int weight;
public Animal(int w) { weight=w; }
public void setWeight(int w) { weight = w; }
public int getWeight() { return weight; }
}

 Kelas Cow
package Animal;
public class Cow extends Animal {
public Cow() { super(100);}
}

 Kelas Pig
package Animal;
public class Pig extends Animal {
public Pig() { super(40); }
}

 Kelas Sheep
package Animal;
public class Sheep extends Animal {
public Sheep() { super(65); }
}

 Main Program
package Animal;
public class FarmExample2 {
public static void main(String[] args) {
Animal[] farm = {new Cow(), new Pig(),
new Sheep()};
int totalWeight = 0;
for (int i=0; itotalWeight += farm[i].getWeight();
System.out.println("The total weight of the animals is " + totalWeight);
}
}

Output Program :
The total weight of the animals is 205
2. membuata program :
• Buatlah sebuah class baru dengan nama Bebek yang merupakan turunan dari class Animal.
• Bebek memiliki atribut khusus jumlahTelur bertipe integer.
• Bebek berbunyi ‘kwek’.
• Panggil class Bebek dalam fungsi utama, dan tampilkan jumlah telurnya.

Jawab :
 Kelas Animal
public class Animal {
private int weight;
public Animal(int w) { weight=w; }
public void setWeight(int w) { weight = w; }
public int getWeight() { return weight; }
public void talk() {
}
}

 Kelas Bebek
public class Bebek extends Animal {
int numberOfEggs;
public Bebek() {
super(4); // panggil constructor induk
numberOfEggs = 15;}
public void talk() {
System.out.println(" Bebek Berbunyi Kwek!!");}
public int getNumberOfEggs() {
return numberOfEggs;}
public void setNumberOfEggs(int n) {
numberOfEggs = n;}
}

 Main Program
public class farmExample3 {
public static void main(String[] args) {
Animal[] farm = {new Bebek()};
for (int i=0; i farm[i].talk();
System.out.println(" Memiliki " +((Bebek)farm[i]).getNumberOfEggs()+ " Telur");
}
}
}

Outputnya :
Bebek Berbunyi Kwek!!
Memiliki 15 Telur
3. Carilah permasalahan umum yang biasanya terjadi dalam polymorphisme
Masalah Pada Polymorphism:
Perhatikan kode berikut:
public class FarmExample4 {
public static void main(String[] args) {
Animal[] farm = {new Goose(), new Cow(),
new Pig(), new Sheep()};
for (int i=0; ifarm[i].talk();
System.out.println(farm[i].getNumberOfEggs()+“ eggs”);
}
} // end of main
}
Eksekusi program diatas hasilnya error. Goose, Cow, Pig dan Sheep dapat diperlakukan sebagai jenis dari Animal, tetapi class-class ini tidak mengimplementasikan semua metode yang sama: hanya Goose yang mengimplementasikan metode getNumberOfEggs.
Konsep Polymorphism memungkinkan digunakannya suatu interface yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah satu interface banyak aksi.




Pada contoh diatas clas dasar adalah class bentuk yang memiliki atribut berupa Luas dan operasi hitung luas, class tersebut dapat diturunkan kedalam berbagai macam class bentuk seperti Segitiga, Lingkaran, Persegi panjang. Class Segitiga, Lingkaran, Persegi panjang memiliki atribut “Luas” dari hasil penurunan class bentuk, akan tetapi operasi hitung luas pada masing masing class akan berbeda-beda, inilah yang disebut sebagai polymorphism


4. Java tidak membolehkan multiple inheritance murni. Mengapa?
 Multiple inheritance diimplementasikan dalam beberapa bahasa object oriented programming ( seperti C++).
 Masalah – suatu subclass dapat mempunyai multiple superclasses dengan perilaku dan struktur yang overlap.
 Contoh:
Class InterestBearing menyimpan tanggal pembayaran bunya pertama.
Class Insurable menyimpan tanggal premi asuransi pertama di bayar
BankAccount diturunkan dari InterestBearing dan Insurable.
 Masalah ini bukan tidak dapat diatasi tetapi akan menambah kompleksitas dari bahasa.
 Java dirancang menjadi bahasa yang sederhana sehingga tidak mendukung multiple inheritance.
 Solusi yang diberikan Java adalah melalui interface.
Jadi, java hanya mengijinkan single inheritance bukan multiple inheritance. Karena Suatu class hanya dapat diturunkan dari satu class induk.
 Multiple inheritance, di Java, dapat diperoleh dengan memanfaatkan fitur interface.

5. Soal
 Perhatikan deklarasi berikut:
◦ Asset asset1 = new RealEstate(1834.34);
◦ Insurable asset2 = new RealEstate(1834.34);
◦ InterestBearing asset3 = new BankAccount(794.43);
◦ BankAccount asset4 = new BankAccount(794.43);
 Mana pernyataan berikut yang sah (legal)?
◦ System.out.println(asset1.getPremium());
◦ System.out.println(asset1.getValue());
◦ System.out.println(asset2.getPremium());
◦ System.out.println(asset2.getInterestRate());
◦ System.out.println(asset3.getPremium());
◦ System.out.println(asset3.getInterestRate());
◦ System.out.println(asset4.getPremium());
◦ System.out.println(asset4.getValue());
◦ System.out.println(asset4.getInterestRate());
Jawab :
Pernyataan yang sah :
a. Asset asset1 = new RealEstate(1834.34);
System.out.println(asset1.getValue());
b. Insurable asset2 = new RealEstate(1834.34);
System.out.println(asset2.getPremium());
c. InterestBearing asset3 = new BankAccount(794.43);
System.out.println(asset3.getInterestRate());
d. BankAccount asset4 = new BankAccount(794.43);
System.out.println(asset4.getPremium());
System.out.println(asset4.getInterestRate());

Tidak ada komentar:

Posting Komentar