sınıflarda erişim belirleyicileri
sınıfları oluşturduğumuzda tek başlarına bir anlam ifade etmezler.
herhangi bir sınıfın içerisinde mutlaka metod yada özellikler olmaktadır. (sınıf ve metod tanımlamayı bilmiyorsanız önce buradaki yazıma göz atabilirsiniz.)
fonksiyonel programlamada herhangi bir fonksiyona erişmek istediğimizde fonksiyon adını ve gerekli parametreleri yazmak yeterli iken sınıf içindeki metodlara (yani fonksiyonlara) doğrudan erişim yoktur. Önce sınıftan bir nesne türetmemiz, sonra bu nesne üzerinden metoda ulaşmamız gerekir.
erişim belirleyicileri yazılımcıların sınıflar içindeki metod ve özelliklere erişme biçimini belirler. Yani bir metoda yada özelliğe kimin ulaşabileceğine, kimin ulaşamayacağına biz karar veriyoruz.
Şimdi bunu bir ev üzerinden düşünelim. Evin bahçesine herkes girebilir, salonuna sadece ev halkı ve misafirler girebilir, kasaya ise sadece ev sahibi ulaşabilir. Erişim belirleyicileri de sınıf içindeki her şey için bu kapıların kime açık olacağını belirler.
bu erişim belirleyicileri
olmak üzere 3 adettir.

kısaca özetleyecek olursak,
- public : sınıf içinden, sınıf dışından ve türetilen sınıflardan erişilebilir.
- private : sadece sınıf içinden erişilebilir.
- protected : sınıf içinden ve türetilen sınıflardan erişilebilir, sınıf dışından erişilemez.
Üçünü bir arada görmek için küçük bir örnek yapalım.
class Kase{
public $ad = "Mustafa"; // heryerden erişilir
protected $soyad = "YILMAZ"; // sınıf içi ve türetilen sınıflar
private $sifre = "12345"; // sadece sınıf içi
}
$ornek = new Kase();
echo $ornek->ad; // çalışır
// echo $ornek->soyad; // hata verir
// echo $ornek->sifre; // hata verir
Burada bir konuya daha değinelim. Sınıf içindeki özellikleri tanımlarken erişim belirleyicisini yazmak zorundayız. Metodlarda ise yazmazsak php bunu varsayılan olarak public kabul eder. Ama okunabilirlik açısından metodlarda da yazmanızı tavsiye ederim.
Her bir erişim belirleyicisini örnekleri ile ayrı ayrı yazılarda anlattım, yukarıdaki linklerden ilgili yazıya ulaşabilirsiniz. Türetilen sınıf kavramını bilmiyorsanız miras alma (extends) yazıma da göz atmanızı tavsiye ederim.
Henüz Yorum Yapılmamış. İlk Yorumu Siz Yapın!