OOP – Erişim Belirleyiciler

Nesne yönelimli programlamada her sınıfın metotlarının ve özelliklerinin erişim belrleyicilere sahip olması gerekir. Erişim belirleyiciler, sınıfın üyelerine nereden erişileceğini belirler.

Nesne yönelimli progralamada temelde 3 erişim belirleyicisi vardır. Bunlar:

  • Public
  • Private
  • Protected
Public

Public ile sınıfın içerisinde tanımlanmış bir metot ya da özelliğe sınıfın içerisinden veya dışarısından erişim sağlanabilir. Aşağıda C# dili kullanılarak üyeleri public olarak belirlenmiş bir Person sınıfından prsn nesnesi oluşturulmuş ve oluşturulan nesnenin age özelliğine dışarıdan yeni bir değer atanmıştır. Sonrasında prsn nesnesinin write metodu çağrılmış ve ekrana nesnenin özellikerinin yazdırılmıştır.

using System;

public class Person 
{
    public string name = "Raymond";
    public int age = 50;
    
    public void write()
    {
        Console.WriteLine($"{name} - {age}");
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        Person prsn = new Person();
        prsn.age = 55;
        prsn.write();
    }
}

Output: Raymond – 55

Private

Private ile tanımlanmış sınıf üyelerine yalnızca sınıfın içerisinden erişilebilir. Sınıf dışarısından veya miras olarak aktarılan sınıftan erişilemez. Aşağıda C# dili kullanılarak üyeleri private olarak belirlenmiş bir Person sınıfından prsn nesnesi oluşturulmuş ve write metodu çağrılmaya çalışılmıştır. Fakat metot private olduğu için program hata verecektir.

using System;

public class Person 
{
    private string name = "Raymond";
    private int age = 50;
    
    private void write()
    {
        Console.WriteLine($"{name} - {age}");
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        Person prsn = new Person();
        prsn.write();
    }
}

Output: ERROR!

Protected

Protected olarak tanımlanmış sınıf üyelerine private’de olduğu gibi sınıfın içerisinden erişim sağlanıp sınıf dışarısından erişim sağlanamaz. Fakat private’den farklı olarak miras yoluyla aktarıldığı sınıftan erişim sağlanabilir. Aşağıda C# dili kullanılarak Person ve Bag sınıfları oluşturulmuş ve Person sınıfı Bag sınıfına miras olarak aktarılmıştır. Bag sınıfının write metodunda miras yoluyla Person’dan gelen protected özellikler ekrana yazdırılmıştır.

using System;

public class Person 
{
    protected  string name = "Raymond";
    protected  int age = 50;
}

public class Bag : Person
{
    public string color = "blue";
    
    public void write()
    {
        Console.WriteLine($"{name} - {age} - {color}");
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        Bag bag = new Bag();
        bag.write();
    }
}

Output: Raymond – 50 – blue

Yorum Yaz

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir