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 :
- Kelas Luar yang mnegandung
kelas inner bila dikompilasi akan menghasilkan dua file yaitu Luas.class
dan Luas$Inner.class.
- Kelas Inner boleh tidak
diberi nama disebut Anonymous Inner.
- 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