Nesne yönetimli programlama
bütün dünyayı nesneler ( objects ) ve nesneler arası ilişki olarak gören model kullanılarak yapılan programlama. Bu programlama tekniğine göre her nesne bir sınıfa ( class ) aittir ve bu classtan türetilir.
* Örneğin çomar bir köpektir (bu cümlede çomar nesnenin ismi, köpek ise sınıf ismidir)
Her sınıfın özellikleri ( attributes, properties) ve eylemleri (methods) bulunur.
* Örneğin, köpeklerin boyu, kilosu ve yaşı vardır. (bu cümlede köpek sınıfının (ve dolayısıyla bu sınıftan olan nesnelerin) boy, kilo ve yaş özellikleri oldugu belirtilmiştir)
* Örneğin, köpekler koşarlar, kemik yerler ve uyurlar. (Bu cümlede ise köpeklerin 3 ayrı methodu , koşmak, kemik yemek ve uyumak olarak verilmiştir.)
Sınıflar arası ilişkiler dünyanın modellenmesinde kullanılır. Örneğin personel takip sistemi yazılırken kullanılan bir nesne yönelimli modellemede, insan sınıfının boyu kilosu ve yaşı gibi özellikleri, sekreter, müdür ve mühendis gibi diğer sınıflarda da kullanılacaktır. Bu durumda inheritance (miras kalma) kullanılarak sınıflar arası bilgi geçişi yapılır.
* Örneğin, insanın boyu kilosu ve yaşı vardır. Müdür bir insandır. (bu cümleler ile anlatılan, müdürün insanın taşıdığı özellikleri taşıdığı, yani müdürün de boyunun kilosunun yaşının olduğudur)
En meşhur object oriented programming languages (Nesne yönelimli programlama dilleri ) JAVA, C++ ve PHP gibi dillerdir. Bu örneklerden pure object oriented (Saf nesne yönelimli programlama dili) JAVA dır ve JAVA bütün mantığını nesne yönelimli olarak inşa etmiştir
Sınıflar
Nesneye yönelimli programlamada sınıf, bir nesnenin tüm özelliklerini ve eylemlerini tanımlayan şablondur. Bir nesne oluşturulacağı zaman sınıfın verdiği bilgilere bakılır ve bu bilgiler doğrultusunda nesne oluşturulur. Sınıflar nesnelerin ilk oluşumu sırasında gerekli olan başlangıç durumlarını da belirtir.
Örneğin, bir araba üretmek istediniz. Bu arabaya ait bütün özellikler bir sınıfta toplanmalıdır. Nedir bu özellikler;
Vites türü
Modeli
Yakıt türü
Kasa tipi
Bu özelliklerin tümü sınıf içerisinde yer almalıdır. Bir sınıf oluşturulurken benzer amaca hizmet eden öğeler aynı sınıf içerisinde toplanmalıdır. Sınıf konusunu daha iyi anlamak için okul örneğini verebiliriz. Okul sınıflardan oluşur ve her sınıfta farklı öğrenme seviyelerinde öğrenciler bulunur. Tabii bu tanıma birleştirilmiş sınıfları katmamamız gerekir.
Sınıf Bildirimi Sınıf oluşturmak için class anahtar kelimesi kullanılır. Şimdi otomobil adında bir sınıf tanımlayalım ve bu otomobil sınıfının nasıl kullanıldığını aşama aşama öğrenelim. Bunun için öncelikle Otomobil.php adında bir sayfa oluşturalım ve aşağıdaki kodları yazalım
<PHP
Class otomobil
/sınıf üyleri
Otomobil adında bir sınıf oluşturduğumuza göre, bu sınıfta yer alacak elemanların hangi özelliklere sahip olacağını, hangi eylemlerde bulunabileceklerini belirleyebiliriz. Sınıfımıza nasıl eleman (veya nesne) ekliyoruz öğrenelim
Tanımlama Sınıf içerisinde tanımlanan nesnelere sınıf nesnesi diyoruz. Sınıf nesneleri değişken, sabit veya metot olabilir. Şimdi sırası ile hepsini öğreneceğiz. Yukarıda bir sınıf nasıl oluşturulur öğrenmiştik. Bu sınıfa nesne nasıl eklenir öğrenelim. Sınıf içerisinde değişken tanımlamak için var deyimini kullanıyoruz.
Biz de otomobil sınıfı içerisine yeni değişken ekledik. Artık Renk nesnesi Otomobil sınıfının bir elemanı oldu. Bir sınıfa birden fazla nesne ekleyebiliriz.
Birden Fazla Sınıf Nesnesi Tanımlama
Sınıf tanımını yaparken bir nesneyi tanımlayan şablondur demiştik. Şablonlar elbette ki birçok özelliği bir arada barındırır. Öyleyse sınıflar da birçok nesneyi barındırabilir. O zaman sınıfımızın elamanlarını artıralım.
Yukarıda sınıf içerisinde değişkenler, sabitler ve metotlar gibi nesnelerin eklenebildiğinden bahsetmiştik. Değişkenlerin nasıl oluşturulduğunu öğrendik. Şimdi bir de sabit ekleyelim
Sınıflara değişken ve sabit eklemek bu kadar kolay. Ancak tek başına hiçbir işe yaramazlar. Değişkenler ve sabitler ancak ve ancak bir metot ile kullanıldıklarında değer kazanırlar. Metotlar sınıfların temel taşıdır. Metotlar eylem gerçekleştiren nesnelerdir ve çok önemlidir. İlerleyen konumuzda metotlar nasıl oluşturulur ve kullanılır öğreneceğiz. Ancak şimdi bir sınıf oluşturduğumuza göre bu sınıftan nasıl yeni bir nesne oluşturabiliriz onu öğrenelim
Erişim berlirliyiciler
Public Erişim Belirleyicisi
Public erişim belirleyicisi ile işaretlenen elemanlar her yerden erişilebilir olurlar. Yani içinde bulunduğunuz namespaceden erişebilirsiniz ve oluşturduğunuz dlli kullanan her proje, dll içerisindeki public elemanlarınıza erişebilir.
Private Erişim Belirleyicisi
Private erişim belirleyicisi ile işaretlenen elemanlar sadece tanımlandıkları sınıf içerisinden erişilebilir durumdadırlar. Bu elemanlara sınıf dışarısından, nesne örnekleyerek ulaşmak mümkün değildir.
Protected Erişim Belirleyicisi
Protected erişim belirleyicisi ile işaretlenen elemanlar içinde bulundukları sınıftan ve bu sınıftan kalıtılan sınıflardan erişilebilir.
Internal Erişim Belirleyicisi
Internal erişim belirleyicisi ile işaretlenen elemanlar içinde bulundukları namespace içerisinden erişilebilir.
Protected Internal Erişim Belirleyicisi
Protected internal erişim belirleyicisi ile işaretlenen elemanlar, aynı namespacede olmasalar dahi kendi sınıflarından kalıtılan sınıflar tarafından erişilebilirler. Protected ve internal erişim belirleyicilerinin or işlemine tabi tutulması olarak düşünülebilir.
bütün dünyayı nesneler ( objects ) ve nesneler arası ilişki olarak gören model kullanılarak yapılan programlama. Bu programlama tekniğine göre her nesne bir sınıfa ( class ) aittir ve bu classtan türetilir.
* Örneğin çomar bir köpektir (bu cümlede çomar nesnenin ismi, köpek ise sınıf ismidir)
Her sınıfın özellikleri ( attributes, properties) ve eylemleri (methods) bulunur.
* Örneğin, köpeklerin boyu, kilosu ve yaşı vardır. (bu cümlede köpek sınıfının (ve dolayısıyla bu sınıftan olan nesnelerin) boy, kilo ve yaş özellikleri oldugu belirtilmiştir)
* Örneğin, köpekler koşarlar, kemik yerler ve uyurlar. (Bu cümlede ise köpeklerin 3 ayrı methodu , koşmak, kemik yemek ve uyumak olarak verilmiştir.)
Sınıflar arası ilişkiler dünyanın modellenmesinde kullanılır. Örneğin personel takip sistemi yazılırken kullanılan bir nesne yönelimli modellemede, insan sınıfının boyu kilosu ve yaşı gibi özellikleri, sekreter, müdür ve mühendis gibi diğer sınıflarda da kullanılacaktır. Bu durumda inheritance (miras kalma) kullanılarak sınıflar arası bilgi geçişi yapılır.
* Örneğin, insanın boyu kilosu ve yaşı vardır. Müdür bir insandır. (bu cümleler ile anlatılan, müdürün insanın taşıdığı özellikleri taşıdığı, yani müdürün de boyunun kilosunun yaşının olduğudur)
En meşhur object oriented programming languages (Nesne yönelimli programlama dilleri ) JAVA, C++ ve PHP gibi dillerdir. Bu örneklerden pure object oriented (Saf nesne yönelimli programlama dili) JAVA dır ve JAVA bütün mantığını nesne yönelimli olarak inşa etmiştir
Sınıflar
Nesneye yönelimli programlamada sınıf, bir nesnenin tüm özelliklerini ve eylemlerini tanımlayan şablondur. Bir nesne oluşturulacağı zaman sınıfın verdiği bilgilere bakılır ve bu bilgiler doğrultusunda nesne oluşturulur. Sınıflar nesnelerin ilk oluşumu sırasında gerekli olan başlangıç durumlarını da belirtir.
Örneğin, bir araba üretmek istediniz. Bu arabaya ait bütün özellikler bir sınıfta toplanmalıdır. Nedir bu özellikler;
Vites türü
Modeli
Yakıt türü
Kasa tipi
Bu özelliklerin tümü sınıf içerisinde yer almalıdır. Bir sınıf oluşturulurken benzer amaca hizmet eden öğeler aynı sınıf içerisinde toplanmalıdır. Sınıf konusunu daha iyi anlamak için okul örneğini verebiliriz. Okul sınıflardan oluşur ve her sınıfta farklı öğrenme seviyelerinde öğrenciler bulunur. Tabii bu tanıma birleştirilmiş sınıfları katmamamız gerekir.
Sınıf Bildirimi Sınıf oluşturmak için class anahtar kelimesi kullanılır. Şimdi otomobil adında bir sınıf tanımlayalım ve bu otomobil sınıfının nasıl kullanıldığını aşama aşama öğrenelim. Bunun için öncelikle Otomobil.php adında bir sayfa oluşturalım ve aşağıdaki kodları yazalım
<PHP
Class otomobil
/sınıf üyleri
Otomobil adında bir sınıf oluşturduğumuza göre, bu sınıfta yer alacak elemanların hangi özelliklere sahip olacağını, hangi eylemlerde bulunabileceklerini belirleyebiliriz. Sınıfımıza nasıl eleman (veya nesne) ekliyoruz öğrenelim
Tanımlama Sınıf içerisinde tanımlanan nesnelere sınıf nesnesi diyoruz. Sınıf nesneleri değişken, sabit veya metot olabilir. Şimdi sırası ile hepsini öğreneceğiz. Yukarıda bir sınıf nasıl oluşturulur öğrenmiştik. Bu sınıfa nesne nasıl eklenir öğrenelim. Sınıf içerisinde değişken tanımlamak için var deyimini kullanıyoruz.
Biz de otomobil sınıfı içerisine yeni değişken ekledik. Artık Renk nesnesi Otomobil sınıfının bir elemanı oldu. Bir sınıfa birden fazla nesne ekleyebiliriz.
Birden Fazla Sınıf Nesnesi Tanımlama
Sınıf tanımını yaparken bir nesneyi tanımlayan şablondur demiştik. Şablonlar elbette ki birçok özelliği bir arada barındırır. Öyleyse sınıflar da birçok nesneyi barındırabilir. O zaman sınıfımızın elamanlarını artıralım.
Yukarıda sınıf içerisinde değişkenler, sabitler ve metotlar gibi nesnelerin eklenebildiğinden bahsetmiştik. Değişkenlerin nasıl oluşturulduğunu öğrendik. Şimdi bir de sabit ekleyelim
Sınıflara değişken ve sabit eklemek bu kadar kolay. Ancak tek başına hiçbir işe yaramazlar. Değişkenler ve sabitler ancak ve ancak bir metot ile kullanıldıklarında değer kazanırlar. Metotlar sınıfların temel taşıdır. Metotlar eylem gerçekleştiren nesnelerdir ve çok önemlidir. İlerleyen konumuzda metotlar nasıl oluşturulur ve kullanılır öğreneceğiz. Ancak şimdi bir sınıf oluşturduğumuza göre bu sınıftan nasıl yeni bir nesne oluşturabiliriz onu öğrenelim
Erişim berlirliyiciler
Public Erişim Belirleyicisi
Public erişim belirleyicisi ile işaretlenen elemanlar her yerden erişilebilir olurlar. Yani içinde bulunduğunuz namespaceden erişebilirsiniz ve oluşturduğunuz dlli kullanan her proje, dll içerisindeki public elemanlarınıza erişebilir.
Private Erişim Belirleyicisi
Private erişim belirleyicisi ile işaretlenen elemanlar sadece tanımlandıkları sınıf içerisinden erişilebilir durumdadırlar. Bu elemanlara sınıf dışarısından, nesne örnekleyerek ulaşmak mümkün değildir.
Protected Erişim Belirleyicisi
Protected erişim belirleyicisi ile işaretlenen elemanlar içinde bulundukları sınıftan ve bu sınıftan kalıtılan sınıflardan erişilebilir.
Internal Erişim Belirleyicisi
Internal erişim belirleyicisi ile işaretlenen elemanlar içinde bulundukları namespace içerisinden erişilebilir.
Protected Internal Erişim Belirleyicisi
Protected internal erişim belirleyicisi ile işaretlenen elemanlar, aynı namespacede olmasalar dahi kendi sınıflarından kalıtılan sınıflar tarafından erişilebilirler. Protected ve internal erişim belirleyicilerinin or işlemine tabi tutulması olarak düşünülebilir.
