1. Nesneye Yönelik Programlama
Object Oriented Programming
EĞİTMEN
HAVAS MEDİA – Bilgi Teknolojileri
Takım Lideri : Ünal ÜN
unal.un@ph.com.tr – unal.un@havas.com.tr
2. Nesneye Yönelik Programlama Nedir ?
Açıklama :
Gerçek hayat da var olan problemlerin sınıflar vasıtasıyla
modellenmesi ve bu modellerin nesnelere dönüştürülerek
kullanılmasıdır.
Sınıf veNesnelerden oluşur.
Esnek, Genişletilebilir ve Tekrar kullanılabilir olduğu için kod
tekrarını önler. Geliştiriciye zaman ve performans kazandırır.
Ekip olarak çalışmaya uygun bir kod yapısı olmakla birlikte
yönetimi ve bakımı kolaydır.
Günümüzde popüler olan bir çok dil tarafından
kullanılmaktadır.(C#, Java, Php, Python)
?
3. Sınıf (Class) ve Nesne (Object) Kavramı ?
Kutu -Sınıfı
- İçerisinde alanlar ve methodlar barındırırlar.
- Yapıcı ve Yıkıcı Metotları vardır
- Erişim belirleyiciler ile istenilen düzeyde erişim sağlanabilir.
(Public,Private,Internal, Protected, Protected Internal)
- Sınıflar içerisinde tanımlanan değişkenlere field (alan) adı verilir.
Her bir alan nesnenin bir özelliğidir (property)
Kutu Nesnesi
- Nesnelerin belirgin bir özellikeri vardır.
- Sınıf üzerinden oluşturulmuş olan bir nesnenin Genişlik,
Yükseklik,Resim, Renk gibi değer özellikleri atanabilir.
4. People Sınıfı’nın Özellikleri
Burada bir insan sınıfı oluşturulmuş ve bu
sınıfın yapıcı,yıkıcı methodları ve aynı
zamanda: Id, Name, SurName,Age alanları
tanımlanmıştır.
(Yapıcı methodlar sınıf ile aynı ismi taşırlar ve
geriye dönüş tipi yoktur)
People sınıfı içerisinde yine aynı sınıfı
kullanan GeyById adında bir method
oluÅŸturulmuÅŸtur.
-Bir sınıfın tekrar kullanılabilirliği
5. People Sınıfından bir Nesne Oluşturulması
People sınıfından bir nesne oluşturulmuş ve
aynı zaman da bu nesne oluşturulurken
Constructor (Yapıcı) Method’unda bazı değer
atamaları yapılmıştır.
- New Anahtar sözcüğü ile oluşturulur
-Oluşturulmuş olan sınıftan birden çok farklı
isimlerle nesne oluÅŸturulabilir.
-OluÅŸturulmuÅŸ olan nesnenin eriÅŸilebilir
özelik veya method’larına ‘’.’’ tuşuna basılarak
görülebilir.
6. Method Nedir ve Özellikleri Nelerdir ?
-Değer döndüren veya döndürmeyen olmak üzere
ikiye ayrılılar.
-Bir method erişim belirteci, dönüş tipi, adı ve aldığı
parametreler yazılacak şekilde tanımlanır.
-Bir method oluÅŸturulurken geriye bir deÄŸer
döndürüyorsa dönüş tipi (int,string, bool vb) ve
döndürecek değeri de return ifadesiyle belirtilir. Eğer
ki method geri değer döndürmüyorsa erişim
belirtecinden sonra void olarak yazılır.
-Bir method oluşturulurken istenilen sayıda ve tip de
değer alabilir her bir parametre tip ve parametre adı
yazıldıktan sonra virgül ile ayrılarak yeni bir
parametre tanımlanır.Methodlar parametre almak
zorunda deÄŸildir
- Bir method oluşturulurken aynı isim de birden fazla
method tanılması yapılabilir overload(aşırı yükleme)
yapılabilir.
7. EriÅŸim Belirleyiciler (Access Modifiers) Nelerdir ?
- Class ve Method tanımlamalarında
kullanılır.
- Namespace de eriÅŸim belirteci yoktur.
- Class,Struct,Interface,Enum,Delegate
Varsayılan Olarak Internal erişim belirtecine
sahiptir
- Interface ve Enum erişim belirteçleri
uygulanmaz Sadece public olarak
tanımlanabilir
8. Encapsulation (Kapsülleme) Nedir ?
- Nesne tabanlı programlamanın temel
ilkelerinden bir tanesidir.
- Kapsülleme ile veriye dışarıdan direkt
eriÅŸimi engelleyebiliriz. (private)
- Başka kod veya sınıflar tarafından
doğrudan kullanılmaması için bariyer görevi
görür. Bu sayede nesneler bilinçsiz
kullanımdan korunabilir.
- Veri değeri atanırken (set) veya çağırılırken
(get) istediğimiz iş kurallarını uygulayabiliriz
9. Inheritance (Miras/Kalıtım) Nedir ?
Bir sınıf üzerindeki özelliklerin bir diğer sınıfa
aktarılmasına yarar.
- - Bir sınıftan miras alınırken gerekirse yapıcı
metotuna parameter göndererek sınıflar
arasında veri taşıyabiliriz.
- Temel sınıftaki özellikler istenen sayıdaki
sınıflara katılım yoluyla dağıtılabilir.
- Ortak özellikler tek yerde toplanarak kod
tekrarı yapılmasına engel olur.
10. Polymorphism (Çok Biçimlilik) Nedir ?
Ana sınıftan başka bir sınıf türetildiğinde,
türeyen sınıfın ana sınıf içindeki üyeleri
kendine göre farklı olarak uygulamasıdır
- Ana sınıf, kendi içindeki bir üyenin
(method, deÄŸiÅŸken, event vs.)-, kendinden
türeyen başka sınıflar tarafından
deÄŸiÅŸtirilebilmesini istiyorsa virtual anahtar
kelimesi ile tanımlanmalıdır
- Türeyen sınıf, gerektiğinde ana sınıf içindeki
üyeyi değiştirmek istiyorsa override olarak
yeniden tanımlayabilir.
11. Struct Nedir ?
- Sınıflara (class) benzer yapıda olup daha
basit ve daha performanslıdır
- - Ram üzerinde daha az yer kaplar.
- Miras/katılım almaz, struct ile çok biçimlilik
(Polymorphism) kullanılamaz
-Parametresiz yapıcı metot tanımlamazsınız.
- Sınıflardan eski bir geçmişe sahiptir, sınıflar
bu yapının üzerine geliştirilerek
kurulmuşlardır
-Int struct, String ise sınıftır.
12. Enum (Enumeration) Nedir ?
- Uygulama içerisinde sabit olan ve hiç
değişmeyen seçenekleri tanımlamak için
kullanılabilir,
- Geliştiriciye kod yazarken seçenekleri
görmesini ve sağlar.
- Tutarlılık sağlar.
13. Static (Statik) Nedir ?
- Ram üzerinde bir kez tanımlanır, herkes için
aynıdır.
- Türetme işlemi yapılmadan ulaşılan
elemanlardır.
- Bir kez tanımlandığı için ram üzerinde az yer
kaplar ve performanslıdır.
- Herkes için aynı olduğundan web tabanlı
yapılarda kullanıcı değerleri gibi verilerin
taşınması amaçlı kullanılamaz.
- Metotlarda parametreye this anahtar kelimesi
verilerek extension method oluÅŸturulabilir.
- Statik metotlara örnekler
Console.Write(),Console.ReadLine
14. Abstract (Soyut) Nedir ?
- Abstract Sınıf, ortak özellikli Sınıflara
Base(taban) Sınıf olma görevini üstlenir
- Standart kalıtım gibi bir diğer sınıfın
özelliklerini alırken aynı zamanda da sınıf
içerisinde oluşturulması gereken zorunlu
tanımlamaları (şablon) alır.
- Abstract sınıflar türetilemezler.
- Abstract method, sadece Abstract Class’ların
içerisinde tanımlanır ve Abstract Class’ı kalıtan
sınıf tarafından override edilmek zorundadır.
- Oluşturduğumuz Abstract Class içerisine,
Abstract Method yazılırken gövdesi yazılmaz ve
daha sonra Abstract Class’ımızı kalıtacağımız
sınıfta Abstract Method’u override ederiz
15. Interface (Arayüz/Şablon) Nedir ?
- Diğer sınıflara rehberlik eden bir sınıftır.
- İşi diğer sınıflara rehberlik etmek
olduğundan sadece metot şablonları
tanımlanır.
- Metot içerikleri Interface içerisinde yer
almaz.
- Bir interface istenilen sayıda sınıf ile
kullanılabilir.
- Interface kullanan sınıflar türetilirken
interface tipinde türetilebilir, bu sayede
esnek yapılar oluşturulabilir.
16. Sealed Class (Sınıf) Nedir ?
-Sealed anahtar sözcüğü bir sınıfa
uygulandığında diğer sınıfların kendisinden
kalıtım almasını önler.
Ama sealed sınıf diğer sınıflardan kalıtım
alabilir.
- Sealed kalıtımı engellediği için bir çeşit
güvenlik önlemi olarak düşünebiliriz.
- Basit sınıflar değiştirilmesini istemediğimiz
kütüphane gibi classlarda kullanılabilir.
17. Sealed Class (Sınıf) Nedir ?
-normal virtual ile iÅŸaretlenmiÅŸ bir method
override edilerek ezilebiliyor.
18. Sealed Class (Sınıf) Nedir ?
-Sealed ile işaretlenmiş method’u farklı bir
sınıf üzerinden kalıtım yoluyla içerisindeki
method override etmeye çalıştığımız da
ekran gördüğümüz gibi ilgili method
çağrılmamaktadır.