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:
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
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).
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.
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:
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
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.