Reusing Class


Reusing Class

Outline :

  • Why reuse
  • Composition
  • Inheritance

  1. Why Reuse

Reuse merupakan salah satu teknik untuk menggunakan kembali kelas-kelas atau program yang telah diimplementasikan sebelumnya. Reuse merupkan teknik yang sangat penting karena memiliki berbagai manfaat yang membantu bagi para programmer/developer untuk mempercepat pembuatan suatu aplikasi, serta konsep reuse dapat menciptakan efisiensi dalam suatu program. Konsep ini muncul akibat penggunaan konsep-konsep dalam Object Oriented Concept salah satunya adalah inheritance.

  1. Composition

Composition dapat diartikan sebagai kepemilikan. Suatu kelas dalam OO concept dapat memiliki reference ke kelas lainnya sebagai anggota dari kelas tersebut. Hubungan keanggotaan ini dinamakan composition. Sebagai ilustrasi, hubungan antara class Koperasi dengan class Anggota. Class Koperasi dikatakan memiliki hubungan ‘has a‘ dengan class Anggota atau dengan kata lain class koperasi memiliki anggota yaitu class anggota.

III.Inheritance

Konsep inheritance merupakan salah satu konsep yang sangat penting dalam OOP concept. Inheritance dalam bahasa Indonesia dapat diartikan penurunan/pewarisan dari hierarki yang lebih tinggi ke lebih rendah. Di dalam java, konsep ini diaplikasikan dalam suatu kelas atau interface. Sebagai ilustrasi awal, anggap ada suatu class OrangTua dan class Anak. Konsep inheritance pada java hampir sama dengan konsep inheritance pada kehidupan nyata, namun tentu ada perbedaannya. Perbedaan-perbedaannya akan saya bahas kemudian.

Class OrangTua memiliki variable-variable/field-field seperti karakter, warnaKulit, tinggiBadan, dan lain-lain. Class Anak extends OrangTua akan mewarisi variable-variable yang ada pada class OrangTua sehingga class Anak dapat menggunakan variable-variable tersebut dalam class-nya. Perhatikan keyword extends pada class Anak extends OrangTua. Keyword ini yang menjelaskan kepada java agar dapat dikenali sebagai hubungan inheritance.

Tidak hanya variable-variable yang dapat diturunkan tetapi juga method-method yang ada pada kelas parent dapat diturunkan kepada child class.

Akan tetapi, pewarisan-pewarisan terdapat beberapa syarat-syarat atau aturan-aturan yang harus dipenuhi. Aturan-aturan tersebut adalah

  1. Class Modifier

Class yang ingin di extends atau di jadikan parent class tidak boleh menggunakan keyword final pada deklarasi kelasnya. Contoh Program :

parent.java

public final class parent{}

class child extends parent

{

}

Program diatas jika di compile maka akan muncul error yaitu

>javac parent.javaparent.java:6: cannot inherit from final parentclass child extends parent

^

1 error

>Exit code: 1    Time: 5.501

2. Single Inheritance

Dalam konsep Object Oriented Programming Concept, khususnya Java, tidak mengenal konsep multiple inheritance pada suatu class. Java hanya mendukung konsep multiple inheritance pada suatu interface. Jadi, di dalam java tidak mungkin ada muncul program seperti ini :

A.java

public class A extends B, C{}

class B{}

class C{}

Program diatas akan error karena java tidak mengijinkan multiple inheritance pada class.

3. Access Specifiers

Saya membedakan Access Specifiers dengan Class Modifier dikarenakan untuk memudahkan pemahaman anda. Sesungguhnya class modifier merupakan bagian dari access specifiers. Access Specifiers didefinisikan sebagai hak akses untuk class (class modifiers), method dan variable. Untuk method maupun variable yang ingin/dapat diturunkan dari parent class jika variable tersebut atau method tersebut tidak bersifat private.

parent.java

public class parent{ private void method()

{

}

protected void method(int a)

{

}

public void method(int a, int b)

{

}

}

class child extends parent

{

child()

{

method();

method(5);

method(10, 10);

}

}

Program diatas compile error dikarenakan method  “method()“ tidak ditemukan sebagai method yang diturunkan pada class child. Hal ini dikarenakan method tersebut memiliki access specifiers bertipe private pada class parent

    • jonny
    • December 9th, 2010

    Hi, Mr Hafidh

    one question, if i made 3 classes such as class A,B and C.
    for class A, i used it as the parent for class B, so can class B also be the parent for class C?

    currently i am facing a problem where that method in class B can’t be functioned in class C although already put down the command extend class C as well and no errors occur.

    • Hi Jon,
      Actually java doesn’t support multiple inheritances for a class. However, you can use interface to solve that problem because java only support this concept in Interface

  1. teori yang cukup membingungkan…

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: