Nested Class di Java

Di bahasa pemrograman C dan Pascal yang pernah saya pelajari, terdapat metoda nested loop atau nested if. Maksudnya adalah looping di dalam looping atau if didalam if. Awalnya agak pusing, maklum gak sampe logikanya karena memang baru pertama kali belajar pemrograman. Tapi setelah sering latihan dan memahami pelan-pelan alur jalannya, akhirnya ngartos juga…hehe

Nah di java, ternyata kelas juga bisa di dalam kelas, namanya nested class. Kode simpelnya seperti ini :

Class Cluar{
… //variable atau method Class luar
Class Cdalam{
… // variable atau method Class dalam
}
}

Dengan adanya class dalam tersebut, si class dalam dapat mengakses member baik variable atau method si class luar walaupun membernya private. Tapi kelas luar tidak bisa mengakses member dari kelas dalam. Itu ketentuannya.

Terdapat 2 bentuk dari nested class, yang pertama adalah dengan menggunakan keyword static dan yang kedua tanpa menggunakan static. Nested class yang tanpa static biasa dinamakan inner class. Untuk sementara penjelasan di artikel ini hanya nested yang tanpa static.
Contoh kodenya :

public class KelasLuar {
	private int angka[];
	
	public KelasLuar(int n[]) {
		angka = n;
	}
	
	void tampilan(){
		KelasDalam a = new KelasDalam();
		
		System.out.println("Nilai terkecil adalah : " +a.Terkecil());
		System.out.println("Nilai terbesar adalah : " +a.Terbesar());
	}
	
	public class KelasDalam{
		int Terkecil(){
			int k = angka[0];
			
			for(int i = 0; i < angka.length; i++){
				if( angka[i] < k ) 
					k = angka[i];
			}
			
			return k;
		}
		
		int Terbesar(){
			int b = angka[0];
			
			for(int i = 0; i  b ) 
					b = angka[i];
			}
			
			return b;
		}
	}
}

public class RunNestedClass {
	public static void main(String args[]){
		int x[] = { 3, 3, 4, 2, 5, 5, 7 };
		
		KelasLuar adiputra = new KelasLuar(x);
		
		adiputra.tampilan();
		
	}
}

Keluarannya :
Nilai terkecil adalah : 2
Nilai terbesar adalah : 7

Nah,,kelihatan kan dari kode diatas, si kelas dalam langsung bisa mengunakan array angka[] walaupun aksesnya bertipe private. Tapi pada method prosedur void tampilan(); si kelas luar tidak bisa langsung mengakses fungsi terbesar atau terkecil, kelas luar mesti membuat objek kelas dalam terlebih dahulu dengan perintah :

KelasDalam a = new KelasDalam();

Sampai sini dimengerti ya,,moga bermanfaat.

One thought on “Nested Class di Java

Silahkan Komentar...

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s