Java'da İç Sınıf nedir?
Yayınlanan: 2022-04-29Java'daki iç sınıf kavramı, Java programlamanın temelidir. Java'da, iç içe sınıf ve iç sınıf, birbirine çok benzer ancak biraz farklı sınıf tasarımı fikirleridir ve genellikle el ele gider.
Yuvalanmış bir sınıf, başka bir sınıf içinde tanımlanır ve iki türü vardır - statik yuvalanmış sınıf ve statik olmayan yuvalanmış sınıf. Öte yandan, bir iç sınıf, statik olmayan bir iç içe sınıf türüdür ve ayrıca üç türden oluşur: üye iç sınıf, anonim iç sınıf ve yerel iç sınıf.
Peki, bu üç tür iç sınıf ne anlama geliyor ve bunların kullanımı nedir? Java iç sınıfıyla ilgili bu ayrıntılı kılavuzu öğrenmek için okumaya devam edin.
Java'da İç Sınıfın Anlamı
Statik olmayan bir iç içe sınıf veya iç sınıf, başka bir sınıf içinde tanımlanır ve dış sınıfın (çevreleyen sınıf) üyelerine erişimi vardır. Aksine, statik bir iç içe sınıf aynı zamanda başka bir sınıf içinde tanımlanan bir sınıftır, ancak statik olmayan bir iç içe sınıfın aksine, dış sınıfının üye değişkenlerine erişemez. Statik olmayan iç içe sınıf durumunda, dış sınıfın bir örneğini oluşturmamız gerekmez. Ancak bir iç sınıf söz konusu olduğunda, iç sınıfı somutlaştırabilmek için önce dış sınıfı somutlaştırmalıyız.
Kaynak
Java'da İç Sınıf Türleri
Java'da iç sınıflar aşağıdaki üç türdendir:
- Üye iç sınıf
- Anonim iç sınıf
- Yerel iç sınıf
Şimdi her bir iç sınıf türünü örneklerle anlayalım.
1. Üye İç Sınıfı
Java'daki üye iç sınıf, bir sınıfın içinde ancak bir yöntemin dışında oluşturulan statik olmayan iç içe sınıftır. Normal bir iç sınıf olarak da adlandırılan bir üye iç sınıf, private, public, default ve protected gibi erişim değiştiricileri ile bildirilebilir.
Bir üye iç sınıfının sözdizimi aşağıdaki gibidir:
sınıf Dış{
//kod
sınıf İç{
//kod
}
}
Java örneğinde üye iç sınıfı:
Aşağıda, bir iç sınıfın nasıl oluşturulacağını ve ona nasıl erişileceğini gösteren bir program verilmiştir. İç sınıfı özel yapacağız ve sınıfa erişmek için display_Inner() yöntemini kullanacağız.
sınıf DemoOuter {
int sayı;
// iç sınıf
özel sınıf DemoInner {
public void print() {
System.out.println(“Bu iç sınıftır”);
}
}
// İçindeki metottan iç sınıfa erişim
geçersiz display_Inner() {
DemoInner iç = yeni DemoInner();
iç.baskı();
}
}
genel sınıf MyClass {
public static void main(String args[]) {
// Dış sınıfın örneklenmesi
DemoOuter dış = yeni DemoOuter();
// display_Inner() yöntemine erişim
dış.display_Inner();
}
}
Çıktı: Bu iç sınıftır
Yukarıdaki örnekte, OuterDemo dış sınıftır, InnerDemo iç sınıftır, ana yöntemden çağrılan display_Inner() yönteminin içindeki iç sınıfı somutlaştırıyoruz.
Popüler Yazılım Mühendisliği Kurslarımızı keşfedin
SL. Numara | Yazılım Geliştirme Programları | |
1 | LJMU ve IIITB'den Bilgisayar Bilimleri Yüksek Lisansı | Caltech CTME Siber Güvenlik Sertifika Programı |
2 | Tam Yığın Geliştirme Eğitim Kampı | Blockchain'de PG Programı |
3 | Yazılım Geliştirmede Yönetici Yüksek Lisans Programı - DevOps'ta Uzmanlık | Tüm Yazılım Mühendisliği Kurslarını Görüntüle |
2. Anonim İç Sınıf
Java'daki anonim bir iç sınıf, herhangi bir sınıf adı olmadan bildirilen ve yalnızca tek bir nesnenin oluşturulduğu bir iç sınıftır. Java'daki anonim iç sınıflar aynı anda bildirilir ve somutlaştırılır. Bir sınıfın veya arabirimin yöntemini geçersiz kılmak istediğimizde en değerlidirler.
Java'da anonim bir iç sınıfın sözdizimi aşağıdaki gibidir:
AnonymousInner an_inner = yeni AnonymousInner() {
public void my_method() {
//kod
}
};
Java'da anonim bir iç sınıf iki şekilde oluşturulabilir:
- sınıfı kullanma
- arayüzü kullanma
Java örneğinde anonim iç sınıf (sınıf kullanarak):
soyut sınıf Yemek{
soyut boşluk yemek();
}
sınıf TestAnonymousInner{
public static void main(String args[]){
Yemek m=yeni Yemek(){
void eat(){System.out.println(“Afiyet olsun!”);}
};
et();
}
}
Çıktı: Afiyet olsun!
Java örneğinde anonim iç sınıf (arayüz kullanarak):
arayüz Oyunu{
geçersiz oyun();
}
sınıf TestAnonymousInner1{
public static void main(String args[]){
Oyun g=yeni Oyun(){
public void play(){System.out.println(“Dış mekan oyunları”);}
};
g.play();
}
}
Çıktı: Açık hava oyunları
3. Yerel İç Sınıf
Java'daki yerel bir iç sınıf, bir yöntemin içinde oluşturulan bir sınıftır. Yerel değişkenlerde olduğu gibi, yerel iç sınıfın kapsamı yöntem içinde sınırlı kalır.
Yerel iç sınıflar bir blok içinde tanımlanır: bir yöntem gövdesi, bir if yan tümcesi veya bir for döngüsü. Yerel bir iç sınıf, herhangi bir çevreleyen sınıfın üyesi değildir, bunun yerine içinde tanımlandığı bloğa aittir. Bu nedenle, Java'daki yerel bir iç sınıf, kendisiyle ilişkilendirilmiş erişim değiştiricilerine sahip olamasa bile, onu soyut veya nihai olarak işaretleyebilirsiniz. Yerel bir iç sınıfın yöntemlerini çağırmak istiyorsak, sınıfı yöntemin içinde somutlaştırmalıyız.
Java örneğinde yerel iç sınıf:
Aşağıda, bir dış sınıfın yöntemi içinde bildirilen yerel bir iç sınıfın nesnesinin nasıl başlatılacağını gösteren örnek bir program bulunmaktadır.
paket innerClass;
genel sınıf Outer_Class
{
// Outer_Class sınıfının bir örnek yöntemi.
genel boşluk ekranı()
{
// Bir yöntemin yerel iç sınıfının bildirimi.
sınıf İç_Sınıf
{
public void msg(){
System.out.println(“Bu bir yerel iç sınıftır!”);
}
}
// Yerel bir iç sınıf yönteminin bir örneğini oluşturun ve nesne referans değişkeni i'yi kullanarak msg() yöntemini çağırın.
Inner_Class i = yeni Inner_Class();
i.msg();
}
public static void main(String[] args)
{
// Outer_Class dış sınıfının bir nesnesini oluşturun.
Outer_Class o = new Outer_Class();
o.display();
}
}
Çıktı: Bu yerel bir iç sınıftır!
Java iç sınıfının temellerini göz önünde bulundurarak, onlara neden ilk etapta ihtiyacımız olduğunu anlayalım.
Java İç Sınıfının Avantajları
Java'daki bir iç sınıf, masaya üç önemli yardımcı program getirir. Bunlar aşağıdaki gibidir:
1. Bir Java iç sınıfı, özel dahil olmak üzere dış/ana sınıfın veri üyelerine ve yöntemlerine erişebildiğinden, belirli bir ilişki türünü temsil eder.
2. Java iç sınıfı, yazmak için daha az şey gerektirdiğinden kodlamayı önemli ölçüde azaltır.
3. Java'daki bir iç sınıf, sınıfları ve arabirimleri tek bir yerde mantıksal olarak gruplandırır, böylece kodun okunabilirliğini artırır ve bakımını kolaylaştırır.
Özetliyor
Yuvalanmış sınıflar kavramı, Java programlamasında herhangi bir yerde sınıf oluşturmayı basitleştirir ve esneklik ekler. Bu bağlamda, şimdiye kadarki tartışmamızda gördüğümüz gibi, iç sınıf olarak bilinen statik olmayan bir iç içe sınıf özellikle yararlıdır.
İç sınıf kullanımının en uygun göründüğü iki örneği belirterek bitirmek istiyoruz. İlk olarak, bir Java iç sınıfı, iki sınıfın yakın bir ilişkisi olduğunda ve başka herhangi bir sınıf tarafından erişilebilir olmadığında idealdir. İkincisi, Java GUI programlama olay işlemesinde iç sınıflar yaygındır. Bu nedenle, Java iç sınıfları, dinleyicilerin ve GUI bileşenlerinin dahil olduğu yerlerde güvenle kullanılabilir.
Java'yı nerede öğreneceğinizi mi merak ediyorsunuz?
upGrad'ın Yazılım Mühendisliğinde İş Bağlantılı PG Sertifikasyonu aradığın şey bu!
Yeni mezunlar ve son yıllar için özel olarak tasarlanan upGrad'ın Yazılım Mühendisliğinde İş Bağlantılı PG Sertifikası, programlamayı öğrenmek ve giriş seviyesi yazılım rollerine yerleşmek isteyenler için mükemmeldir. Bu 5 aylık çevrimiçi program Java, JavaScript, HTML5, DSA, AWS, MERN ve daha fazlası gibi en iyi yazılım becerilerini öğretecek!
Programın Öne Çıkanları:
- MERN Stack/Cloud-Native'de Uzmanlaşma
- 500+ saat çevrimiçi öğrenme
- 350+ saat uygulamalı eğitim
- 50+ canlı oturum
- Beş endüstri projesi
- Endüstri uzmanlarıyla ağ kurma
- Meslektaşlar ve sektör uzmanlarıyla soru-cevap forumları
- Öğretim asistanlarından ve sektör danışmanlarından öğrenme desteği
Sektördeki en iyilerden bilgi almak için bugün kaydolun!
İç sınıf ve alt sınıf arasındaki fark nedir?
İç sınıf, başka bir sınıf içinde iç içe veya tanımlanmış bir sınıftır. Öte yandan, bir alt sınıf, başka bir sınıftan türetilen bir sınıftır. Ayrıca, bir iç sınıfa yalnızca içinde bulunduğu dış sınıfın referansı kullanılarak erişilebilirken, alt sınıf özel değişkenleri miras almadıkça, bir alt sınıfa doğrudan erişilebilir.
Java'da bir sınıfın içine sınıf yazabilir miyiz?
Evet, Java'da başka bir sınıf içinde bir sınıf tanımlayabiliriz. Böyle bir sınıf, iç içe sınıf olarak bilinir ve sınıfları tek bir yerde mantıksal olarak düzenlememize, böylece daha sürdürülebilir ve okunabilir bir kod oluşturmamıza olanak tanır. Çevreleyen sınıfının bir parçası olarak, iç içe geçmiş bir sınıf, genel, özel, paket-özel veya korumalı olarak bildirilebilir.
Java iç sınıfı özel olabilir mi?
Evet, bir Java iç sınıfı özel olabilir. Ancak bir iç sınıf bir kez private olarak bildirildiğinde, sınıfın dışındaki bir nesneden ona erişilemez. İç ve dış sınıfların birbirlerinin özel örnek değişkenlerine ve özel yöntemlerine erişimi vardır. Dış veya iç sınıf içinde olduğumuz sürece, private ve public değiştiricileri aynı etkiye sahiptir.