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