26- Dart Nesne Yönelimli Programlamaya Giriş

Nesne Yönelimli Programlama Nedir?

Object Oriented Programming – OOP

İngilizcesi object olan nesnenin bir tanımına bakalım. Nesne : Belli bir ağırlığı, kitlesi, rengi, maddesi olan her türlü varlık diye açıklanmış.

Yazılım için kullanılan nesne tanımı: “içinde veri saklayan ve bu veriler üzerinde işlem yapacak olan metotlar bulunduran bileşenlerdir.

Yazımızın içeriğini aşağıdan video olarak izleyebilirsiniz.

Dart dersleri – Nesne Yönelimli Programlamaya Giriş

Sınıf (class) – Nesne (object) Nedir? Nasıl Oluşturulur?

Sınıf (class) – Nesne (object) ilişkisi nedir?

Yazılımda bir nesne oluşturabilmek için önce bir class, sınıf oluşturacağız. Peki bu class nedir?

Arkadaşlar class bir plandır, taslaktır, modeldir gibi yakıştırmalar yapabiliriz.

Örnekleyelim; Bir ev yapacağız, bize evin nasıl olacağı ile ilgili bilgileri veren bir plan lazım. İşte o plan; şablon, taslak, model, plandır. Adını siz koyun ama ben yazılımda kullanıldığı üzere model diyeceğim. Özetlersek class (sınıf) bir nesnenin modelidir diyebiliriz.

Biz nesnemizi oluşturmadan önce bir model sınıfı oluşturacağız.

Oluşturduğumuz bu sınıf içerisinde değişkenler, fonksiyonlar barındırabilir.

Unutmayalım bu class bir modeldir ve kenarda duracak, biz oluşturacağımız nesneleri bu modele uygun bir şekilde oluşturacağız. Örneğin bir sandalye nesnesi hatta nesneleri üreteceğiz. Modelimize bakıp nasıl olacaksa ona göre ihtiyacımız kadar üreteceğiz.

Nesneleri Sınıfları neden kullanıyoruz?

Elimizde olan Listler mapler bize yetmiyor mu?

Sorunun cevabı basit, evet yetmiyor, yettirmeye çalışırsak her şey birbirine girer. Bir listenin alacağı veri sınırlıdır, yine bir mapte bir kişinin özelliklerini tanımlayabiliriz ancak bir sürü kişinin özelliklerini tanımlamaya kalktık mı iç içe mapler kullanmak ve karışıklığa meydan vermek olur.

Nesne Yönelimli Programlama İlkeleri

Abstraction (Soyutlama)

Encapsulation (Paketleme)

Inheritance (Kalıtım – Miras Alma)

Polymorphism (Çok Biçimlilik)


Nesne yönelimli programlama ilkeleri pratik olarak ileriki yazılarımızda örneklemeler ile mevcut olacak ancak bazı arkadaşlara işe başlarken ya da öğrencilere sorulduğunu biliyorum. O yüzden ufak bir açıklama yapıp geçeceğim.

Abstraction (Soyutlama)

Farklı farklı tanımları olmakla birlikte programlama dili açısından bakarsak; Oluşturacağımız nesnenin değişkenlerini, fonksiyonlarını ayrı bir sınıf tanımlayarak, ona aktarmak ve programımızın ana akışı içerisinden ayırmak, soyutlamak.

Yine bir başka kaynakta Oğuz Aslantürk’ ün Java ile Nesne Yönelimli Programlama kitabında “Gerçek hayattaki problemleri bilgisayarın sanal ortamında çözebilmek için, herşeyden önce problemin uygun şekilde bilgisayar ortamına aktarılması gerekmektedir. Bu işlem “soyutlama (abstraction)” ya da “modelleme (modeling)” olarak anılır.” denmiş.

Encapsulation (Paketleme)

Biz sınıf oluşturduğumuzda bazı fonksiyonların, özelliklerin oluşturulan nesneden erişilememesini, gizlenmesini isteriz. Bu yüzden oluşturulan sınıf içerisinde kullanıcının işlemlerini daha dolay gerçekleştirebilmesi için bazı işlemler birleştirilerek tek bir işlem gibi gösterilir. Bu birleştirme işlemine kapsülleme, paketleme denir. Dart dilinde bu işi kolaylaştıran public ve private erişebilirlik türleri vardır.

Inheritance (Kalıtım – Miras Alma)

Nesnelerin ortak özelliklerini tanımlanan sınıftan almasıdır diyebiliriz. Örneğin bir okulda ilk, orta ve lise olduğunu düşünelim. Her bölüm için bir sınıf oluşturduk. Ancak bunların ortak özellikleri olan adı, soyadı gibi bilgileri oluşturduğumuz öğrenci sınıfından hepsine aktarabiliriz. Buradaki üst sınıf parent olur alt sınıf ise child. Buna parent – child ilişkisi denir.

Polymorphism (Çok Biçimlilik)

Farklı nesnelerin miras aldıkları aynı sınıftaki fonksiyonlara farklı tepkiler vermesi, onları kendine uygun şekilde kullanması.

Örnekle açıklamaya çalışalım. Bünyesinde ilk, orta ve liseyi barındıran bir okul olduğunu düşünelim ve bunların her biri için bir sınıf oluşturalım. Bunların ortak özellikleri olan ad, soyad, not ortalaması gibi özelliklerin olduğu üst sınıf olan öğrenci sınıfı olsun. Ancak ilk ve lisenin not ortalaması farklı hesaplanıyor. Bizde kalıtmış olduğumuz öğrenci sınıfını ilk ve lisede kendimize göre uyarlıyalım, yani override edelim. Yani üst sınıf olan öğrenci sınıfının not ortalama fonksiyonunu ezelim ve kendimize uygun hale getirelim.

Biraz teknik içerikli bir yazı oldu. Bundan sonraki yazılarımızda nesne yönelimli programlamada örnekler ile devam edeceğiz.

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir