access modifiers java tutorial with examples
Bu eğitim videosu, Java'da Erişim Değiştiricilerin ne olduğunu ve Varsayılan, Genel, Korumalı ve Özel Erişim Değiştiricilerin nasıl kullanılacağını örneklerle açıklar:
Java'da sınıflarımız ve nesnelerimiz var. Bu sınıflar ve nesneler bir pakette bulunur. Ayrıca, sınıflar iç içe geçmiş sınıflara, yöntemlere, değişkenlere vb. Sahip olabilir. Java nesne yönelimli bir programlama dili olduğundan, istenmeyen ayrıntıları gizlediğimiz kapsüllemeyi izlemeliyiz.
Java, bir paketin, sınıfın, kurucunun, yöntemlerin, değişkenlerin veya diğer veri üyelerinin kapsamını veya görünürlüğünü kısıtlamamıza yardımcı olan 'Erişim Değiştiricileri veya erişim belirleyicileri' adı verilen varlıklar sağlar. Bu erişim değiştiricilere ayrıca 'Görünürlük Belirteçleri'.
Erişim belirteçlerini kullanarak, belirli bir sınıf yöntemi veya değişkeni, diğer sınıflara erişmek veya bu sınıflardan gizlenmek üzere kısıtlanabilir.
=> TÜM Java Öğreticilerini Buradan Kontrol Edin.
şifreli DVD'ler için en iyi ücretsiz dvd ripper
Ne öğreneceksin:
- Java'da Erişim Değiştiricilerle İlgili Video Eğitimi
- Java'da Erişim Değiştiricilere
- Java'da Erişim Değiştirici Türleri
- Sonuç
Java'da Erişim Değiştiricilerle İlgili Video Eğitimi
Java'da Erişim Değiştiricilere
Erişim belirleyicileri ayrıca, bir sınıfın hangi veri üyelerine (yöntemler veya alanlar), sınıfların veya paketlerin vb. Diğer veri üyeleri tarafından erişilebileceğini belirler. Kapsülleme ve yeniden kullanılabilirliği sağlamak için, bu erişim belirleyicileri / değiştiricileri nesne yönelimli programlamanın ayrılmaz bir parçasıdır.
Java'daki değiştiriciler iki türdendir:
# 1) Erişim Değiştiriciler
Java'daki erişim değiştiriciler, bir alan, yapıcı, sınıf veya yöntem olsun, bir veri üyesinin kapsamını veya erişilebilirliğini veya görünürlüğünü ayarlamamıza izin verir.
# 2) Erişimi Olmayan Değiştiriciler
Java ayrıca sınıflar, değişkenler, yöntemler, yapıcılar, vb. İle kullanılan erişim dışı belirticiler sağlar. Erişilemeyen belirticiler / değiştiriciler, varlıkların JVM'deki davranışını tanımlar.
Java'daki bazı erişilemeyen belirteçler / değiştiriciler şunlardır:
- statik
- final
- Öz
- geçici
- uçucu
- senkronize
- yerli
Önceki eğitimlerimizde statik, senkronize ve geçici anahtar kelimeleri ele aldık. Bu öğreticinin kapsamı dışında oldukları için, diğer erişim dışı değiştiricileri gelecekteki eğitimlerimizde ele alacağız.
Java'da Erişim Değiştirici Türleri
Java, sınıflar ve diğer varlıklar ile kullanabileceğimiz dört tür erişim belirticisi sağlar.
Bunlar:
# 1) Varsayılan: Belirli bir erişim seviyesi belirtilmediğinde, 'varsayılan' olduğu varsayılır. Varsayılan seviyenin kapsamı paketin içindedir.
# 2) Herkese Açık: Bu en yaygın erişim seviyesidir ve genel erişim tanımlayıcısı bir varlık ile kullanıldığında, söz konusu varlığa sınıfın içinden veya dışından, paketin içinden veya dışından vb. Erişilebilir.
# 3) Korumalı: Korumalı erişim düzeyinin paket içinde bir kapsamı vardır. Korumalı bir varlığa, devralınan sınıf veya alt sınıf aracılığıyla paketin dışından da erişilebilir.
# 4) Özel: Bir varlık özel olduğunda, bu varlığa sınıf dışından erişilemez. Özel bir varlığa yalnızca sınıf içinden erişilebilir.
Erişim değiştiricilerini aşağıdaki tabloda özetleyebiliriz.
Erişim Belirteci | Sınıf İçinde | İç Paket | Dış paket alt sınıfı | Dış paket |
---|---|---|---|---|
Özel | Evet | Yapma | Yapma | Yapma |
Varsayılan | Evet | Evet | Yapma | Yapma |
Korumalı | Evet | Evet | Evet | Yapma |
halka açık | Evet | Evet | Evet | Evet |
Daha sonra, bu erişim belirleyicilerin her birini ayrıntılı olarak tartışacağız.
Varsayılan Erişim Belirteçleri
Java'daki varsayılan erişim değiştiricinin belirli bir anahtar sözcüğü yoktur. Erişim değiştirici belirtilmediğinde, varsayılan olarak kabul edilir. Sınıflar, yöntemler ve değişkenler gibi varlıklar varsayılan erişime sahip olabilir.
Varsayılan bir sınıfa paketin içinden erişilebilir ancak bu sınıfa paketin dışından erişilemez, yani varsayılan sınıfın tanımlandığı paket içindeki tüm sınıflar bu sınıfa erişebilir.
Benzer şekilde, varsayılan bir yöntem veya değişkene, paketin dışında değil, içinde tanımlandıkları paketin içinde de erişilebilir.
Aşağıdaki program Java'da Varsayılan Erişim Değiştiriciyi göstermektedir.
class BaseClass { void display() //no access modifier indicates default modifier { System.out.println('BaseClass::Display with 'dafault' scope'); } } class Main { public static void main(String args()) { //access class with default scope BaseClass obj = new BaseClass(); obj.display(); //access class method with default scope } }
Çıktı:
Yukarıdaki programda, içinde herhangi bir erişim değiştiricisi olmayan bir sınıf ve bir yöntem var. Dolayısıyla, hem sınıf hem de yöntem görüntüsü varsayılan erişime sahiptir. Daha sonra yöntemde doğrudan sınıfın bir nesnesini oluşturabileceğimizi ve yöntemi çağırabileceğimizi görüyoruz.
Genel Erişim Değiştirici
'Genel' olarak belirtilen bir sınıf veya yöntem veya veri alanına, Java programındaki herhangi bir sınıf veya paketten erişilebilir. Kamu tüzel kişiliğine hem paket içinde hem de paket dışında erişilebilir. Genel olarak, genel erişim değiştiricisi, varlığı hiç kısıtlamayan bir değiştiricidir.
class A { public void display() { System.out.println('SoftwareTestingHelp!!'); } } class Main { public static void main(String args()) { A obj = new A (); obj.display(); } }
Çıktı:
Korumalı Erişim Belirteci
Korumalı erişim belirticisi, varlığın bildirildiği sınıfın alt sınıfları aracılığıyla varlıklara erişime izin verir. Sınıfın aynı pakette mi yoksa farklı pakette mi olduğu önemli değildir, ancak korumalı bir varlığa erişmeye çalışan sınıf bu sınıfın bir alt sınıfı olduğu sürece varlığa erişilebilir.
Bir sınıfın ve bir arayüzün korunamayacağını, yani korumalı değiştiricileri sınıflara ve arayüzlere uygulayamayacağımızı unutmayın.
Korumalı erişim değiştirici genellikle ebeveyn-çocuk ilişkilerinde kullanılır.
Aşağıdaki program, Korumalı Erişim değiştiricinin Java'da kullanımını göstermektedir.
//A->B->C = class hierarchy class A { protected void display() { System.out.println('SoftwareTestingHelp'); } } class B extends A {} class C extends B {} class Main{ public static void main(String args()) { B obj = new B(); //create object of class B obj.display(); //access class A protected method using obj C cObj = new C(); //create object of class C cObj.display (); //access class A protected method using cObj } }
Çıktı:
Özel Erişim Değiştirici
'Özel' erişim değiştirici, en düşük erişilebilirlik seviyesine sahip olandır. Özel olarak bildirilen yöntemlere ve alanlara sınıf dışında erişilemez. Yalnızca bu özel varlıkların üyesi olduğu sınıf içinde erişilebilirler.
Özel varlıkların sınıfın alt sınıfları tarafından bile görünmediğini unutmayın. Özel erişim değiştirici, Java'da kapsüllemeyi sağlar.
Özel Erişim Değiştirici ile ilgili dikkat edilmesi gereken bazı noktalar.
- Özel erişim değiştiricisi, sınıflar ve arabirimler için kullanılamaz.
- Özel varlıkların (yöntemler ve değişkenler) kapsamı, bildirildikleri sınıfla sınırlıdır.
- Özel kurucuya sahip bir sınıf, ana yöntem gibi başka bir yerden sınıfın bir nesnesini oluşturamaz. (Özel kurucularla ilgili daha fazla ayrıntı, önceki eğitimimizde açıklanmıştır).
Aşağıdaki Java programı bir Özel Erişim Değiştirici kullanır.
class TestClass{ //private variable and method private int num=100; private void printMessage(){System.out.println('Hello java');} } public class Main{ public static void main(String args()){ TestClass obj=new TestClass(); System.out.println(obj.num);//try to access private data member - Compile Time Error obj.printMessage();//Accessing private method - Compile Time Error } }
Çıktı:
Yukarıdaki program, sınıf nesnesini kullanarak özel veri üyelerine erişmeye çalıştığımız için derleme hatası veriyor.
Ancak özel üye değişkenlerine erişmenin bir yöntemi vardır. Bu yöntem Java'da alıcılar ve ayarlayıcılar kullanıyor. Bu nedenle, alıcının özel değişkenin değerini okuyabilmesi için özel değişkenin bildirildiği aynı sınıfta bir public get yöntemi sağlıyoruz.
Benzer şekilde, özel değişken için bir değer ayarlamamıza izin veren bir genel ayarlayıcı yöntemi sunuyoruz.
Aşağıdaki Java programı, Java'da özel değişkenler için alıcı ve ayarlayıcı yöntemlerinin kullanımını göstermektedir.
class DataClass { private String strname; // getter method public String getName() { return this.strname; } // setter method public void setName(String name) { this.strname= name; } } public class Main { public static void main(String() main){ DataClass d = new DataClass(); // access the private variable using the getter and setter d.setName('Java Programming'); System.out.println(d.getName()); } }
Çıktı:
Yukarıdaki programın özel dizgi değişkenine sahip bir sınıfı vardır. Özel değişkenin değerini döndüren genel bir getName üye yöntemi sağlıyoruz. Ayrıca, sınıfta bir String'i argüman olarak alan ve özel değişkene atayan bir public setName yöntemi de sağlıyoruz.
Her iki yöntem de genel olduğundan, sınıfın nesnesini kullanarak bunlara kolayca erişebiliriz. Bu şekilde, sınıfın özel veri üyelerine her erişmeye çalıştığımızda ortaya çıkan derleme hatasının üstesinden gelebiliriz.
Sıkça Sorulan Sorular
S # 1) Java'da kaç tane Erişim Değiştirici vardır?
Cevap: Java dört değiştirici sağlar, yani varsayılan, genel, korumalı ve özel.
mac'da .7z dosyaları nasıl açılır
S # 2) Java'daki Erişim Değiştiriciler ve Erişim Olmayan Değiştiriciler nelerdir?
Cevap: Erişim değiştiricileri, bir sınıf veya yöntem veya değişken veya kurucu gibi bir program varlığının görünürlüğünü veya kapsamını tanımlar. Erişilemeyen değiştiriciler, bir varlığın davranışını tanımlar. Örneğin, senkronize bir yöntem veya blok, çok iş parçacıklı bir ortamda çalışabileceğini belirtirken, son bir değişken bunun bir sabit olduğunu belirtir.
S # 3) Erişim Belirteçleri neden önemlidir?
Cevap: Değiştiriciler, hangi sınıfın hangi diğer sınıflara veya yöntemlere veya değişkenlere erişebileceğini belirtir. Erişim belirteçlerini kullanarak çeşitli sınıfların, yöntemlerin, yapıcıların ve değişkenlerin erişimini sınırlayabilir ve ayrıca Java varlıklarının kapsüllenmesini ve yeniden kullanılabilirliğini sağlayabiliriz.
S # 4) Sınıf için hangi Değiştiriciler kullanılmıyor?
Cevap: Korumalı ve Özel değiştiriciler bir sınıf için kullanılmaz.
S # 5) Erişilemeyen Değiştiriciler nedir?
Cevap: İlişkili oldukları sınıf, yöntem veya değişkenler gibi varlıkların davranışını tanımlayan değiştiriciler, erişim dışı değiştiricilerdir. Adından da anlaşılacağı gibi erişimi belirtmiyorlar. Java, statik, son, senkronize, uçucu, soyut vb. Gibi çeşitli erişim dışı değiştiriciler sağlar.
Görünürlük Değiştiriciler Hakkında Daha Fazla Bilgi
Java, değişkene, yöntemlere ve yapıcılara erişmek için birçok değiştirici sağlar.
Java'da 4 tür erişim değişkeni vardır:
- Özel
- halka açık
- Varsayılan
- Korumalı
# 1) Özel
Bir değişken özel olarak bildirilmişse, sınıf içinden erişilebilir. Bu değişken sınıf dışında kullanılamayacak. Bu nedenle dış üyeler özel üyelere erişemez.
Not: Sınıflar ve arayüzler özel olamaz.
# 2) Herkese Açık
Ortak değiştiricilere sahip yöntemlere / değişkenlere projedeki diğer tüm sınıflar tarafından erişilebilir.
# 3) Korumalı
Bir değişken korumalı olarak bildirilirse, diğer paketlerin aynı paket sınıfları ve alt sınıfı içinden erişilebilir.
Not: Korumalı erişim değiştiricisi, sınıf ve arabirimler için kullanılamaz.
# 4) Varsayılan Erişim Değiştirici
Bir değişken / yöntem, herhangi bir erişim değiştirici anahtar sözcüğü olmadan tanımlanırsa, bu bir varsayılan değiştirici erişimine sahip olacaktır.
Erişim Değiştiriciler | Görünürlük |
---|---|
halka açık | Tüm sınıflara görünür. |
Korumalı | Pakette bulunan sınıflara ve diğer paketin alt sınıflarına görünür. |
Erişim Değiştirici Yok (Varsayılan) | Paket ile sınıflara görünür |
özel | Sınıfta ile görünür. Sınıf dışından erişilemez. |
Demo Sınıfı:
class AccessModifiersDemo { private int empsalaray ; public String empName; private void calculateSalary() { System.out.println('insid methodone'); } public String printEmpName(String empName ) { this.empName=empName; return empName; } }
Başka bir sınıftaki sınıfın üyelerine erişim:
public class TestAccessModifier { public static void main(String() args) { AccessModifiersDemo accessobj =new AccessModifiersDemo(); accessobj.calculateSalary(); } }
Çıktı:
Genel üyelere erişim:
public class TestAccessModifier { public static void main(String() args) { AccessModifiersDemo accessobj =new AccessModifiersDemo(); System.out.println(accessobj.printEmpName('Bobby')); } }
Çıktı:
masaüstü desteği mülakat soruları ve cevapları
Bobby
Önemli noktalar:
- Erişim belirticileri, sınıfın görünürlüğünü tanımlar.
- Anahtar sözcük belirtilmezse, bu varsayılan erişim değiştiricidir.
- Java'daki dört değiştirici, genel, özel, korumalı ve varsayılanı içerir.
- Özel ve Korumalı anahtar sözcükler, sınıflar ve arabirimler için kullanılamaz.
Sonuç
Bu eğitimde, Java'daki Erişim Değiştiricileri ayrıntılı olarak inceledik. Java, varsayılan, genel, özel ve korumalı olmak üzere dört tür erişim değiştirici veya görünürlük belirleyici sağlar. Varsayılan değiştiricinin kendisiyle ilişkilendirilmiş herhangi bir anahtar sözcüğü yoktur.
Bir sınıf veya yöntem veya değişken, kendisiyle ilişkili bir erişim tanımlayıcısına sahip olmadığında, varsayılan erişime sahip olduğunu varsayarız. Genel erişim değiştiricisi, sınıfın veya paketin içinde veya dışında her şeye erişim sağlar. Genel değiştirici durumunda erişimde bir sınır yoktur.
Korumalı görünürlük belirticisi, yalnızca korumalı üyelerin bildirildiği sınıfı devralan alt sınıflara erişime izin verir. Özel erişim değiştiricisi, özel veri üyeleriyle en az erişilebilirliğin yalnızca sınıf içinde erişilebilir olmasını sağlar.
Değiştiriciler, sınıflar, yapıcılar, yöntemler ve değişkenler gibi veri üyelerinin kapsamını sınırlar ve hangi sınıfların veya paketlerin bunlara erişebileceğine ilişkin sınırı tanımlar. Erişim belirteçleri, Java'da kapsüllemeyi ve yeniden kullanılabilirliği teşvik eder. Sınıfların ve arayüzün korunamayacağını veya özel olamayacağını unutmayın.
=> Sıfırdan Java Öğrenmek İçin Burayı Ziyaret Edin.
Önerilen Kaynaklar
- Örneklerle Java Yansıtma Eğitimi
- Yeni Başlayanlar İçin JAVA Eğitimi: 100+ Uygulamalı Java Video Eğitimi
- Java Programlama Diline Giriş - Video Eğitimi
- Java SWING Eğitimi: Konteyner, Bileşenler ve Olay İşleme
- String Buffer ve String Builder Eğitimi ile Java String
- Java Dağıtımı: Java JAR Dosyasının Oluşturulması ve Yürütülmesi
- Java Sanal Makinesi: JVM, Java Uygulamasını Çalıştırmada Nasıl Yardımcı Olur?
- Java Collections Framework (JCF) Eğitimi