Object Oriented Programlama # 5 - Python Dersleri (Tutorials)

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@elektroyazilim·
0.000 HBD
Object Oriented Programlama # 5 - Python Dersleri (Tutorials)
![object.jpg](https://cdn.steemitimages.com/DQmb9SAwWzX6XvD758tzXyxhUrmFP8vUQf9MkpbUpz3x6tm/object.jpg)

Merhabalar

Object oriented programlama konusuna başladığımızdan beri sınıf, nesne, özellikler, yapıcı fonksiyonlar ve init() fonksiyonundan bahsettik.

Bu dersimizde sınıf yapısının içerisinde metot nasıl tanımlanır, bunu göreceğiz.

Özellikleri ve metotları olan bir sınıf tanımlayarak başlayalım. _personel_ adında bir sınıfımız olsun ve personele ait genel özellik ve metotlarımız bulunsun.

Kod kısmı aşağıdaki gibidir :

![](https://cdn.steemitimages.com/DQmcPJG8ZVc6rwrQq3D1j3h6xj1a62m6VNJNUWQaRTbGXR6/image.png)

Örneğimizde _personel_ adında bir sınıf tanımlanmıştır. Sınıf içerisinde _init()_ fonksiyonu ve _bilgilerGoster()_ metodu bulunmaktadır.

_init()_ fonksiyonunu önceki derslerimizden biliyoruz. Sınıf içerisinde yer alan özelliklere ilk değer ataması yapmak için kullanılan constructor tarzı bir fonksiyon. Örneğimizdeki gibi _init()_ fonksiyonunu tanımlama zorunluluğu bulunmamaktadır.

Eğer programcı _init()_ fonksiyonunu tanımlamazsa Python default olarak oluşturmaktadır. Ancak  _init()_ fonksiyonunu Python oluşturduğunda özellikleri nesnelere göre değiştirilebilir hale getiremiyoruz. 

Sınıf içerisinde bulunan özellik bilgilerini nesnelere göre değiştirilebilir hale getirmek için _init()_ fonksiyonunu biz tanımladık. 

İki fonksiyon da tanım olarak neredeyse birbirinin aynısı gibi gözüküyor:
* Fonksiyon tanımlamak için _def_ anahtar kelimesinin ve fonksiyon parantezlerinin kullanılması
* _self_ referansının kullanılması: Sınıf içerisinde herhangi bir fonksiyon tanımladığımızda _self_ referansının ilk parametre olarak verilmesi zorunludur.  Bu referans sayesinde sınıfın özelliklerine ve metotlarına erişebiliriz.

![](https://cdn.steemitimages.com/DQmazxKYvaKEzqDsSwFxVZ4Nv7eBrdSZNLbNyKPPToeb45G/image.png)

Yukarıdaki _init_ tanımından bahsedelim. Buradaki _self_ anahtar kelimesi bu sınıftan oluşturulacak objeyi simgelemektedir. Yani bir nesne üzerinden o sınıfın özellik ve metotlarına erişebilmek için bu anahtar kelimenin kullanılması gerekir.

> self.ad = ad

kodu ise "_init()_ fonksiyonuna parametre olarak gelen ad değerini nesnenin ad özelliğine ata", demektir. Diğer özellikler de aynı şekilde.

Bu arada özellikler hakkında herhangi bir tip sınırı bulunmamaktadır. ad, soyad string olabilir ya da numara ve maas bilgileri tamsayı. Hatta diller değişkeni de bir liste olabilir. Bunların kullanımını bir nesne oluşturduğumuzda göreceğiz.

![](https://cdn.steemitimages.com/DQmcEqH5jRV49tZtVPbbA5SgzaV47eKk9QnBfXm6UJfaaNK/image.png)

_bilgilerGoster()_ fonksiyonu ise _self_  zorunlu parametresi dışında herhangi bir parametre almamıştır. Fonksiyon bloğunda yer alan tek kod print() fonksiyonudur. 

print() fonksiyonu içerisinde _self_ referansını kullanarak sınıfın özelliklerine erişildiğini görüyoruz.

Gelelim bu sınıfın kullanılmasına. Bir sınıfı kullanabilmek için o sınıftan nesne oluşturmamız gerekir.

![](https://cdn.steemitimages.com/DQmQ8CuJXpeoSZexbqE8WsAWN2467VJYjQimdFPup8VQy8F/image.png)

_worker_ adında bir nesne oluşturduk. _personel_ sınıfı içerisinde tanımladığımız özel bir _init_ fonksiyonu olduğundan nesne oluştururken ilk değerlerini verebildik.

İlk değer verilirken _init_ fonksiyonunda parametreler hangi sırayla bulunuyorsa, değerleri de o sıraya uygun olarak vermek gerekir.

ad ve soyad özelliklerinin string, numara ve maas özelliklerinin tam sayı ve diller özelliğinin de bir liste olduğunu görüyoruz.

Nesnemizi oluşturduğumuza göre sınıfa ait bir metot çağıralım :

![](https://cdn.steemitimages.com/DQmeEkXvBnHtBvosMVnZPsucGLD6YxhCCutXsUwSCLrMEXu/image.png)

_bilgileriGoster()_ metodunun çağrılışı diğer metotlar gibidir. Nesne ismini yazdıktan sonra noktaya  ve sonrasında TAB a bastığımızda çıkan listeden fonksiyonu seçebiliriz.  Bu metodun geri dönüş değeri olmadığından direk çalıştırabildik.

Sınıf  içerisinde çok daha fazla fonksiyon oluşturabiliriz. İki adet daha fonksiyon ekleyip kullanımlarına bakalım :

![](https://cdn.steemitimages.com/DQmX4v6rio2GmsZvtujyDEx3G9W1FvEj2WF3bK83kETp7B5/image.png)

_dilEkle()_ ve _maasArtir_ adında iki adet daha fonksiyon ekledik. İkisi de birer parametre içermektedir. Kullanımları ise aşağıdaki gibidir :

![](https://cdn.steemitimages.com/DQmNW3M5agHmeR31Bxb1ynVXC3BYQdquevz6rj2Nove4Vff/image.png)



Şimdilik bu kadar.

Umarım faydalı bir çalışma olmuştur.

Teşekkürler.

![yesilayrca.png](https://cdn.steemitimages.com/DQmYZw2bhUomeivJwQ8CiLaTzXTbJPLd1PsSGdcoEE1DfKP/yesilayrca.png)

Kaynak belirtilmeyen görseller bana aittir. The pictures without source in the post is belong to me
👍 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,