logo


Welcome Guest! To enable all features please Giriş or Kayıt.

Bildirim

Icon
Error

Ayarlar
Son mesaja git Go to first unread
kodcu  
#1 Gönderildi : 13 Aralık 2016 Salı 10:15:13(UTC)
kodcu

Sıralama: Advanced Member

Gruplar: Registered
Katılan: 12.12.2016(UTC)
Mesajlar: 37
Turkey

Nesneler

Nesne yönelimli (Object-oriented) programlama icad edildiğinde, geleneksel
programlamaya aşina olanlar önce tereddüt ettiler; sonra bunun ne harika bir teknik
olduğnunu gördüler ve nesnelerden vazgeçmez oldular. Kabaca tanımlarsak, nesne, kendi
değişkenleri ve icra edeceği komutlardan oluşan fonksiyonları ile bir bütündür. Nesneyi bir
kere tanımladıktan sonra istediğimiz kadar örneğini oluşturabiliriz. Bir nesnenin yapacağı
işten, o nesnenin metodu diye söz ederiz. Bu açıdan bakarsanız, programlarımızda
nesneler sadece metodları için işe yararlar.

Diyelim ki programımızda bir "öğrenci" nesnesi oluşturmak istiyoruz. Bu nesnenin
içinde adı, soyadı ve notlar gibi değişkenler, ve bu değişkenlerle yapılan bir takım işler
bulunsun. İşe nesnenin tabir yerinde ise şablonu olan class'ı oluşturmakla başlayalım;
gerisini de yaptıkça görelim.
Bir Nesne Oluşturalım
Bir nesne oluşturmak için önce onu tanımlamamız gerekir. Bunu PHP'nin class
deyimini kullanarak yapabiliriz. Bir nesnenin özellikleri (properties) ve metodları (methods)
vardır. Şu kodu nesneler01.php adıyla kaydedin:

Kod:

<HTML> 
 <HEAD> 
  <TITLE>PHP'de Degiskenler</TITLE> 
  <meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"> 
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> 
 </HEAD> 
 <BODY> 
  <B> <H2> 
   <?php 
    class ogrenci { 
     // özellikleri tanımlayalım  
     var $adi;  
     var $soyadi;  
     var $sinav1;  
     var $sinav2;  
     var $not; 
     // metodları tanımlayalım 
     function adi_belirle ($n) {  
      $this->adi = $n;  
     } function soyadi_belirle ($n) {  
      $this->soyadi = $n;  
     } function sinav1_belirle ($n) {  
      $this->sinav1 = $n; 
     } function sinav2_belirle ($n) {  
      $this->sinav2 = $n;  
     } function not_hesapla() {  
      $this->not = ($this->sinav1 + $this->sinav2)/2; 
      print ($this->adi. " " . $this->soyadi . " için not ortalaması: ". $this->not);  
     } 
    } //Buraya başka kodlar girecek 
    $ogr1 =  new ogrenci(); 
    $ogr1 -> adi_belirle("Şahika");  
    $ogr1 -> soyadi_belirle("Tabak");  
    $ogr1 -> sinav1_belirle(7);  
    $ogr1 -> sinav2_belirle(10);  
    $ogr1 -> not_hesapla();  
  ?> 
 </H2> </B> 
</BODY> 
</HTML> 


Bu programda ogrenci adlı bir nesne tanımlıyoruz; ve daha sonra bir değişken
adına new komutu ile bu nesnenin bir örneğini oluşturuyoruz. Nesnelerin yeni bir örneği
veya kopyasını çıkartmak ifadeleri aslında yaptığımızı tam anlatmıyor. Nesnenin tanımı bir
adet; her new komutu ile bu nesnenin özelliklerine ve metodlarına sahip yeni bir nesne
yapmış oluyoruz. Nitekim bu işe insanın dilini dolayan İngilizce bir kelimeyle Instantiation
(yeni bir varlığını oluşturma) deniyor. Bu örnekte, $ogr1 adlı değişken gerçekte, ogrenci
nesnesinin tam bir örneği: içinde beş değişken ve altı metod var. Nesneyi bir kere
tanımladıktan sonra programın daha ileri aşamalarında bu istediğimiz kadar örneğini farklı
isimler vererek oluşturabiliriz. Şimdi şu satıra dikkat edelim:

Kod:

$ogr1 =  new ogrenci(); 
$ogr1 -> adi_belirle("Şahika");


Burada $ogr1'in parametrelerine nasıl değer yazdırdığımızı görüyorsunuz. Nesnenin
metodlarından biri olan adi_belirle fonksiyonuna bir değer veriyoruz: "Şahika"; nesne
oluşturulurken yazılmış olan bu fonksiyon ise aldığı değeri, kendi ait olduğu nesnenin bir
değişkenine kaydediyor:

Kod:

function adi_belirle ($n) {  
$this->adi = $n;  
} 


Bu ve diğer fonksiyonlarda kullandığımız "$this->" ifadesi, kendisine ulaştırılan
değeri bir parametre olarak kullanıyor ve "$adi" değişkenine yazıyor. "this" (bu) kelimesi o
anda nesnenin o anda oluşturulmakta olan örneğine göndermede bulunur. "->" işlemcisini
kullanarak, istediğimiz nesnenin istediğimiz metoduna veya parametresine değer
gönderebiliriz. Bir nesnenin yeni bir örneğini oluşturduğumuz zaman, bu örneğin bütün
parametrelerini sağlamak veya bütün metodlarını kullanmak zorunda değiliz.
Yukarıdaki örneğe göre yeni örnekler oluşturarak en az dört öğrencinin not
ortalamasını hesabedebilir misiniz?
PHP ile Web programcılığı yolunda hızlı adımlarla yol alıyoruz. Bu bölümde
gördüğümüz dizi değişkenler ve nesneler, Web sayfalarımızda bir çok işi adeta otomatik
hale getirecek unsurlar olarak kullanılacak.



Bu konudaki kullanıcılar
Guest
Forumu Atla  
Bu foruma yeni konular postalayamazsınız.
Bu forumda ki konulara yeni posta gönderemezsiniz.
Bu forumdaki postalarınızı silemezsiniz.
Bu forumdaki postalarınızı düzenleyemezsiniz.
Bu forumda anketler yaratamazsınız.
Bu forumdaki anketlere oy veremezsiniz.