Nesne Yönelimli Programlama – Metodlar
Bu yazıda bir sınıf içinde metodlarımızı nasıl tanımlayacağımızı öğrenmeye çalışacağız. Bunun için ilk olarak bir Yazılımcı sınıfı tanımlayalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
class Yazılımcı(): def __init__(self,isim,soyisim,numara,maaş,diller): self.isim = isim self.soyisim = soyisim self.numara = numara # Yazılımcı objelerinin özellikleri self.maaş = maaş self.diller = diller # yazılımcı1 objesi yazılımcı1 = Yazılımcı("Mustafa Murat","Coşkun",12345,3000,["Python","C","Java"]) yazılımcı2 = Yazılımcı("Serhat","Say",23456,3500,["Matlab","R","SmallTalk"]) print(yazılımcı1.diller) print(yazılımcı2.soyisim) """ Çıktı ['Python', 'C', 'Java'] 'Say' """ |
Önceki dersten bunların nasıl yapıldığını biliyoruz. Peki bu class’a metodlarımızı nasıl tanımlayabiliriz ? Aynı init metodunu tanımladığımız gibi bir class’a da istediğimiz kadar metod tanımlayabiliriz. Örneğin ,Yazılımcı classına bilgilerigöster isimli bir metod tanımlayalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
class Yazılımcı(): def __init__(self,isim,soyisim,numara,maaş,diller): self.isim = isim self.soyisim = soyisim self.numara = numara # Yazılımcı objelerinin özellikleri self.maaş = maaş self.diller = diller def bilgilerigöster(self): print(""" Çalışan Bilgisi: İsim : {} Soyisim : {} Şirket Numarası: {} Maaş : {} Diller: {} """.format(self.isim,self.soyisim,self.numara,self.maaş,self.diller)) yazılımcı1 = Yazılımcı("Mustafa Murat","Coşkun",12345,3000,["Python","C","Java"]) yazılımcı1.bilgilerigöster() """ Çıktı Çalışan Bilgisi: İsim : Mustafa Murat Soyisim : Coşkun Şirket Numarası: 12345 Maaş : 3000 Diller: ['Python', 'C', 'Java'] """ |
Burada bilgilerigöster isimli metod tanımlayarak her bir özelliğimizin değeri ekrana derli toplu bir şekilde yazdırmış olduk. Metodlarımızı yazarken dikkat etmemiz gerek nokta, her metodun birinci parametresinin self referansı olması gerektiğidir. Ayrıca objelerimizin özelliklerine mutlaka self referansıyla erişmemiz gerekiyor.İsterseniz bu classa 2 tane daha metod yazalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
class Yazılımcı(): def __init__(self,isim,soyisim,numara,maaş,diller): self.isim = isim self.soyisim = soyisim self.numara = numara # Yazılımcı objelerinin özellikleri self.maaş = maaş self.diller = diller def bilgilerigöster(self): print(""" Çalışan Bilgisi: İsim : {} Soyisim : {} Şirket Numarası: {} Maaş : {} Diller: {} """.format(self.isim,self.soyisim,self.numara,self.maaş,self.diller)) def dil_ekle(self,yeni_dil): print("Dil ekleniyor.") self.diller.append(yeni_dil) def maas_yukselt(self,zam_miktarı): print("Maaş yükseliyor...") self.maaş += 250 yazılımcı1 = Yazılımcı("Mustafa Murat","Coşkun",12345,3000,["Python","C","Java"]) yazılımcı1.bilgilerigöster() """ Çıktı Çalışan Bilgisi: İsim : Mustafa Murat Soyisim : Coşkun Şirket Numarası: 12345 Maaş : 3000 Diller: ['Python', 'C', 'Java'] """ |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
yazılımcı1.maas_yukselt(500) yazılımcı1.bilgilerigöster() """ Çıktı Maaş yükseliyor... Çalışan Bilgisi: İsim : Mustafa Murat Soyisim : Coşkun Şirket Numarası: 12345 Maaş : 3250 Diller: ['Python', 'C', 'Java'] """ |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
yazılımcı1.dil_ekle("Javascript") yazılımcı1.bilgilerigöster() """ Çıktı Maaş yükseliyor... Çalışan Bilgisi: İsim : Mustafa Murat Soyisim : Coşkun Şirket Numarası: 12345 Maaş : 3250 Diller: ['Python', 'C', 'Java','Javascript'] """ |
İşte bu kadar ! Bir sonraki derste de inheritance yani kalıtım mantığını öğrenmeye çalışacağız.