15 Şubat 2018 Perşembe

PUBLİC, PRİVATE, PROTECTED NEDİR?

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
<?php
class programci
{
    public $isim = 'Onur';
 
    public function ismiOku()
    {
        echo $this->isim;
    }
}
 
$programci = new programci;
echo $programci->isim; //değişkene de erişebiliyoruz
echo '<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
<?php
class 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
<?php
class 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

C++ Operatorlerin Aşırı Yüklenmesi

C++ Operatorlerin Aşırı Yüklenmesi (Operator Overloading) C++’ da +,-,*,!,++ gibi operatörler fonksiyonlar yazılarak bu operatörlere...