Menu
Coddy logo textTech

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 BelirleyiciAynı SınıfAynı PaketAlt SınıfHer Yer
privateEvetHayırHayırHayır
varsayılan (anahtar kelime yok)EvetEvetHayırHayır
protectedEvetEvetEvetHayır
publicEvetEvetEvetEvet
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.

challenge icon

Görev

Kolay

Farklı 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:
    • private alanı: 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
    • protected alanı: name (String) - aynı pakette ve alt sınıflarda erişilebilir
    • public alanı: school (String) - her yerden erişilebilir
    Dört alanın tümünü ayarlayan bir kurucu ve "[studentId] name - Grade grade at school" biçiminde bir dize döndüren getInfo() adlı public bir 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. Önce school alanını doğrudan yazdır, ardından öğrencinin tüm bilgilerini göstermek için getInfo() 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
        
    }
}
quiz iconKendini test et

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

Kendi başına pratik yap: Online Java derleyicisi