logo

Genel ve Özel Java

Java'da, halk Ve özel öyle anahtar kelimeler olarak bilinen erişim değiştirici veya belirleyici . Bir sınıfın kapsamını veya erişilebilirliğini kısıtlar, yapıcı , değişkenler , yöntem s ve veri üyeleri. Hangisinin uygulandığına bağlıdır. Java dört tür erişim değiştirici sağlar: kamu, özel, korumalı , Ve varsayılan . Ancak bu bölümde yalnızca kamu ve özel olmak üzere iki konuyu ele alacağız ve ayrıca genel ve özel erişim belirteci arasındaki fark örnekle.

Erişim değiştiricileri, diğer sınıfların belirli bir alanı kullanıp kullanamayacağını veya belirli bir yöntemi çağırıp çağıramayacağını kontrol eder. Java iki düzeyde erişim kontrolü sağlar:

    Üst düzey:Bu seviyede yalnızca bir tane kullanabiliriz. halk Üye Seviyesi:Bu seviyede şunları kullanabiliriz: kamu, özel, korumalı Ve paket-özel (açık bir değiştirici kullanmıyorsak paket-özel olarak bilinir).

Aşağıdaki tablo, genel ve özel değiştiricilerin izin verdiği üyelere erişim düzeyini gösterir.

yeni başlayanlar için java eğitimi
Genel ve Özel Java

Hala ikisi arasındaki farkları netleştiremediniz mi? Size erişim düzeylerinin görünürlüğü nasıl etkilediğini gösteren bir şekil göstereyim. Aşağıdaki şekil iki paketi göstermektedir p1 Ve p2 . Her paket iki sınıf içerir Demo1 Ve Demo2 (p1 paketinde) ve Demo3 Ve Demo4 (p2 paketinde).

Genel ve Özel Java

Aşağıdaki tabloda, sınıfları tek tek herkese açık ve özel yaptığımız takdirde sınıfların görünürlüğü açıklanmaktadır. Yukarıdaki şekilde Demo1, her erişim değiştirici için görünen tek sınıftır.

Genel ve Özel Java

Bunu ayrıntılı olarak tartışalım.

Genel Erişim Değiştirici

Kullanılarak belirtilebilir. halk anahtar kelime. Kapsamı veya erişilebilirliği, diğer erişim belirteçleri arasında en geniş olanıdır. Public olarak bildirilen değişkenlere, sınıflara ve yöntemlere programın her yerinden erişilebilir. Kamuya açık veri üyelerinin kapsamına kısıtlama getirmez. Yöntemleri ve sınıfları public olarak bildirirsek, bunlar aynı zamanda ilkesini de ihlal eder. kapsülleme . Bunu üst düzey sınıflarla da kullanabiliriz.

Özel erişim belirticisini bir Java programı daha iyi anlaşılması için.

Demo1.java

dize bölünmüş bash
 package p1; public class Demo1 { public void show() { System.out.println('Javatpoint'); } } 

Demo2.java

 package p2; import p1.*; class Demo2 { public static void main(String args[]) { Demo1 obj = new Demo1(); obj.show(); } } 

Çıktı

 Javatpoint 

Özel Erişim Değiştirici

Public değiştiricinin tam tersidir. Kullanılarak belirtilebilir. özel anahtar kelime ve ardından sınıf adı (yalnızca iç içe geçmiş sınıflara uygulanır) veya yöntem adı veya veri üyesi gelir. Özel erişim belirtecini üst düzey sınıflarla kullanamayız veya arayüzler . Özel olarak bildirilen değişkenlere, yöntemlere ve sınıflara yalnızca bildirildikleri sınıftan veya üst sınıfları miras alarak erişilebilir. Java'daki en kısıtlı erişim belirtecidir. Kapsüllemenin yükseklik şeklidir.

  • Yapamayız geçersiz kılmak Özel olarak bildirilen yöntemler.
  • Eğer yapıcı ile birlikte özel değiştiriciyi kullanırsak alt sınıflanmasını önlemiş oluruz.
  • Sınıfları aynı içindeki diğer sınıflardan gizler. paket .

Daha iyi anlamak için bir Java programında özel erişim belirtecini kullanalım.

Aşağıdaki örnekte iki sınıf tanımladık: Demo1 ve Demo2. Demo1 sınıfında bir yöntem tanımladık. göstermek() özel olarak. Demo2 sınıfı, Demo1 sınıfının bir nesnesini yarattığımız main() yöntemini içerir. Bundan sonra Demo2 sınıfından Demo1 sınıfının özel metoduna erişmeye çalışıyoruz, bu mümkün değil. Ancak yine de hangi hatayı gösterdiğini görmek için programı çalıştıracağız.

Java'da ayrı dize
 class Demo1 { //defining method as private private void show() { System.out.println('Javatpoint'); } } public class Demo2 { public static void main(String args[]) { Demo1 obj = new Demo1(); //trying to access private method of the class Demo1 obj.show(); } } 

Yukarıdaki programı çalıştırdığımızda aşağıdaki hatayı gösteriyor:

Genel ve Özel Java

Java'da Genel ve Özel Erişim Belirleyicisi Arasındaki Fark

Genel ve özel değiştiriciler arasındaki en büyük fark görünürlüktür. Java, sınıf üyelerinin görünürlüğünü şu şekilde sınıflandırır:

  • Aynı paketteki alt sınıflar
  • Aynı paketteki alt sınıf olmayanlar
  • Farklı paketlerdeki alt sınıflar
  • Sınıflar ne aynı pakette ne de alt sınıflarda
Genel ve Özel Java

Hangisini kullanmalıyız?

Yöntemi veya özelliği herhangi bir yerden, diğer sınıflardan ve nesnenin örneklerinden görünür kılmak istiyorsak, genel erişim değiştiricisini kullanmalıyız. Yöntemi veya özelliği yalnızca kendi sınıfında görünür kılmak istiyorsanız özel erişim değiştiricisini kullanın. Sabitler dışında halka açık alanlardan kaçının.