Class ve Nesne Saçmalığı
19
●1.468
- 15-10-2008, 14:56:00bilmeden çok yanlış düşünüyor ve yorum yapıyorsun (:Alıntı
Eveet şimdi gelelim cevabımıza,
Nedir bu nesne saçmalığı ? (senin tabirinle
)
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:
<?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(); ?>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:
$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:
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. - 15-10-2008, 16:11:18Kimlik doğrulama veya yönetimden onay bekliyor.Bir örnekte Benden olsun

<?php /** * @author inferno (inferno__@live.fr) * @copyright 2008 vLkn */ class liste{ var $isim; var $numara; var $puan; var $yaz; function isim($n){ $this->isim = $n; } function numara($n){ $this->numara = $n; } function puan($n){ $this->puan = $n; } function yaz(){ $this->yaz = $this->isim."-".$this->numara."<br><i>Aldığı Puan:".$this->puan."</i><br>"; echo $this->yaz; } } echo "Sınav Sonuçları:<br>"; $ogr = new liste(); $ogr ->isim("Volkan"); $ogr ->numara("448"); $ogr ->puan("100"); $ogr ->yaz(); $ogre2 = new liste(); $ogre2 ->isim("Ogr2"); $ogre2 ->numara("487"); $ogre2 ->puan("92"); $ogre2 -> yaz(); //geç $ogre3 = new liste(); $ogre3 ->isim("Ogr3"); $ogre3 ->numara("617"); $ogre3 ->puan("93"); $ogre3 -> yaz(); ?> - 15-10-2008, 16:15:33Kullanmazsan Bişey Olmaz ama Kullanırsan Kolaylık Olur Zaten Yukrda Yazılmış.tolgay007 adlı üyeden alıntı: mesajı görüntüle
Alıntı
- 15-10-2008, 16:40:54Üyeliği durdurulduOOP kullanmadan da script yazılabilir tabii.Ben hiç OOP kullanmadım şimdiye kadar : )tolgay007 adlı üyeden alıntı: mesajı görüntüle
OOP un faydası nedir diye soracaksın.
joomla, wordpress, ecommerce gibi betikleri al kodlarına bak o zaman anlarsın.
neden OOP kullandıklarını : )
kod dosyası içersinde görüntü kirliliği yapan kodlar olmaz OOP'te,
istedğin zaman geliştirebilirsin,
başka biri de geliştirebilir,
eklenebilir,düzenlenebilir (vs)...
ilgili konuyu buradan bulabilirsin.
şimdi kalkıp bilmediğin kuyuya tükürme,