Komposisi class

Komposisi class
komposisi class

By taufiq 24 Nov 2017, 13:27:08 WIB - Kategori: C#


Komposisi


Komposisi adalah member class yg berupa Objek Referensi dari class Lain

Pada situasi tertentu membuat referensi obyek yang sudah ada lebih mudah daripada menulis ulang kode objek untuk class baru dalam proyek-proyek baru.

Penggunaan referensi ke obyek dari sebuah class yang sudah ada sebagai anggota objek baru ini disebut komposisi.

Salah satu bentuk reusable dlm perangkat lunak adalah komposisi, di mana member class memiliki referensi ke objek dari class lainnya.


contoh


1

2

3

4

5

6

7

8

9

10

11

class test

{

 

  private int x =100;          /

  private casio   kalkulator;  //  casio adalah objek class kalkulator

 

  public test ()   //constructor

  {

  }

 

}

Penggunaan referensi “this”


Setiap objek dapat mengakses referensi ke dirinya sendiri, yang disebut referensi this. Referensi this dapat merujuk secara implisit ke variable instance, properties dan method dari sebuah objek.

Keyword this umumnya digunakan di dalam methods, di mana this adalah referensi ke objek yang sedang digunakan oleh method tsb.


Contoh this


1

2

3

4

5

6

7

8

9

10

11

12

class contohsaja

{

private int  dataku =10;

 

public int tambahkan()

   {

   int dataku = 33;   // variable lokal

   this.dataku++;     // instance variable dataku + 1 = 10 +1

 

   }

 

}

this.dataku mengacu ke instace variable (private int dataku =10 , bukan lokal variable int dataku =33 ).


Inheritance  (pewarisan)


Kita bisa membuat class baru dengan cara menurunkan(inherit) class yg sudah ada. Jadi kita tidak perlu repot membuat class baru dari nol . Sebagai contoh kita ingin membuat class kalkulator Statistik yg mempunyai method hitung rata rata. Kita tak perlu membuat class kalkulator statistik baru dari awal ,kita bisa membuat class  turunan dari class  kalkulator yg sudah ada.

Member Class turunan dapat mengakses member class  public  dan protected dari class induk. Member class protected dari class induk dapat diakses oleh class turunan

Method dari class induk dapat ditulis kembali (redefined) di kelas turunannya dalam bentuk :

– Abstract method pada class abstract (class induk yg berisi abstrak method)

– Virtual method pada non class abstract.

method yg ditulis kembali di dahului oleh keyword “override”


Objek dari classInduk adalah bukan objek classTurunan, objek classTurunan adalah objek classInduk. misal class induk : mobil  class turunan : toyota,honda,hyundai  ,toyota (sudah pasti) adalah mobil tapi mobil adalah bukan toyota.


kalau sebuah class tdk tertulis class induk maka sebenarnya class tersebut adalah turunan dari class “object” . Class object adalah class induk dari semua class yg ada di C#, termasuk class yg kita buat sendiri.



Contoh Penerapan class induk – class turunan pada aplikasi kalkulator


..



 


Berikut ini contoh Diagram   Class induk kalkulatorSederhana dan 2 buah Class turunannya.




Class turunan mewarisi data dan method dari Class induk , melihat pada contoh diatas  kedua Class turunan tdk perlu lagi membuat method jumlah() dan method kurang()  karena  Class turunan mewarisi keduanya.


Cara Class induk mewarisi Class turunannya:


NamaClass_Turunan : namaClass_Induk


Constructor class induk dan class turunan


Saat objek class turunan dibuat maka constructor class induk dijalankan lebih dahulu baru setelah itu constructor objek turunan dijalankan. Kalau class induk juga berinduk (diturunkan dari) ke class lain,maka class lain tsb yg pertama kali dijalankan begitu seterusnya. Constructor yg pertama kali dijalankan adalah constroctor class object karena kelas tsb adalah kelas induk dari semua class.


contoh :


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

class kakek

{

   public kakek()   //secara implisit memanggil constructor "object"

   {

   }

 public kakek()   //constructor

   {

   console.writeln(" konstruktor kakek");

   }

}

 

class bapak : kakek

{

    public bapak()  // secara implisit memanggil construktor kakek

     {

     }

 public bapak()   //constructor

   {

   console.writel



ARTIKEL TERKAIT: