logo

Java'da Erişim Değiştiricileri

  1. Özel erişim değiştirici
  2. Özel inşaatçının rolü
  3. Varsayılan erişim değiştirici
  4. Korumalı erişim değiştirici
  5. Genel erişim değiştirici
  6. Yöntem Geçersiz Kılma ile Erişim Değiştirici

Java'da iki tür değiştirici vardır: erişim değiştiricileri Ve erişim dışı değiştiriciler .

Java'daki erişim değiştiricileri bir alanın, yöntemin, yapıcının veya sınıfın erişilebilirliğini veya kapsamını belirtir. Erişim değiştiriciyi uygulayarak alanların, yapıcıların, yöntemlerin ve sınıfın erişim düzeyini değiştirebiliriz.

Dört tür Java erişim değiştiricisi vardır:

    Özel: Özel değiştiricinin erişim düzeyi yalnızca sınıf içindedir. Sınıf dışından erişilemez.Varsayılan: Varsayılan değiştiricinin erişim düzeyi yalnızca paket içindedir. Paketin dışından erişilemez. Herhangi bir erişim düzeyi belirtmezseniz varsayılan olacaktır.Korumalı: Korumalı değiştiricinin erişim düzeyi paketin içinde ve alt sınıf aracılığıyla paketin dışındadır. Alt sınıfı yapmazsanız paket dışından erişilemez.Halk: Genel değiştiricinin erişim düzeyi her yerdedir. Sınıf içinden, sınıf dışından, paket içinden ve paket dışından erişilebilir.

Statik, soyut, senkronize, yerel, geçici, geçici vb. gibi pek çok erişim dışı değiştirici vardır. Burada yalnızca erişim değiştiricileri öğreneceğiz.


Java Erişim Değiştiricilerini Anlamak

Java'daki erişim değiştiricileri basit bir tabloyla anlayalım.

Erişim Değiştiricisınıf içindepaket içindeyalnızca alt sınıfa göre dış paketdış paket
Özel VENNN
Varsayılan VEVENN
Korumalı VEVEVEN
Halk VEVEVEVE

1) Özel

Özel erişim değiştiricisine yalnızca sınıf içinden erişilebilir.

kaplan ile aslan arasındaki fark

Özel erişim değiştiricinin basit örneği

Bu örnekte A ve Simple olmak üzere iki sınıf oluşturduk. Bir sınıf, özel veri üyesini ve özel yöntemi içerir. Bu özel üyelere sınıf dışından erişiyoruz, dolayısıyla derleme zamanı hatası var.

 class A{ private int data=40; private void msg(){System.out.println('Hello java');} } public class Simple{ public static void main(String args[]){ A obj=new A(); System.out.println(obj.data);//Compile Time Error obj.msg();//Compile Time Error } } 

Özel İnşaatçının Rolü

Herhangi bir sınıf yapıcısını özel yaparsanız, o sınıfın örneğini sınıfın dışından oluşturamazsınız. Örneğin:

 class A{ private A(){}//private constructor void msg(){System.out.println('Hello java');} } public class Simple{ public static void main(String args[]){ A obj=new A();//Compile Time Error } } 

Not: Bir sınıf, iç içe geçmiş sınıf dışında özel veya korumalı olamaz.


2) Varsayılan

Herhangi bir değiştirici kullanmazsanız, şu şekilde değerlendirilir: varsayılan varsayılan olarak. Varsayılan değiştiriciye yalnızca paket içinden erişilebilir. Paketin dışından erişilemez. Özelden daha fazla erişilebilirlik sağlar. Ancak korunan ve halka açık olandan daha kısıtlayıcıdır.

dizeyi int'ye ayrıştırma

Varsayılan erişim değiştirici örneği

Bu örnekte pack ve mypack olmak üzere iki paket oluşturduk. A sınıfı public olmadığı için paketin dışından erişiyoruz, dolayısıyla paket dışından erişilemiyor.

 //save by A.java package pack; class A{ void msg(){System.out.println('Hello');} } 
 //save by B.java package mypack; import pack.*; class B{ public static void main(String args[]){ A obj = new A();//Compile Time Error obj.msg();//Compile Time Error } } 

Yukarıdaki örnekte, A sınıfının kapsamı ve msg() yöntemi varsayılan olduğundan ona paketin dışından erişilemez.


3) Korumalı

korumalı erişim değiştirici Paket içinden ve paketin dışından erişilebilir, ancak yalnızca miras yoluyla erişilebilir.

Korumalı erişim değiştiricisi veri üyesine, yönteme ve yapıcıya uygulanabilir. Sınıfta uygulanamaz.

Varsayılan değiştiriciden daha fazla erişilebilirlik sağlar.

Korumalı erişim değiştirici örneği

Bu örnekte pack ve mypack olmak üzere iki paket oluşturduk. A sınıfı paket paketi herkese açıktır, dolayısıyla paketin dışından erişilebilir. Ancak bu paketin msg metodu protected olarak bildirildiği için sınıf dışından ancak miras yoluyla erişilebilir.

Rajinikanth
 //save by A.java package pack; public class A{ protected void msg(){System.out.println('Hello');} } 
 //save by B.java package mypack; import pack.*; class B extends A{ public static void main(String args[]){ B obj = new B(); obj.msg(); } } 
 Output:Hello 

4) Kamu

genel erişim değiştirici her yerden ulaşılabilir. Diğer tüm değiştiriciler arasında en geniş kapsama sahiptir.

Genel erişim değiştirici örneği

 //save by A.java package pack; public class A{ public void msg(){System.out.println('Hello');} } 
 //save by B.java package mypack; import pack.*; class B{ public static void main(String args[]){ A obj = new A(); obj.msg(); } } 
 Output:Hello 

Yöntem Geçersiz Kılma ile Java Erişim Değiştiricileri

Herhangi bir yöntemi geçersiz kılıyorsanız, geçersiz kılınan yöntem (yani alt sınıfta bildirilen) daha kısıtlayıcı olmamalıdır.

 class A{ protected void msg(){System.out.println('Hello java');} } public class Simple extends A{ void msg(){System.out.println('Hello java');}//C.T.Error public static void main(String args[]){ Simple obj=new Simple(); obj.msg(); } } 

Varsayılan değiştirici korumalıdan daha kısıtlayıcıdır. Bu nedenle derleme zamanı hatası oluşur.