Erişim Seviyelerine Genel Bakış
Coddy'nin Java Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 10 / 87.
Erişim belirleyicileri, alanlara ve metotlara nereden erişilebileceğini kontrol eder. Java'nın dört erişim kontrol seviyesi vardır.
| Erişim Belirleyici | Aynı Sınıf | Aynı Paket | Alt Sınıf | Her Yer |
|---|---|---|---|---|
private | Evet | Hayır | Hayır | Hayır |
| varsayılan (anahtar kelime yok) | Evet | Evet | Hayır | Hayır |
protected | Evet | Evet | Evet | Hayır |
public | Evet | Evet | Evet | Evet |
public class BankAccount {
private double balance; // Sadece bu sınıf
String accountType; // Varsayılan: sadece aynı paket
protected String owner; // Aynı paket + alt sınıflar
public String bankName; // Her yerden erişilebilir
}private en kısıtlayıcı olanıdır - bunu asla doğrudan erişilmemesi gereken dahili veriler için kullanın. public en açık olanıdır - bunu diğer sınıfların çağırması gereken metotlar için kullanın.
Herhangi bir belirleyici belirtmediğinizde, Java default (paket-özel olarak da adlandırılır) erişimi kullanır. Bu, yalnızca aynı paket içinden erişime izin verir.
class Helper { // Varsayılan erişim sınıfı
void assist() { } // Varsayılan erişim metodu
}Kodunuzun çalışmasına izin veren en kısıtlayıcı erişim düzeyini seçin. Bu, verilerinizi korur ve kodunuzun bakımını kolaylaştırır.
Görev
KolayFarklı dosyalar arasında erişim belirleyicilerinin görünürlüğü nasıl denetlediğini gösteren bir Student kayıt sistemi oluşturalım.
Kodunu düzenlemek için iki dosya oluşturacaksın:
Student.java: Farklı erişim düzeylerini kullanan alanlara sahip bir Student sınıfı tanımla:privatealanı:studentId(String) - yalnızca Student sınıfı içinde erişilebilir- varsayılan (belirleyici yok) alan:
grade(int) - aynı paket içinde erişilebilir protectedalanı:name(String) - aynı pakette ve alt sınıflarda erişilebilirpublicalanı:school(String) - her yerden erişilebilir
"[studentId] name - Grade grade at school"biçiminde bir dize döndürengetInfo()adlıpublicbir yöntem ekle.Main.java: Bir Student nesnesi oluştur ve sınıfın dışından hangi alanlara doğrudan erişilebildiğini göster. Önceschoolalanını doğrudan yazdır, ardından öğrencinin tüm bilgilerini göstermek içingetInfo()sonucunu yazdır.
Dört girdi alacaksın: studentId, name, grade ve school (bu sırayla).
Çıktın iki satırdan oluşmalıdır: doğrudan erişilen okul adı ve ardından getInfo() yönteminden alınan öğrencinin tüm bilgileri.
Kendin dene
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Girdileri oku
String studentId = scanner.nextLine();
String name = scanner.nextLine();
int grade = Integer.parseInt(scanner.nextLine());
String school = scanner.nextLine();
// TODO: Giriş değerleriyle bir Student nesnesi oluşturun
// TODO: school alanını doğrudan yazdırın (public olduğu için erişilebilir)
// TODO: Tüm öğrenci bilgilerini göstermek için getInfo() sonucunu yazdırın
}
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Nesne Yönelimli Programlama bölümündeki tüm dersler
1OOP Temelleri
Harici DosyalarOOP'ye GirişSınıflar ve Nesnelerthis Anahtar KelimesiMetotlarAlanlar (Öznitelikler)Yapıcı MetotYapıcı Metot Aşırı YüklemeÖzet - Basit Hesap Makinesi4Kalıtım
Temel Kalıtım (extends)super Anahtar KelimesiMetot Geçersiz Kılma (@Override)Yapıcı Metot ZincirlemeObject SınıfıTekli ve Çok Seviyeli KalıtımNeden Çoklu Sınıf Kalıtımı Yok?Özet - Çalışan Hiyerarşisi7Özel Metotlar ve Object Sınıfı
toString() Metoduequals() ve hashCode()clone() MetoducompareTo() ve ComparableComparator ArayüzüÖzet - Özel Sıralama2Erişim Belirleyiciler ve Kapsülleme
Erişim Seviyelerine Genel BakışGetter ve Setter MetotlarıBilgi Gizlemefinal Anahtar KelimesiÖzet - Banka Hesabı Yöneticisi5Polimorfizm
Metot Aşırı Yükleme TemelleriMetot Geçersiz Kılma (Çalışma Zamanı)Upcasting ve Downcastinginstanceof OperatörüSoyut Sınıflar ve MetotlarÖzet - Şekil Hesaplayıcı8İleri Düzey OOP Kavramları
Kompozisyon vs KalıtımAgregasyon vs KompozisyonDahili, Yuvalanmış ve Anonim SınıflarEnum'lar ve Enum MetotlarıRecords (Java 16+)Sealed Classes (Java 17+)11Tasarım Kalıpları Bölüm 1
Tasarım Kalıplarına GirişSingleton KalıbıFactory KalıbıBuilder KalıbıObserver KalıbıStrategy Kalıbı14Final Meydan Okumaları
E-Öğrenme PlatformuBankacılık SistemiOyun Karakteri GeliştirmeAraç Kiralama Servisi3Sınıf Özellikleri ve Statik Üyeler
Instance ve Statik DeğişkenlerStatik MetotlarStatik BloklarSabitler (static final)Özet - Sayaç ve Utility6Arayüzler ve Soyut Sınıflar
Arayüzlere GirişArayüzleri UygulamaÇoklu Arayüz UygulamaArayüzlerde Default ve StaticSoyut Sınıflar ve ArayüzlerFonksiyonel ArayüzlerÖzet - Ödeme Sistemi9Generics
Generics'e GirişGeneric SınıflarGeneric MetotlarSınırlandırılmış Tip ParametreleriWildcard'lar (?, extends, super)Özet - Generic Container12Tasarım Kalıpları Bölüm 2
Komut KalıbıAdaptör KalıbıDekoratör KalıbıŞablon Metot KalıbıDurum KalıbıKompozit KalıbıYineleyici KalıbıKendi başına pratik yap: Online Java derleyicisi