#!/usr/bin/env python # coding: utf-8 # # Nesne Tabanlı Programlama - Metodlar # Bu videoda 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. # In[1]: 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 # In[2]: # yazılımcı1 objesi yazılımcı1 = Yazılımcı("Mustafa Murat","Coşkun",12345,3000,["Python","C","Java"]) # In[3]: yazılımcı2 = Yazılımcı("Serhat","Say",23456,3500,["Matlab","R","SmallTalk"]) # In[5]: yazılımcı1.diller # In[6]: yazılımcı2.soyisim # Ö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. # # In[35]: 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)) # In[36]: yazılımcı1 = Yazılımcı("Mustafa Murat","Coşkun",12345,3000,["Python","C","Java"]) # In[37]: yazılımcı1.bilgilerigöster() # 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. # In[38]: 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 # In[39]: yazılımcı1 = Yazılımcı("Mustafa Murat","Coşkun",12345,3000,["Python","C","Java"]) # In[41]: yazılımcı1.bilgilerigöster() # In[42]: yazılımcı1.maas_yukselt(500) # In[43]: yazılımcı1.bilgilerigöster() # In[44]: yazılımcı1.dil_ekle("Javascript") # In[45]: yazılımcı1.bilgilerigöster() # İşte bu kadar ! Bir sonraki derste de inheritance yani kalıtım mantığını öğrenmeye çalışacağız. # In[ ]: