Yükleniyor...

Erişim

private int seal alanı, seal = n; atayan Lid(int n) yapıcısı ve seal döndüren public int Read() metodu olan bir Lid sınıfı yazın. Pine içinde Main'i tutun, Lid L = new Lid(9); ile bir lid oluşturun, sonra L.Read() yazın. Her iki türü aynı öğretim dosyasında tutun; böylece dotnet run sade kalır. dotnet run ile çalıştırın. Ekran tek satır göstermelidir: 9. Alan Lid içinde özel kalır. Public metot, Pine'ın sayıya ulaştığı yoldur. Başlangıç genel sınıf adını Pine tutun.

Üyeyi kim görür

Static sayfada sınıf adı üzerinden Cup.Mark() çağırdınız. Burada yeni sözcükler private ve public. private alan yalnızca kendi sınıfında görünür. Aynı dosyadaki diğer sınıflar — Pine dahil — seal özelken L.seal yazamaz. public metot yine Pine'dan çalışabilir ve gizli değeri döndürebilir.
Pine dosyasını açın. Başlangıç sınıf adı Pine kalır. Bu sayfa başlangıç adını değiştirmez. Main'de hâlâ yalnızca static demosu Cup.Mark(); varsa silin. Kalan her Cup sınıfını silin. Kalan her Jar kalıntısını silin. ReadLine satırını silin. Tuttuğunuz dosyada yazı beklenmez.
Pine süslü parantezlerinin dışında — hâlâ aynı dosyada — public class Lid yazın. Süslü parantez içinde private int seal; bildirin. Yapıcıyı yazın: Lid(int n) { seal = n; }. Sonra public int Read() { return seal; } yazın. Bu sayfada Lid içinde Main yoktur. Çalıştırmadan önce dosyayı kaydedin.
Alanın private olması gerekir ki Pine seal'e adıyla dokunamasın. Metodun public olması gerekir ki Pine Read çağırabilsin. Dönüş türü int'tir çünkü Read saklanan sayıyı çağırana verir. return seal; satırını metot gövdesinde tutun.

Lid with private seal

csharp
using System;

public class Lid
{
    private int seal;

    Lid(int n)
    {
        seal = n;
    }

    public int Read()
    {
        return seal;
    }
}

Pine bir lid oluşturur ve Read çağırır

Pine public static void Main() tutar. Main içinde sırayla iki satır yazın: Lid L = new Lid(9);, sonra Console.WriteLine(L.Read());. Yapıcı 9'u özel alana yazar. L.Read() çağrısı o değeri döndürür. Yazım onu gösterir. Bu sayfada Cup.Mark(); yazmazsınız; o static dersiydi.

Pine one Read

csharp
using System;

public class Pine
{
    public static void Main()
    {
        Lid L = new Lid(9);
        Console.WriteLine(L.Read());
    }
}

public class Lid
{
    private int seal;

    Lid(int n)
    {
        seal = n;
    }

    public int Read()
    {
        return seal;
    }
}

Tuttuğunuz dosyayı yukarıdan okuyun. using System; kısa adları hazırlar. public class Pine başlangıçtır. public static void Main() çalışma zamanının başladığı yerdir. new Lid(9) ifadesi bir lid kurar ve 9'u seal'e yazar. L.Read() çağrısı o nesnenin public metoduna girer. Gövde seal döndürür; 9 değeri Main'e gelir. Sonra Main bu dönüşü yazar ve ekran 9 gösterir.
dotnet run ile çalıştırın. Program tek satır yazar ve durur. Yazmanızı beklemez. dotnet run bekliyorsa dosyada ReadLine kalmıştır. O satırı silin; Pine'da new Lid(9) ve Console.WriteLine(L.Read());, Lid'de private int seal ve public int Read() kalsın. Ekran 9 gösterir. Ekran 2 ise Cup tally demosu hâlâ çalışıyor olabilir. Derleme L.seal'de düşerse özel alanı Main'den okumaya çalıştınız — L.Read()'e geçin.
Console.WriteLine(L.seal); yazarsanız ve seal private ise derleme reddeder. Bu red dersin kendisidir. Public kapıyı tutun: L.Read(). seal'i private olmadan bırakırsanız bu basit biçimde varsayılan erişim yine derlenebilir; bu sayfa bunu öğretmek istemez — alana bilerek private koyun.

