Sabtu, 09 Januari 2010

PBO

  1. Listing Program

//Class induk(super class)

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; }

}

package Animal;

// class cow

public class Cow extends Animal {

public Cow() { super(100);}

}

package Animal;

//class pig

public class Pig extends Animal {

public Pig() { super(40); }

}

package Animal;

//class sheep

public class Sheep extends Animal {

public Sheep() { super(65); }

}

package Animal;

//main program

public class FarmExample2 {

public static void main(String[] args) {

Animal[] farm = {new Cow(), new Pig(),

new Sheep()};

int totalWeight = 0;

for (int i=0; i

totalWeight += farm[i].getWeight();

System.out.println("The total weight of the animals is " + totalWeight);

}

}

Output Program :

The total weight of the animals is 205

  1. 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 :

//class 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() {

}

}

//class bebek

public class Bebek extends Animal {

int numberOfEggs;

public Bebek() {

super(4); // panggil constructor induk

numberOfEggs = 8;}

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 8 Telur

  1. 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; i

farm[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

  1. 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.

  1. 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