Gökalp Kuşçu

Mezun olduuuuu :)

PHP Nesneye dayalı programlama public deyimi

with 4 comments

PHP 4 çekirdeğinde bu işi tamamiyle var anahtar kelimesi ile yapılıyordu. Hatta coder kişiler kendi yazılımlarını kodlar iken var deyimi ile belirttikleri değişkenlerin üst kısımlarına comment belirterek bunların public mi ? private mi? yoksa protected mı ? olduğunu belirterek yazılım sürecinde kolaylık sağlıyorlardı. Fakat PHP 5 ile gelen yeniliklerle artık gizlilik anlamında yeni deyimler eklendi. Bunlardan bir tanesi de public deyimidir. Bu yazıda bu deyimden bahsedeceğim.

Public deyimi ile tüm sabit değişken ve metotlara, her ortamdan erişilebilmeye olanak sağlanır. Hatta güzel bir editör kullanıyorsanız bunların kullanıp, kullanılamayacağını daha kolay görebilirsiniz. :)

İşlemleri kod üstünden anlatacağım için kodları ilk olarak paylaşıyorum.

Tips:

Burada belirtmek isterim ki, bir class nasıl yazılır veya class içinde bir methot nasıl oluşturulur gibi kavramlar bahsetmeyeceğim, bu konuyu anlamak için tabi ki ilk olarak bunlara aşina olmanız gereklidir.


 < ?php

class oop {

   public $value;

   public function getName(){
       return $this->value;
   }

   public function setName($name){
       $this->value = $name;
   }

}

 #######################
  $object  =  new oop();
 #######################

   $object->setName("Gokalp Kuscu\n");

   $object->value = "Onur Aktas";

   echo $object->getName();

   //OUT : Onur Aktas

?>

Yukarıda public deyiminin nelere olanak sağladığını anlatmıştık. Şimdi burada gördüğünüz gibi iki adet metot, bir adet public değişken bulunmaktadır.

Biraz bu methotlardan bahsedelim :

public getName() : return ifadesinden de anlayacağınız üzere çalıştırıldığı an public değişken değerini size geri dönderiyor.

public setName($name): Burada metotu çalıştırmamız için ilk olarak ona bir parametre göndermeliyiz, gönderilen parametre public değişkene atanıyor.

Biz ne yaptık ?

Şuan biz object isminde bir class nesnesi oluşturduk ve bu nesne class içindeki metotları ve değişkenleri kullanmamızı sağlayan bir aracı oldu. Bu nesne için bellekte bir yer açıldı. Teorik olarak bahsetmeyeceğim için bu bellek organizasyonunu geçiyorum.

Bu nesne ile ilk olarak;

$object->setName(“Gokalp Kuscu\n”); ile class içindeki public değişkene “Gokalp Kuscu” ismini atadık. Daha sonra $object->value = “Onur Aktas”; ile public değişkene doğrudan bir değer atadık ve son olarak echo $object->getName(); ile atanmış değeri ekrana bastık.

Şimdi burada ki public deyimi yanlış kullanılmıştır neden ? ( Kod çalışmaktadır ama programlama mantığı açısından)

Tips:

Yazdığınız class içerisinde sabite değer atayan bir method var ise; bu değişkenin doğrudan dışarıdan kullanılması pek mantıklı değildir. İşte burada public $value; yerel ve her yerde kullanılan bir değişken olarak kullanmak yerine private tanımlanması mantıklıdır.

yazar:

a. gökalp kuşçu

Written by Gökalp Kuşçu

Şubat 6th, 2010 at 2:38 am

4 Responses to 'PHP Nesneye dayalı programlama public deyimi'