Static Cup ve düz public alanlarla karşılaştırma

Static sayfada static çalışmasından sonra sınıf adıyla Cup.tally'e ulaşırdınız. Bu sayfa seal'i Pine'dan gizler ve yalnız Read'i açar. Kalan Cup.Mark(); Cup.Mark(); Console.WriteLine(Cup.tally); başka bir ders. Bu sayfa için Lid, Pine ve L.Read() tutun.
Her alanı public yapıp Main'den L.seal yazabilirdiniz. Bu ders private seçer: nesne depoyu sahiplensin, Pine metotla sorsun. Yalnız Console.WriteLine(L); temiz bir 9 göstermez. Dönen sayı için Console.WriteLine(L.Read()); yazın.

Ayrı özel seal'leri olan iki lid

Her new Lid(...) kendi özel seal'ini alır. Lid a = new Lid(3); ve Lid b = new Lid(8); yazıp a.Read() ile b.Read() yazabilirsiniz. private anahtar sözcüğü nesneler arasında tek seal paylaşmaz. Yalnız diğer sınıfların alana adıyla erişmesini engeller.

Pine two Lids

csharp
using System;

public class Pine
{
    public static void Main()
    {
        Lid a = new Lid(3);
        Lid b = new Lid(8);
        Console.WriteLine(a.Read());
        Console.WriteLine(b.Read());
    }
}

public class Lid
{
    private int seal;

    Lid(int n)
    {
        seal = n;
    }

    public int Read()
    {
        return seal;
    }
}

Yeniden dotnet run ile çalıştırın. Ekran bir satırda 3, sonraki satırda 8 göstermelidir. Her Read o nesnenin özel alanını döndürdü. İki satır aynıysa farklı argümanlarla iki new Lid(...) kullandığınızı kontrol edin. Ekran hâlâ tek 9 ise tek lid demosundasınız — ilk kontrol noktası için yeterli; ikinci kontrol için iki lid dosyasını kullanın.
Derleme Read için şikâyet ederse metot başlığında public ve int olduğunu doğrulayın. Main hâlâ Cup.Mark() çağırıyorsa static kalıntıyı silin ki erişim dersi tally yerine lid sayıları göstersin.

Bu sayfa namespaces için ne bırakır

Bu sayfa private ve public kullanır; bir sınıf alanı gizleyip yine de metotla değer paylaşır. Sonraki sayfa — namespaces — türleri bir ad altında gruplar; büyük programlar düzenli kalır. Burada erişimde kalın. Bu sayfada namespace sarmalayıcı uydurmayın; ders hedefi alanda private, Read'de public.
Lid'i Pine süslü parantezlerinin içine gömmeyin. Bu sayfada iki sınıf dosyada kardeş olarak durur. Derleme Pine sırasında Lid bulamazsa public class Lid'in aynı dosyada olduğunu kontrol edin. Ekran 0 ise yapıcı yazmamış olabilir — Lid(int n) { seal = n; } kalsın, new sonrası Read çağırın.

private int seal; bildirebilir, Lid(int n) { seal = n; } ve public int Read() { return seal; } yazabilir, Pine.Main içinden Lid L = new Lid(9); çalıştırıp L.Read() yazabilirsiniz. dotnet run ile çalıştırın. Ekran 9 gösterir. Özel alan Lid içinde kaldı. Public metot sayıyı Pine'a verdi. private'ı kapalı çekmece, Read'i izinli bakış yolu gibi düşünün. Pine, dotnet run ile açtığınız kapıdır. Sonraki sayfa namespaces; türler grup adı altında durur, büyük dosyalar net kalır.
Alanda private tutun. Read'de public tutun. Çağrıyı L.Read() tutun, L.seal değil. Bu üç alışkanlık, ilerlemeden önce bu sayfanın kontrol noktasıdır. Main'den Cup.Mark() kalıntılarını çıkarın ki ekran yanlışlıkla tally göstermesin.

🧠 Bilginizi Test Edin

Başlamaya Hazır

Bilginizi Test Edin

Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör

❓
6
Sorular
🎯
70%
Geçmek İçin
♾️
∞
Süre
🔄
∞
Deneme

📝 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