arkadaşlar bundan 3 ay önce sanırım konu acmıstım r10.nete OOP hakkında Bilgi istemiştim pekde Faydalı Bilgiler Bulamamıştım O konuda belirtmiştim öğreneceğim bu işi diye ve öğrendiklerimi bu konu altında paylaşmak istedim
anlatımlarımdaki yalnışlarımı düzelten olursa sevinirim en azından daha net bilgiye varmış olurum olumlu olumsuz yorumlarada açığım

öncelikle nesnel programlamada öğrenilmesi gerekenlerin başında gelen şey sınıf tanımlama ve çağırmadır bu gibi anlatımları bazı arkadaşlar kendi bloglarında yayınlamış bu yüzden bende başladığım yerden aktarmaya devam ediyorum

Fırsat Buldukca ve Yeni Öğreneceğim Terimlerin Açıklamalı örnekli Olarak kod Bloglarını ekleyeceğim


Not: Konuyu Sabitlendiği için Sdemirkeser ustaya Tşk ederim
Yalnışlarımı Düzeltin Lütfen
arkadaşlar


Public: Foknsiyona sınıf içinden ve sınıf dışından erişime izin verir.Ayrıca Kalıtım ile aktarılır.
Private: Bu erişim belirteci işaretlenen öğeye sadece sınıfın içinden erişilebileceği anlamına gelir.Ve bu öğeler kalıtım yoluyla aktarılmaz..
Protected:Bu erişim belirteci işaratelenen ögeye sadece sınıfın içinden erişilebileceği fakat alt sınıflara aktarılabileceği anlamına gelmektedir.
Extends:Eğer sınıfımız başka bir sınıfın alt sınıfı olacaksa extends anahtar sözcüğü ile aktarılır.


1    //Public Örneği
2    class sinifim {
3     public function yazdir(){
4     echo "Merhaba Dünya";
5     }
6    }
7    //Örnek 1
8    /*$yeni_sinif = new sinifim();
9    $yeni_sinif->yazdir();*/
Gördüğünüz Gibi Fonksiyonumuza Dışarıdan Erişim Sağlayabiliyoruz...
şimdi private özelliğini kullanarak deneyelim


1    //Private Örneği
2    class sinifim {
3     private  function yazdir(){
4     echo "Merhaba Dünya";
5     }
6    }
7    //Örnek 2
8    /*$yeni_sinif = new sinifim();
9    $yeni_sinif->yazdir();*/
Fatal error: Cannot redeclare class sinifim in Böyle Bir Hata Aldık yani dışarıdan Erişim Yok

Şimdide Protected özelliğine gecelim



01    class sinifim {
02     protected   function yazdir(){
03     echo "Merhaba Dünya";
04     }
05    }
06    class alt_sinif extends sinifim {
07     public function alt_metod(){
08     $this->yazdir();
09     }
10    }
11     
12    //Örnek 3
13    /*$yeni_sinif = new alt_sinif();
14    $yeni_sinif ->alt_metod();*/
Burada Görüldüğü üzere Sadece Alt Sınıf ta kullanabiliyoruz ama gelen degeri ekrana basamıyoruz





Extends nedir
Extends bir sınıfı genişletme anlamına gelir yani 2 adet sınıfımız var ama 1 tanesine sonradan eklenti yapmak istiyoruz

kullanımı
class sinif_2 Extends sinif_1{


}
buradaki su anlama geliyor sinif_2 sinif_1'in alt sınıfıdır ne işimize yarıyor
baska bir sınıfta iken direk ana sınıftaki metodları ve özelikleri kullanbiliyoruz yeni özellikler eklemiş oluyorz
alt sınıfı cağırdıgımızda ana sınıfada aktarım yapabiliriz detaylı örnek


    class sinifim {
    var $deger;
    protected   function yazdir(){
     echo "Merhaba Dünya Ben Ana Sınıftan Geliyorum <br>";
     }
   }
   
   
   
   
   
   
   
    class alt_sinif extends sinifim {
    public function alt_metod()
    {
    $this->yazdir();
     }
     public function iceriden (){
         echo "Bende Alt Sınıftan Geliyorum";
     }
    }
                                      
  
    
    
//Örnek 4
$yeni_sinif = new alt_sinif();
//alt sınıfa bağlanarak üst sınıftaki methodu cağırdık
$yeni_sinif ->alt_metod();
//alt sınıfa bağlanarak içersindeki iceriden() methodunu cağırdık
$yeni_sinif->iceriden();


// Alt Sınıfı Çağırıyor ama üst sınıftaki özelliğe deger atıyoruz
$alt_siniftan_ana_sinifa_gonder = new alt_sinif();
$alt_siniftan_ana_sinifa_gonder->deger = "bakın burada ise alt sınıfı  çağırıyor ama üst sınıfın özelliğine atama yapıyoruz"
yani sınıfımızın herhangi bir sınıfa bağlı olacağını belirtir örnekteki gibi örnekte ne yaptık
sinifim isimli siniftan alt_sinifim isimli sınıfa yazdir() methodunu cektik
ve alt sınıfı çağırarak üst sınıftaki $deger özelliğine atama yaptık umarım anlaşılır olmuştur arkadaşlar
Kaynak







__________________________________________________ _____________





__construct
fonksiyonu arkadaşlar bir sınıf çağrıldıgında sınıftaki kod blogu işlemini yapmadan önce çalışmasını istediğimiz metod'dur
örnek eger kullanıcı ismi doğru ise işleme başlasın değil ise işlemi durdursun


01    <?
02    class sinifim {
03     var $kullanici;
04     var $sifre;
05     public function __construct($user,$pass){//sınıf cağrıldıgında ilk çalışacak metod metodun çağrılmasına gerek yoktur default olarak çalışacaktır
06     
07     $username = "bytrislasis"; // Kullanıcı Adımız
08     $password =  "123456";       // şifremiz
09     
10     if (($username == $user)and($password==$pass)) { // Gelen kullanıcı Adı ve Şifre Bizim Belirlediğimize Eşitmi diye bakıyoruz
11     
12     $this->kullanici = $user; // Kullanıcı adı Eşit ise gelen degeri kullanıcı özelliğimize atıyoruz
13     $this->sifre = $pass;     //  şifre adı Eşit ise gelen degeri sifre özelliğimize atıyoruz
14     
15     }else {// gelen degerler eşit değilse
16     echo "Kullanıcı Adınız veya Şifreniz Yalnış<br>";
17     exit;//Fonksiyonumuzu Burada Durduruyoruz
18     }
19     
20     }
21     public  function yazdir (){
22     echo "Kullanıcı Adınız :".$this->kullanici."<br>";
23     echo "Adınıza Ait Şifre:".$this->sifre."<br>";
24     }
25    }
26     
27    $yeni = new sinifim("bytrislasis","123456");
28    $yeni->yazdir();//degerlerimiz doğru ise bu metod çalışacak değilse belirlediğimiz hata blogu gelecektir..
29    ?>
Kaynak