Java'da erişim
Gate.java içinde private int alan code, code = n; yapan yapıcı Gate(int n) ve code yazdıran metot void show() içeren bir Gate sınıfı yazın. Pier.java içinde Gate g = new Gate(9); ile bir gate kurun, sonra g.show(); çağırın. Her iki dosyayı derleyin ve java Pier çalıştırın. Ekran bir satır göstermelidir: 9. Alan Pier'dan gizlidir. Gate üzerindeki metot yine okuyabilir. Alana private koymak bu sayfanın öğrettiği şeydir.
Pier'ın doğrudan adlandırmaması gereken bir alan
Şimdiye kadar aynı klasördeki diğer sınıflar, erişim sözcüğü olmayan j.fill veya t.size gibi alanlara çoğu zaman ulaşabiliyordu. private sözcüğü bunu değiştirir. private alan, onu bildiren sınıfa aittir. Aynı sınıfın içindeki metotlar alanı kullanabilir. Başka bir sınıf — burada Pier — g.code yazmamalıdır.
Önce Gate.java oluşturun. Public class satırı public class Gate'tir. Burada eski bir Tag veya Jar sınıf adı bırakmayın. Süslü parantezlerin içinde private int code; bildirin. Yapıcıyı Gate(int n) { code = n; } olarak yazın; adlar farklı olsun ki bu sayfada this gerekmesin. Sonra yazın:
void show() { System.out.println(code); }
Gate.java içinde main yoktur. Derlemeden önce kaydedin. show metodu code ile aynı sınıftadır, bu yüzden private alanı okuyabilir. Bu sayfanın izin verdiği yol budur.
public class Gate {
private int code;
Gate(int n) {
code = n;
}
void show() {
System.out.println(code);
}
}
Pier show çağırır, g.code değil
Aynı klasörde Pier.java oluşturun. Public class satırı public class Pier'dır. main içinde Gate g = new Gate(9); yazın, sonra g.show();. Bu sayfada System.out.println(g.code); yazmayın. code private iken Pier'dan g.code denerseniz javac reddeder.
Pier'ı main'i tutan sınıf olarak bırakın. Bu ders için main'i Gate içine koymayın. Static sayfasından kalan bir Yard dosyası hâlâ klasördeyse, bu ders için java Yard çalıştırmayın — Gate.java ve Pier.java'yı derledikten sonra java Pier çalıştırın.
public class Pier {
public static void main(String[] args) {
Gate g = new Gate(9);
g.show();
}
}
Her iki dosyayı tutan klasörden javac Gate.java Pier.java çalıştırın. İkisi de tamam olduğunda önce Gate.java'yı, sonra Pier.java'yı derleyebilirsiniz. Parantezler, süslü parantezler ve noktalı virgüller uyuşunca javac kendi satırını yazmaz. Sonra java Pier çalıştırın — java Pier.java değil, java Gate de değil. Çalıştırma komutundan .java uzantısını çıkarın. main'i tutan sınıfı başlatın. Aynı komutlar Windows'ta ve macOS'ta çalışır.
Program bir satır yazıp durmalıdır: 9. Sizden yazmanızı istememelidir. Terminal klavye girişi bekliyorsa, eski bir alıştırmadan kalan bir nextLine çağrısı hâlâ bir dosyadadır. O çağrıyı silin; Pier'da new Gate(9) ile g.show();'i, Gate'te private int code'u tutun.
Çalıştırmayı bir kez adım adım izleyin. Java Pier.main'den başlar. new Gate(9) ifadesi bir gate kurar ve yapıcıda 9'u code'a koyar. g.show() çağrısı aynı nesne üzerindeki show'a girer. Gate içinde show, code'u okuyabilir ve 9 yazdırır. Pier alanı hiç adlandırmadı. Ekran 9 gösterir.
Pier içinde g.show(); yerine System.out.println(g.code); yazarsanız, code private iken javac erişim hatasıyla durur. Bu ret bu sayfanın noktasıdır. g.show();'i geri koyun.
static ve açık alanlarla karşılaştırma
Static sayfasında gizlenecek bir nesne alanı olmadan Tag.ping(); çağırıyordunuz. O hâlâ çalışır. Bu sayfa bir alanı gizler ve bir metot açar. Kalmış bir Tag.ping(); demosu başka bir derstir. Bu sayfa için Gate, Pier ve g.show(); tutun.
Daha önceki sayfalar çoğu zaman alanları private olmadan bırakıyordu, bu yüzden başka sınıftan j.fill derleniyordu. O daha gevşek biçim küçük demolarda hâlâ görünür. Bu ders bilerek private seçer ki sınırı göresiniz. System.out.println(g); ile yalnız g'yi yazdırmak temiz bir 9 göstermez. g.show(); çağırın veya sınıfın izin verdiği bir metot üzerinden yazdırın.
İki gate, iki code
Her new Gate(...) kendi private code'unu tutar. Gate a = new Gate(2); ve Gate b = new Gate(8); yazıp sonra a.show(); ve b.show(); çağırabilirsiniz.
public class Pier {
public static void main(String[] args) {
Gate a = new Gate(2);
Gate b = new Gate(8);
a.show();
b.show();
}
}
Yeniden derleyip çalıştırın: javac Gate.java Pier.java, sonra java Pier. Ekran bir satırda 2, sonraki satırda 8 göstermelidir. Her show çağrısı kendi nesnesinde çalıştı ve o nesnenin private alanını okudu. Gate b = a; yazmak ikinci bir nesne kurmaz — iki code istediğinizde iki new Gate(...) kullanın.
Her iki satır aynı sayıyı gösteriyorsa, her new'in farklı bir argüman geçirdiğini kontrol edin. javac Pier içinde code'dan şikâyet ederse hâlâ doğrudan bir g.code satırınız vardır — onu kaldırın ve show'u tutun.
packages için ne kalır
Bu sayfa her iki dosyayı varsayılan paket düzeniyle aynı klasörde tutar. Sonraki sayfa — packages — sınıfları package satırlarıyla adlandırılmış klasörlere koyar. Burada private ve show ile kalın. Bu sayfada tam bir public/protected tablosu uydurmayın; ders hedefi bir private alan ve onu hâlâ okuyabilen bir metottur.
Pier.java derlenirken javac Gate'i bulamazsa, Gate.java'nın aynı klasörde olduğunu ve sınıf satırının public class Gate olduğunu kontrol edin. Klasör hâlâ Tag.java veya Yard.java tutuyorsa, dokunmayın veya yalnızca derleme komutunu karıştırıyorlarsa silin. Bu dersten Gate ve Pier çiftini derledikten sonra java Pier çalıştırın.
packages'ten önce
private int code; bildirebilir, Gate(int n) { code = n; } ve void show() { System.out.println(code); } yazabilir, Pier'dan Gate g = new Gate(9); sonra g.show(); çalıştırabilirsiniz. Her iki dosyayı derleyin ve java Pier çalıştırın. Ekran 9 gösterir. Private alan Gate içinde kaldı. Aynı sınıfın metodu onu yazdırdı. Sonraki sayfa packages'tir; sınıfları adlandırılmış paket klasörlerine yerleştirirsiniz.
Alanda private'ı tutun. Yazdırma işini show içinde tutun, Pier'dan g.code olarak değil. main'i Pier'da tutun. Bu üç alışkanlık, ilerlemeden önce bu sayfanın kontrol noktasıdır. Ekran show üzerinden 9 gösterdiğinde, erişim sınırını bu dersin istediği gibi geçmişsinizdir.
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek