Pages

Wednesday, September 19, 2012

Contoh Penggunaan Static Nested Class dan Inner Class pada Java

java image
Nested Class adalah class yang didefinisikan di dalam class lain. Nested class dibagi ke dalam dua kategori, static dan non-static class. static class disebut dengan static nested class dan non-static class disebut inner class. Class yang mendefinisikan nested class disebut Outer class. Nested class merupakan anggota dari Outer class. Sama seperti method() dan variable, sebuah nested class dapat di deklarasikan sebagai private, protected, default, atau public. Tidak seperti Outer class yang hanya dapat di deklarasikan sebagai default atau public saja, sehingga penggunaan nested class dapat meningkatkan enkapsulasi pada class.

Mengakses Nested Class
static nested class: untuk mengakses static nested class dilakukan dengan cara memanggil nama dari class luar (Outer class). contoh syntax untuk menciptakan objek dari sebuah static nested class:
OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass(); 

inner classinner class dapat diakses melalui objek dari outer class. contoh untuk menciptakan objek dari sebuah inner class, pertama kita harus menciptakan objek dari outer class, kemudian buat objek inner class menggunakan objek dari outer class. contoh syntax:
OuterClass oc = new OuterClass();
OuterClass.InnerClass innerObject = oc.new InnerClass();

Di bawah ini adalah contoh program yang mengimplementasikan kedua jenis nested class di atas:

public class SepedaMotor{//Outer Class
 String produsen;
 String nama;
 String jenis;
 
 protected void setMotor(String x, String y, String z){
  this.produsen = x;
  this.nama = y;
  this.jenis = z;
 }
 
 protected static class Mesin{//Static Nested Class
  String tipe;
  String isiSilinder;
  String transmisi;
 
  protected void setMesin(String x, String y, String z){
   this.tipe = x;
   this.isiSilinder = y;
   this.transmisi = z;
  }
 }
  
 protected class Chassis{//Inner Class
  String tipe;
  String suspensiDepan;
  String suspensiBelakang;
  
  protected void setChassis(String x, String y, String z){
   this.tipe = x;
   this.suspensiDepan = y;
   this.suspensiBelakang = z;
  }
 }
}

public class Produk{
 
 public void tambahData(){
  SepedaMotor sm = new SepedaMotor();
  sm.setMotor("Honda", "CBR", "Sport");
  
  SepedaMotor.Mesin m = new SepedaMotor.Mesin();
  m.setMesin("4-Langkah", "150cc", "Manual 6-speed");
  
  SepedaMotor.Chassis c = sm.new Chassis();
  c.setChassis("Delta Box", "Telescopic", "Monoshock");
  
  System.out.println("\n Produsen: "+sm.produsen+
      "\n Nama: "+sm.nama+
      "\n Jenis: "+sm.jenis+
      "\n Tipe Mesin: "+m.tipe+
      "\n Isi Silinder: "+m.isiSilinder+
      "\n Transmisi: "+m.transmisi+
      "\n Tipe Chassis: "+c.tipe+
      "\n Suspensi Depan: "+c.suspensiDepan+
      "\n Suspensi Belakang: "+c.suspensiBelakang);
 }
 
 public static void main(String[] args){
  new Produk().tambahData();
 }
}

Buka command prompt, masuk ke direktori dimana kedua file java diatas tersimpan. Compile SepedaMotor.java dan Produk.java, kemudian jalankan file Produk.class menggunakan perintah  java produk, program diatas akan menghasilkan output sebagai berikut:


No comments:

Post a Comment

Related Posts Plugin for WordPress, Blogger...