Senin, 28 Mei 2012

Inner Class



Apa itu Inner Class??
Merupakan kelas yang didefinisikan di dalam kelas. Kelas inner dapat mengakses data dan method dari kelas luar, meskipun data dan method tersebut bersifat private. Sebaliknya kelas luar tidak dapat mengakses data atau method dari kelas dalam yang bersifat private.
Ketentuan kelas inner :
  1. Kelas Luar yang mnegandung kelas inner bila dikompilasi akan menghasilkan dua file yaitu Luas.class dan Luas$Inner.class.
  2. Kelas Inner boleh tidak diberi nama disebut Anonymous Inner.
  3. Pada non-static, pembuatan objek inner class bila dilakukan di dalam method static, maka harus membuat objek kelas luar terlebih dahulu.
Contoh            :
                        Luar a = new Luar();  // membuat objek kelas luar
                        Dalam.Luar b = a.new Dalam();  // membuat objek kelas Dalam
Bila instantiasi dilakukan pada method non-static dari kelas luar, maka dapat dilakukan secara langsung seperti biasa.
Contoh            :           Dalam b = new Dalam();
Jika kelas Inner bersifat static, maka objek milik kelas Inner dapat dibuat sendiri tanpa melalui kelas luarnya tetapi kelas inner tidak dapat mengakses atribut ataupun method non-static milik kelas.

Berikut adalah contoh program menutur versinya :

Versi C# :

using System;

using innerClass;



namespace innerClass

{

class classLuar {

public class classDalam {

public void komen(){

Console.WriteLine("Regular class inner regular menggunakan C#");

}

}

}

class Program {

static void Main(string[] args) {

classLuar.classDalam dalam = new classLuar.classDalam();

dalam.komen();

Console.ReadKey(true);

}

}

}

Versi Java :

package innerclass_java;



class classLuar {

class classDalam {

void komen(){

System.out.print("Regular class inner regular menggunakan Java");

}

}

}

public class Main {

public static void main(String[] args) {

classLuar.classDalam dalam = new classLuar().new classDalam();

dalam.komen();

}

}


Versi C++ :

#include

#include



using namespace std;



class classLuar {

public : class classDalam

{

public : void komen() {

cout << "Regular class inner regular menggunakan C++" << endl;

}

};

};

int main(void) {

classLuar::classDalam dalam = classLuar::classDalam();

dalam.komen();

system("PAUSE");

}


Link Download : HERE !!!

0 komentar:

Posting Komentar

Twitter Delicious Facebook Digg Stumbleupon Favorites More