Subscribe to comments with RSS or TrackBack to 'PHP Nesneye dayalı programlama public deyimi'.

  1. Burada bahsedilen yapılan yapılar aslında .net mimarisine yakın yapılardır. Hatta object oriented destekleyen mimarilerin çoğu böyledir. Bu yüzden mantık bakımından anlaşıldığında diğer programlama dillerini öğrenmek basitleşir, sadece syntax yapısı ve dili kullanma kabiliyeti kullanımı sıkıntı yaratmaktadır.

    Gökalp Kuşçu

    6 Şub 10 at

  2. off tekrar edip etüt etmem gereken bir konu daha çıkardan başıma Gökalp. yazma yahu makale falan :)

    hc0de

    6 Şub 10 at

  3. hc0de, bunlar OO’nun olmazsa olmazlarıdır public private protected const abstract final gibi ozellikleri bilmezseniz OO yazdiğinizi zannedersiniz fakat yaptığınız sey sadece fonksiyon olusturmak olur.

    0xyGen

    12 Şub 10 at

  4. 0xyGen, yani? ne demek istedigini anlamadim k.bakma :) sitem ettim gökalp’e uzun zamandır bilgisayarla ilişkim yoktu okudukça hatırlamam gereken şeyler olduğu için sen ne anladın anlamadim ben :)

    hc0de

    1 Mar 10 at

bir yorum yaz:

object destination php etiket Endeavour uzay mekiği OS google Chrome öss Gary Serda Macgyver bilgi Lee David Zlotoff kpss LOREENA MCKENNITT - ALL SOULS NIGHT takım arkadaşı staj java.util java.awt.event php ile tag mave google operating system Macgyver 1982 php türkçe karakter maven goals pardus 2009 download google Java çin uygur devleti soykırımı php drop table uygur Türkleri öss 2009 array_combine() öss 2009 soruları LOREENA MCKENNITT - ALL SOULS NIGHT dinle projec men php veri tabanı bağlantısı php veri tabanı java oracle sorgu Shia LaBeouf grup CopyTo() sunucu update wamp No listening sockets uzay mekiği php interface metallica dinle tag me google dedicated server buffer overflow php parent dhcp çin soykırımı transformers metallica forrest gump 1994 saubm.com pardus 2009 metallica nothing else matters liderlik Mysql 6 oscar hlds buffer overflow java.lang repository LOREENA MCKENNITT - ALL SOULS NIGHT izle Gökalp Kuşçu oracle sorgu ttnet dhcp Transformers 2: Revenge Of The Fallen Kişisel Mevzu write to txt with c# google chrome OS soykırım ben pardus rc2 ttnet statik ip half life buffer overflow apache kpss 2009 statik ip jenny Richard Dean Anderson java.net No listening sockets shutting down for Apache Chrome OS buffer over flow apple gökalp site güncelleme javax.swing.event import oracle.jdbc.pool.OracleDataSource pardus download C# steve php quiz sonucu yazılım donanım grubu bilgisayar kulubü Türk osum Endeavour kpss sınavı Macgyver php class 8 megabit Liderliğin on emri b0f Macgyver info java oracle bağlantısı Cyberplatform kpss 2009 yorumu php tr converter Onur import java.sql.* transformers 2 string path java oracle connection string linux pardus half life dedicated server buffer overflow staj başladı ttnet 8 MB loreena mckenitt mysql drop table php mysql drop table steve Jops java.io forrest php object oriented programlama coding muhabbeti Java Enterprise forrest gump gökalp koca adam olmuş php ile tag sistemi yapımı java ve oracle java ile oracle sorgu çekme öss 2009 cevapları etiket yapımı gökalp kuşçu doğum günü open source university toyota staj php türkçe karakter Converter php ile veri tabanından veri çekme string content[] google OS PHP OOP hanks System.IO.File.WriteAllLines site update öss 2009 soruları ve cevapları pardus billions of pages in google oscar kibo Onur Aktaş php nesneye dayalı programla javafoc maven plugin nesneye dayalı php php 3 katmanlı mimari ttnet tarife loreena koder muhabbet Cyberplatform.org Cyberplatform.net kişisel proje php quiz OOP gump Java Staj yazılım grubu lider olma javadoc:aggregate saubm javadoc:javadoc proje dinle javax.swing iphone hüs metallica izle Items.CopyTo WriteAllLines() toyota hlds b0f javadoc PHP gökalp maven plugin Transformers 2: Yenilenlerin İntikamı etiket net limitsiz tarife nothing else matters string[] tom hanks web tag php nesne phpTürkçe karakter sorunu php ile etiket yapımı int arrayIndex web etiket php nesneye dayalı programlama hüseyin kara maven 2 java.text php mysql oracle