Bugün ne öğrendim? 19 OOP

Bugün ciddi ciddi OOP’ye daldım. Şimdi benim üniversiteye(Anadolu) başladığımda çılgınlar gibi 4. sınıf seçmeli dersi alıp (Bilgisayar Mühendisliği) yani Design Pattern dersinden aşına olduğum birkaç kavramdan bahsedeceğim.

Nesneye Yönelik Programlama’nın 3 ana prensibi vardır. Bunlar Encapsulation, Polymorphism, Inheritance’dır.

Encapsulation Nedir ? Encapsulation türkçe Kapsülleme anlamına gelmektedir. Bu prensip nesne hakkındaki bilgi ve yapılacak işlemlerini ortaya koyar. Herhangi bir nesne düşünelim örneğin şemsiye; şemsiyenin rengi, boyutu ve örneğin açılması gibi özelliklerin tamamı Encapsulation prensibinde ortaya koyulur.

Inheritance Nedir ? Inheritance türkçe kalıtım anlamına geliyor. Kalıtım prensibi nesnelerin bir nesne oluşturulmasını ortaya koyar. Biraz önce ki şemsiye örneği üzerinden devam edersek. Şemsiye için bir sopa, demir vs. gerekiyor bunun gibi nesnelerden oluşan nesneleri ortaya koyar.

Polymorphism Nedir ?
Polymorphism türkçe çok biçimlilik anlamına gelmektedir. Çok biçimlilik prensibi bir işlemin veya metodun bir çok nesne tarafından kullanılabilmesi anlamına geliyor. Yani örneğin bir arabayı düşünürsek ayna ve tekerlek farklı iki nesnedir. Dönme işlemi ikisi içinde geçerli olarak kullanılabilir. Nesneye Yönelik Programlama, programcıların o dağınık ve anlaşılmaz yapılarını tamamen ortadan kaldırıyor diyebiliriz. Bu teknoloji sizlere yapacağınız işin parçalara ayırıp organize bir şekilde hareket etmenizi sağlar. Yani bir araba yapacaksanız, tekerlek, ayna, iskelet, direksiyon, pedal vs. her şeyi ayrı ayrı yapıp bir bütün haline getirmenizi sağlıyor. Bu sayede siz tekerlekteki sorunu ararken ayna, direksiyona vs. boşuna bakmamış bunların kodlarını incelemekten kurtulmuş oluyorsunuz. Aynı zamanda eğer yeni bir şey eklemek isterken de yine sizleri istediğiniz yere götürüyor. Ne kadar parçalayabilirim derseniz bu size kalmış. Aynı zamanda OOP( Object Oriented Programming) sayesinde kodlarınız sizin dışınızda gören kişiler tarafından da kolayca algılanabilir hale gelmektedir.

OOP’da çok önemli yer tutan Class nedir?

Sınıf (Class) : Sınıflar nesne yönelimli (object oriented) programlamanın en önemli öğesidir. Sınıflar sayesinde programlar parçalara bölünür ve karmaşıklığı azalır. Yaratılan metodlar ve özellikler bir sınıfın içerisinde yer alır ve bir sınıf defalarca kullanılabilir. Bir sınıfta hem fonsiyonlar hem de veriler aynı anda birbiriyle sıkı bir şekilde bağlı olarak bulunur.

class Sample():
    pass

# Instance of Sample
x = Sample()

print type(x)

OOP biraz karmaşık bir konu fakat ben anladığım şekilde anlatmaya çalışacağım. Class’ların içine fonksiyonlar ve objeler tanımlayabiliriz. Mesela bir hayvan için birşey oluşturmaya çalışalım.

class Animal():
 def init(self):
    print "Animal created"
#Burda class'ımızı oluşturduk. Bu init ile kendi kendine döndürdük. Bize çıktı olarak "Animal created" dedi.
 def whoAmI(self):
    print "Animal"
#Burda WhoAmI diye bir bir fonksiyon oluşturduk.
 def eat(self):
    print "Eating"
#Burda da eat diye bir fonksiyon oluşturduk, bize karşılık olarak "Eating" diyor.

Şimdi bir de dog diye bir Class oluşturuyoruz ve yukarıda girdiğimiz objeleri kullanıyoruz.

class Dog(Animal):
    def __init__(self):
        Animal.__init__(self)
        print "Dog created"

    def whoAmI(self):
        print "Dog"

    def bark(self):
        print "Woof!"
#Ardından bu değerlerin görünebilmesi için, 

d = Dog()
d.whoAmI()
d.eat()
d.bark()
 
diyoruz.
Kodlar
Ekran çıktısı

Bugünlük anlatacaklarım bu kadar yarın bu konuya devam edeceğim, görüşmek üzere 🙂

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s