Java’da Nested Interface (İç İçe Arayüz) kavramının bir başka ismi Inner Interfacedir. Nedir bu Java’da Nested Interface diyecek olursak. Aslında bir sınıf veya Arayüz (Interface) içerisinde belirtilen ve tanımlanan Arayüzlere (Interface) Nested Interface demekteyiz. Java’da Nested Interface, ilgili arayüzlerin bakımını kolaylaştıracak şekilde gruplamak için kullanılır.
Java’da Nested Interface ile ilgili örneklerimize geçelim.
1. Örnek
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | public class Nested { // protected interface Gel { void goster(); } } //Nested sınıfındaki arayüzü implement eden bir sınıf oluşturduk. class Yazdır implements Nested.Gel { //metot tanımladık. public void goster() { System.out.println("Kod Kampüsüne hoş geldiniz"); } } //main sınıfımızı oluşturduk class Main { public static void main(String args[]) { //nesnemizi oluşturduk ve metodumuz ile çıktımızı verdik. Yazdır yazdır = new Yazdır(); Nested.Gel y; y = yazdır; y.goster(); } } |
Ekran Çıktısı
1 | Kod Kampüsüne hoş geldiniz |
Yaptığımız bu örnekte ilk olarak Nested sınıfımızı oluşturduk bu sınıfımızın içerisinde Gel adında bir arayüz oluşturduk. Sonrasında Yazdır sınıfımızı oluşturduk ve Nested sınıfımızın içerisindeki Gel arayüzünü implement ettik. Sonrasında Main sınıfımızı oluşturduk ve içerisinde nesnelerimizi tanımladıktan sonra metot ile ekran çıktımızı verdik.
2. Örnek
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | public class AracTür { //arac adında bir arayüz oluşturduk interface arac { void getirYolcuSayısı(); } } //AracTür sınıfındaki arayüzü implement eden bir sınıf oluşturduk. class otomobil implements AracTür.arac { //metot tanımladık public void getirYolcuSayısı() { System.out.println("Otomobil koltuk sayısı = 5"); } } //AracTür sınıfındaki arayüzü implement eden bir sınıf oluşturduk. class minibüs implements AracTür.arac { //metot tanımladık public void getirYolcuSayısı() { System.out.println("Minibüs koltuk sayısı = 15"); } } //AracTür sınıfındaki arayüzü implement eden bir sınıf oluşturduk. class otobus implements AracTür.arac { //metot tanımladık public void getirYolcuSayısı() { System.out.println("Otobüs koltuk sayısı = 30"); } } //araclar sınıfımızı oluşturduk ve içerisinde nesnelerimizi oluşturarak ekran çıktısı verdik. class araclar { public static void main(String args []) { otomobil oto = new otomobil(); oto.getirYolcuSayısı(); minibüs mini = new minibüs(); mini.getirYolcuSayısı(); otobus otobus = new otobus(); otobus.getirYolcuSayısı(); } } |
Ekran Çıktısı
1 2 3 | Otomobil koltuk sayısı = 5 Minibüs koltuk sayısı = 15 Otobüs koltuk sayısı = 30 |
Yaptığımız bu örnekte ilk olarak AracTür adında bir sınıf oluşturduk ve içerisinde bir arayüz tanımladık. Sonrasında ise otomobil, minibüs ve otobus adında sınıflar oluşturduk. Oluşturduğumuz bu sınıflar AracTür sınıfındaki arac arayüzünü implenet ettirdik. Sonrasinda ise araclar sınıfımızı oluşturduk ve bu sınıflar içerisinde nesnelerimizi oluşturarak ekran çıktımızı verdik.
3.Örnek
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | public class hesaplar { //sayı adında bir arayüz oluşturduk protected interface sayı { public void hesap(int n); } } //hesaplar sınıfındaki sayı arayüzünü implement eden kare sınıfını oluşturduk. class kare implements hesaplar.sayı{ //metot tanımladık public void hesap (int n) { int y = n*n; System.out.println("Sayının karesi = " + y); } } //hesaplar sınıfındaki sayı arayüzünü implement eden küp sınıfını oluşturduk. class küp implements hesaplar.sayı{ //metot tanımladık. public void hesap (int n) { int y = n*n*n; System.out.println("Sayının küpü = " + y); } } //Main sınıfımızı oluşturduk ve içerisinde nesnelerimizi oluşturarak ekran çıktısı verdik. class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); kare kare = new kare(); küp küp = new küp(); System.out.println("Sayı giriniz"); int n = scanner.nextInt(); kare.hesap(n); küp.hesap(n); } } |
Ekran Çıktısı
1 2 3 4 | Sayı giriniz 5 Sayının karesi = 25 Sayının küpü = 125 |
Yapmış olduğumuz bu örnekte ilk olarak hesaplar adında bir sınıf oluşturduk ve bu sınıf içerisinde sayı adında bir arayüz oluşturduk. Sonrasında ise hesaplar sınıfında sayı adındaki arayüzü implement eden kare ve küp sınıflarını oluşturduk ve bu sınıfların içerisine metotlarımızı tanımladık.