public erişim belirleyici (açık)

Daha önce sınıflarda erişim belirleyicileri yazımda erişim belirleyicilerinin 3 tane olduğunu söylemiştik. Bu yazımda bunlardan ilki ve en çok kullanılanı olan public erişim belirleyicisini anlatacağım.

public erişim belirleyicisi ( sınıf içinden, sınıf dışından, türetilen sınıflardan erişilebilir.)

yani public olarak tanımladığımız bir metod yada özelliğe heryerden ulaşabiliriz. Adı üstünde açık, kapısı herkese açık bir oda gibi düşünebilirsiniz.

Burada bir konuya daha değinelim. Sınıf içinde tanımladığımız değişkenlere özellik deniyor ve özellik tanımlarken görünürlüğü yani public, private yada protected yazmak zorundayız. Metodlarda ise yazmazsak php bunu varsayılan olarak public kabul eder.

örnek::

class Kase{ // Kaşe sınıfı

// normal programlama yönteminde (sınıf kullanmadan ) tanımlanan değişken sinif içerisinde kullanılmak üzere tanımlandığında özellik adını alır.
// $isim = ""; // bu satır hata üretir.
// özellik tanımlarında görünürlük (public, vs..) mutlaka belirtilmelidir.

public $isim = "Mustafa YILMAZ"; // Kase sınıfına ait $isim özelliği ( public görünürlüğüne sahip)


function yaz(){ // metodlara görünürlük belirtilmez ise varsayılan olarak public dir.

// sınıf içerisindeki bir özelliğe (değişken ) erişmek için this anahtar sözcüğü kullanılır.

echo $this->isim ."<br>";

}

}

$ornek = new Kase(); // Kase sınıfından bir örnek alıyoruz ve $ornek değişkenine atıyoruz.
$ornek->yaz(); // Kase sınıfı içerisindeki yaz() metodu çalıştırıyoruz.

$ornek->isim = "Ercan ile Barış"; // Kase sınıfı içendeki $isim özelliğine değer ataması yapıyoruz.
$ornek->yaz();

kodların açıklamasını yapacak olursak,

ilk olarak Kase isminde bir sınıf oluşturduk ve içine public olan $isim özelliğini ve yaz() metodunu ekledik.

yaz() metodu içinde $this->isim yazdık. $this sınıfın kendisini ifade eder, yani "bu sınıfın içindeki isim özelliği" demiş oluyoruz.

daha sonra sınıftan bir nesne türetip yaz() metodunu çalıştırdık ve ekrana Mustafa YILMAZ yazdı.

asıl önemli kısım burası; $isim özelliği public olduğu için sınıf dışından $ornek->isim diyerek değerini değiştirebildik. yaz() metodunu tekrar çalıştırdığımızda ekrana bu sefer Ercan ile Barış yazdı.

// çıktısı
// Mustafa YILMAZ
// Ercan ile Barış

Gördüğünüz gibi public kullanımı çok kolay ama her şeyi public yapmak da doğru değil. Çünkü dışarıdan değiştirilmesini istemediğimiz bir değer olabilir. İşte bu gibi durumlar için private ve protected erişim belirleyicilerini kullanıyoruz.