Public
Public kullanılan en yaygın tanımdır. Bir metod veya değişken public olarak tanımladığında o üyeye ilgili sınıfın her yerden erişebilirsiniz. Aynı zamanda sınıftan türeyen bir sınıf içerisinden de erişebilir.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| <?phpclass programci{ public $isim = 'Onur'; public function ismiOku() { echo $this->isim; }}$programci = new programci;echo $programci->isim; //değişkene de erişebiliyoruzecho '<br>';$programci->ismiOku(); //metoda da erişebiliyoruz?> |
Private
Private üyelere o sınıf dışından herhangi bir şekilde erişilemez ve bu üyeler kalıtım yoluyla aktarılmaz.. Private olarak tanımlanan değişken ve fonksiyonlar sadece o sınıfın kendi metotları tarafından kullanılabilir. Yani işin özü o metod veya değişken sadece o sınıfa özel olur.
Bir değişkeni private olarak tanımladığınızda ve bu değişkenin başka bir sınıf tarafından kullanılması gerektiğinde bu değişkeni döndüren bir public fonksiyon yazarak işlemi gerçekleştirebilirsiniz.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| <?phpclass programci{ private $isim = 'Onur'; //Bu değişkene direk $programci->isim diyerek ulaşamazsınız public function ismiOku() //$isim değişkenine erişmek için kullanılacağımız metod { echo $this->isim; }}$programci = new programci;$programci->ismiOku();?> |
Not: Private üyenin tanımlandığı sınıfa extend eden diğer alt sınıflar da private üyeye erişemez.
Protected
Protected aslında private e benzer. Protected özelliği atanan bir değişken veya metot, sadece sınıf içerisinden veya türetilen bir sınıf içerisinden erişilebilir.. Yani bir sınıf extend ettiği sınıfın protected üyelerine erişebilir ama private üyelerine erişemez.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| <?phpclass programci{ protected $isim = 'onur'; //private deki gibi direk erişilemez ancak türetilen sınıfta kullanılabilir. /* $isim değişkenine erişmek için kullanacağımız metod. $programci->isim şeklinde erişmek istersek "Cannot access protected property.." şeklinde hata verir. */ public function ismiOku() { echo $this->isim; }}$programci = new programci;$programci->ismiOku();class senior extends programci{ //$isim değişkenini tanımlamadı ama türettiğimiz sınıftan çekti. Private olsa o da gelmezdi.. public function ismiOku() { echo $this->isim; }}$programci2 = new senior;$programci2->ismiOku();?> |
Hiç yorum yok:
Yorum Gönder