+90 531 872 73 33
PPHP CLASS BİLEŞENLERİ (public, private, static)

PPHP CLASS BİLEŞENLERİ (public, private, static)

  • 3,719 Kez okundu
  • Php
  • 0 Yorum

Public Özelliği
Öncelikle public özelliğine değinelim. Public özelliği atanan bir değişken veya metot kullanıcı tarafından erişilebilir olmaktadır. Aynı zamanda sınıf içerisinden veya türeyen bir sınıf içersinden de erişebilir.

Hemen bir örnekle daha da pekiştirelim.

01
02 sınıf için
03 {
04     Kamu $ ISIM 'Yusuf' ;
05   
06     kamu fonksiyonu isimGetir ()
07     {
08         echo $ this -> isim;
09     }
10 }
11   
12 $ A new bir;
13 echo $ a -> isim;
14 echo '
;
15 $a->isimGetir();
16 ?>

Yukarıdaki örnekte hem bir değişkene public özelliğini hem de bir metoda public özelliğini atadık. Public ve diğer özellikler değişken veya metotdan önce başına yazılır örnektede görüldüğü gibi.

$a ve isimGetir() e public özelliği atandığı için sınıf başlatarak a classındaki bu değerlere erişme hakkına sahip olduk.

Protected Özelliği
Protected özelliği atanan bir değişken veya metot ise sadece sınıf içerisinden veya türetilen bir sınıf içerisinden erişim hakkına izin verir. Yani kullanıcı başlattığı sınıf içindeki protected tanımlı değişken veya metotlara asla erişemez.

Örnekle devam edelim.

01
02 sınıf için
03 {
04     korunan $ isim 'yusuf' ;
05   
06     kamu fonksiyonu isimGetir ()
07     {
08         echo $ this -> isim;
09     }
10 }
11   
12 $ A new bir;
13 echo $ a -> isim;
14 echo '
;
15 $a->isimGetir();
16 ?>

Yukarıdaki örneği çalıştırdığımızda ekrana “Cannot access protected property..” diye hata çıktısı verecektir. Bunun sebebi classı başlatıp ardından da protected özelliği atanmiş değişkeni çağırmak istememizden dolayıdır. Ancak echo $a->isim; satırını silersek ekrana bu sefer $isim içeriğini yazacaktır.
Neden hata vermiyor gibi bir düşünce gelebilir aklınıza ama ne demiştik protected veya private tanımlı bir değişken veya metot sadece sınıfın kendi içinden çağrılabilir dolayısıyla public tanımlanmış isimGetir() metodu sınıfın içinde olduğu için $isim değişkenine bu metot sayesinde erişmiş oluyoruz. Böylece classı kullanacakların classı olumsuz etkilemesinden korumuş oluyoruz.

Private Özelliği
Private özelliği de işleyiş olarak protected a benzese de aslında protected tek farkı türetilen bir classdan erişim hakkı yapamaz. Bu da demek oluyor ki private özelliği atanan değişken veya metot sadece o sınıf için özel olmuş oluyor. Hiç bir şekilde classı kullanmak isteyen ziyaretçi veya türeyen bir sınıf bu değişken veya metota erişim yapamaz.

Örnekle devam edelim

01
02 sınıf için
03 {
04     Özel $ isim 'yusuf' ;
05   
06     kamu fonksiyonu isimGetir ()
07     {
08         echo $ this -> isim;
09     }
10 }
11   
12 $ A new bir;
13 echo $ a -> isim;
14 echo '
;
15 $a->isimGetir();
16 ?>

Yukarıdaki örnekte bu sefer $isim değişkenine private özelliğini atadık. Sınıf başlatılıp ardından $isim değişkenini çağırdığımızda ekranda “Cannot access private property..” gibi bir hata ile karşılaşarız. Çünkü $isim değişkeni sadece o sınıf için özel bir değişken. Hiç bir şekilde dışarıdan ( kullanıcı tarafından ) veya türetilen sınıftan erişim sağlanamaz.

Böylelikle türetilen classların da buna etki edebilerek mevcut classın işleyişinin bozulması önlenmiş olur.

Static özelliği
Static özelliği atanmış bir değişken veya metot ramde saklanır. Böylece sürekli sürekli çağrılarak ramden çalmak yerine bir defaya mahsus rame atılarak performans kaybı önlenmiş olur. Static özelliğini herşeye atamakta doğru değildir. Zira projede kullanılacak sabit değişken veya metota atamak doğrudur. Çünkü bunlar hep aynı sonucu döndürecekleri için bir defaya rame aktarılması bize performans açısından büyük hız getirecektir.

Ayrıca static özelliği atanmış bir değişken veya metoda sınıf içerisinde $this yerine self:: ile erişim sağlanmaktadır.

Örnekle devam edelim.

01
02 sınıf için
03 {
04     Özel static $ isim 'yusuf' ;
05   
06     Kamu static fonksiyonu isimGetir ()
07     {
08         echo self :: $ isim ;
09     }
10 }
11   
12 a::isimGetir();
13 ?>

Bu örnekte de isimGetir metoduna hem public ( dışarıdan erişim yapma özelliği ) hem de static özelliği atanmıştır. Burda tek fark olarak normalde sınıfı başlatmamız gerekirdi ancak isimGetir metodu static olduğu için direk olarak erişim yapabiliriz. Buna değişkenlerde dahil.

Dışarıdan erişim yaparken sınıfadi::metot veya değişken şeklinde erişim yapabiliriz. a::isimGetir() diyerek a classının isimGetir() metoduna direk erişim yaptık ve static metodumuzu çağırdık böylece artık rame atıldı veya bundan sonraki her çağrılmasında artık bize ramden dönerek performans artışı sağlamış olacaktır.

