Merhaba, ben Sena. SistersLab’in Toplum Gönüllüleri Vakfı (https://www.tog.org.tr/en/) tarafından desteklenen Women in Tech Academy proje katılımcılarından biriyim. Proje, 20–28 yaş aralığında beyanı kadın olan bireyleri 3 ay boyunca yazılım eğitimi ve destekleyici eğitimlerle güçlendirerek sektörde iş gücüne katılımını artırmayı hedefliyor. Projeyle ilgili detaylı bilgiye bu bağlantıdan ulaşabilirsiniz: https://sisterslab.co/women-in-tech-academy/
Bu yazımda sizlere Python programlama dilinde Nesne Tabanlı Programlamayı(Object Oriented Programming) açıklayacağım. Gerçek hayattaki bir işlemi yapmak için genelde Nesne tabanlı proglamlamayı kullanırız.

Nesne tabanlı programlama kapsamındaki kullandığımız terimler
- class (sınıf)
- object (nesne)
- attributes (özellik)
- metod
kavramlarıdır.
Bir class tanımlamasını aşagıdaki şekilde yaparız.
- class sinif_adi(): body
- class sinif_adi: body
Default değerler ile class oluşturma :
init() fonksiyonu
Class’tan bir metod üreteceksek __init__’i kullanırız. Bir sınıfta aynı işlemleri fazlaca yazmaktan kurtarır. İlk ögesi self’tir.
- Encapsulation(Kapsülleme)
- Inheritance(Miras)
- Polymorphism
- Abstract Class
- Overriding
Encapsulation(Kapsülleme)
Kapsülleme, class içindeki bilgileri diğer sınıflar içinden yetkisiz erişimden korunması işlemidir. Bir classtaki özellikleri private olarak belirleyerek istemediğiniz kişilerden koruyabilirsiniz. Private olması için iki alt çizi yaparız.
Inheritance(Miras)
Inheritance (kalıtım), bir nesnenin özelliklerinin farklı nesneler tarafından da kullanılabilmesine olanak sağlar. Class bir başka sınıf tarafından miras alınabilir. Bu işlem yapıldığı zaman temel alınan sınıfın tüm özellikleri yeni class’a aktarılır.
Abstract Class(Soyut Sınıflar)
Python bizlere abstract classları sunmaz ama ABC modülü sayesinde (Abstract Base Classes) abstract classlar tanımlayabiliriz.
Overriding(Üzerine Yazma)
Polymorphism (Çok Biçimlilik)
Polimorfizm, alt sınıfların ata sınıflardaki metotları geçersiz kılması(method overriding) sayesinde çok biçimli olarak davranmasına denir. Bu sayede alt sınıf ata sınıfından gelen davranışı kendine göre şekillendirebilir.
Nesne Tabanlı Programlamayı(Object Oriented Programming) açıkladım. Python hakkında daha fazla bilgiye erişmek isterseniz geçmiş yazılarımı okuyabilirsiniz. Daha fazlası için github hesabımı takip edebilirsiniz.