Const Özelliği
Const özelliği atanan bir değer class içinde sabit özelliğini alır. Bu bizim normal kodlarımızdaki define() metodu ile aynıdır fakat sadece class içinde geçerlidir. Const özelliği atanmış bir sabite $this ile değil yine self:: ile erişim yapmaktayız dolayısıyla static özelliğini alırlar çünkü sınıf boyunca sakladıkları değer aynı kalacağından bir defaya mahsus ram de tutulurlar.

Ayrıca const özelliği atanan sabitin başında $ işareti bulanamaz. const sabit = ‘deger’; şeklinde tanımlanırlar.

Örnekle devam edelim.

01
02 sınıf için
03 {
04     const isim = 'yusuf' ;
05   
06     kamu fonksiyonu isimGetir ()
07     {
08         echo self :: isim;
09     }
10 }
11   
12   
13 $ A new bir;
14 echo a :: isim;
15 echo '
;
16 $a->isimGetir();
17 ?>

Bu örnekte de görüldüğü gibi isim sabiti static özelliği de olduğu için hem a::isim; şeklinde ulaşabildik hem de sınıf içinde bir metot sayesinde ulaşabildik.

Final Özelliği
Final özelliği atanmış bir metot veya sınıf son metot veya son sınıf olduğunu işaret eder yani kendisinden sonra herhangi bir başka metot veya sınıf gelemez anlamını taşımaktadır.

Örnekle devam edelim

01
02 sınıf için
03 {
04     Özel $ isim 'yusuf' ;
05     Kamu nihai fonksiyonu isimGetir ()
06     {
07         echo $ this -> isim;
08     }
09 }
10   
11 sınıf uzanır bir
12 {
13     Özel $ baska_isim 'o' ;
14   
15     kamu fonksiyonu isimGetir ()
16     {
17         echo $ this -> baska_isim;
18     }
19 }
20   
21 $ B new b;
22 $b->isimGetir();
23 ?>

Bu örnekte a classının en son metodunun isimGetir() olduğu tanımlanmıştır ve bu metotdan sonra herhangi bir metot gelemeyecektir. Yani a sınıfından türeyen bir class da hiç bir şekilde isimGetir() metodu bulunamaz çünkü isimGetir() a sınıfının final metodur ve override (yok sayılarak yeniden aynı metot yazılamaz. (tamam tercümem biraz düşük oldu ) edilemez.

Henüz kimse yorum eklememiş

YORUM YAPMAK İSTER MİSİN?

    En Çok Okunan Yazılar
    Etiket Bulutu
    fonksiyon global kullanımıfonksiyon nasıl yapılırfonksiyonreferansfonksiyon tanımlamafunction globalglobal ifadesiphp fonksiyonphp fonksiyon kullanımıphp fonksiyon örnekleriphp fonksiyonlarphp fonksiyonlar nedirphp fonksiyonlarıphp functionphp referansreturn ifadesivarsayılan parametrebreak ifadesido while döngüsüdöngü örnekleridöngüler nasıl kullanılırdöngülere örnekdöngüleri durdurumakfor döngüsüforeach döngüsüphp döngülerphp döngüleriphp for döngüsüphp foreach döngüsüphp loopphp while döngüsüphp while döngüsü örnekleriwhile döngüsüPHP ile ekrana yazı yazmaekrana yamaDeğişkenlerphp değişkenlerdeğişkenleri kontrol etmekdeğişkenlerphp değişkenlerle matematiksel işlemlerconstfinaloopprivateprotectedpublicstaticphp datephp mktimephp saatphp strftimephp strtotimephp tarihphp tarih farkıphp türkçe tarihphp türkiye saatiphp unix timestampunixtimephp tarih formatıphp mysql tarihmysql tarih formatıgelen kutusu mailphp gmail smtpphp mailphp mail dosya eklemephp mail dosya göndermephp mail göndermekphp smtp classphp smtp mailsmtp mailsmtp mail göndermespama düşmeden mail göndermephpveritabanısayfalamaphp ile veritabanındaki veriyi sayfalama mantığıgoogle sıralamaseoseo rehberigoogle başarıpagerankseo nedirseo puanıseo başarısısite içi seosite dışı seobacklinkbacklink almaanahtar kelimelerphpde fonksiyonlarfunctiongetdate()date()time()mktime()Zaman FonksiyonlarıStatik FonksiyonlarGlobal Fonksiyonlarcsscss3menüyatay menücss yatay menüyatay menü yapımıhtmlhtml5wordpresswordpress sayfa şablonuwordpress başlangıçgoogle map değişiklikgoogle adres değişiklikgoogle mapte adresimi değiştirmekgoogle haritalara firma eklemekgoogle haritalara yeni adres eklemekpr6pagerank6prli sitepagerank yüksek backlinkgoogleda ilk sayfaalexa düşürmepagerank yükseltmepr yükseltmeseo backlinkseo uyumlu makalepagerank7pr7ücretsiz pr7 backlinkücretsiz pagerank 7 backlinkprogramlama mantığıalgoritmaalgoritmaya girişprogram yazmayazılım öğrenwindows loadersiteye loader eklemeloader yapımıcss3 loaderjquery loadersiteye lütfen bekleyiniz yazısıIP adresiniz değiştirildicpanelcpanel hataIP adresiniz değiştirildi hatasıinnerinner joinveritabanı tablo birleştirmeinner join işlemleriveritabanı tabloları bağlamamysql inner-join