Nesne Yönelimli Programlama Temelleri

- Advertisement -4-

Mehtap Çelik yazdı, 31 Temmuz 2016…

Nesne yönelimli programlama, yazılım dünyasında artan ihtiyaçlar doğrultusunda geliştirilmiş tekniklerden oluşmaktadır. Bu teknikler sayesinde karmaşık programlar daha düzenli kod satırlarına sahip olmaktadır. Gerçek dünyadaki nesneler ve aralarındaki ilişki baz alınarak oluşturulan bu teknikler programcılara ‘yeniden kullanılabilir’ ve ‘geliştirebilir’ kodlar ile kolaylık ve zamandan tasarruf sağlamaktadır.

Bir programlama dilinin nesne yönelimli bir dil olabilmesi için 4 temel özelliği taşıması gerekmektedir. Bu özellikler:

- Advertisement -3-

1) Abstraction (Soyutlama)
2) Encapsulation (Sarmalama)
3) Inheritance (Kalıtım)
4) Polymorphism (Çok Biçimlilik)

1) Abstraction (Soyutlama)

Bir kavramın bilgi içeriğini azaltma veya indirgeme süreci soyutlamadır. Başka bir deyişle, bir nesneyi bazı karakteristikleri olan bir veri tipi olarak genelleştirme sürecidir. Nesne denilen şey gerçek dünyadaki varlıklara tekabül eder. Mesela kitap bir nesnedir. Bu nesnenin yani kitabın ayırt edici özellikleri:

Sayfa sayısı
Yazarı
Türü
Yani bu özellikler kitabı tanımlarken aklımıza gelen özelliklerdir. Nesnenin özelikleri, karakteristikleri ve yapılabileceği eylemler ise metot adını alır. Soyutlama sonucunda nesne, özellikleri ve metotları ile temsil edilebilmektedir.

Nesne yönelimli programlama dilleri, soyutlamayı sınıf (class) yapısıyla gerçekleştirir. Sınıf yapısı içinde o nesneye ait özellikler ve metotlar tanımlanabilir. Örneğin nesne insan olsaydı, metotlar; konuşma, yürüme vb. gibi metotlar olurdu.

Nesne yönelimli programlamada soyutlama, nesnelerin gerekli özelliklerinin kodlanıp, gereksiz özelliklerinin kodlanmaması ile sağlanabilir.

2) Encapsulation (Sarmalama)

Nesne, bu nesneye ait özellikler ve metotlardan oluşur. Programda sınıfı oluşturan (sınıfın içerisinde yer alan) metot ve özelliklerin gerçekleşme biçiminin bu sınıfı kullanan kişilerden gizlenmiş olması encapsulation ile sağlanır. Yani programdaki kodları dışarıdan yapılabilecek müdahalelere karşı koruyan bir sistemdir encapsulation.

Bir nesneye ait özellikler ve metotlar sadece içinde tanımlı olduğu nesne tarafından veya dışarıdan erişilecek şekilde tanımlanabilir. Nesne içindeki özel kod ya da verilere sadece nesne tarafından erişilebilir. Nesne dışında kalan kodlar nesne içindeki verilere erişemezler. Erişebilmeleri için nesne içindeki kodların herkese açık olarak tanımlanması gerekir. Buna Access Modifiers (erişim belirleyicileri) denir.

Encapsulation, bir sınıf içerisinde yer alan nesneye ait özellik ve metotları korur yani bunlara erişebilme durumunu belirler. Erişim belirleyicilerin özellikleri aşağıdaki gibidir.

Private: Sadece sınıfa özel elemanlardır. Sınıfta yer alan elemanlar tarafından erişim sağlanabilir.
Public: Program içinde yer alan sınıf dışındaki tüm kodlar tarafından erişim sağlanabilir.
Protected: Bu sınıftan türetilen sınıf ve aynı pakette olanlara açık olan elemanlardır.
Default: Herhangi bir tanımlama yapılmazsa, aynı pakettekilerin erişebildiği elemanlardır.

4) Inheritance (Kalıtım)

Nesne yönelimli programlamada bir sınıftan başka sınıflar türetilebilir. Türetilen sınıf/sınıflar alt sınıf (subclasses) olurken, kendisinden alt sınıf türetilen sınıfa temel sınıf (base class), süper sınıf (super class) veya ana sınıf (parent class) adı verilir.

Alt sınıfın nesneleri türetildikleri ana sınıfa ait özellikleri alıyorsa bu da kalıtım (inheritance) özelliğidir. Bu sayede alt sınıflar ana sınıfın özelliklerini ve metotlarını aynen alırlar.

4) Polymorphism (Çok Biçimlilik)

Çok biçimlilik, farklı nesnelerin aynı isimdeki kendi metotlarını devreye sokarak bir önceki metodu ezme özelliğidir. Örneğin Alan isimli bir ana sınıfımız olsun. Ucgen, Kare isimli iki alt sınıfımız olsun. Bu alt sınıfların her biri alan hesabı yapan AlanBul adlı bir metoda sahip olsun. Ucgen alt sınıfındaki AlanBul metodu üçgenin alanını hesaplayan kodları içerir. Kare alt sınıfındaki AlanBul metodu ise karenin alanını hesaplayan kodları içerir. Yalnız dikkat edelim bu iki alt sınıfın da metotlarının adı AlanBul. Şimdi bu metotları kullandığımızda Ucgen alt sınıfındaki AlanBul metodu çalıştığında üçgen alanı hesaplanabilecek. Kare alt sınıfındaki AlanBul metodu çalıştığında ise karenin alanı hesaplanabilecek. İşte, her bir alt sınıf için bu sınıfa ait metot da aynı olmasına karşın, her alt sınıfa ait nesne farklı bir alan hesabı yapacaktır. Bu nesne yönelimli programlamanın çok biçimlilik özelliğidir.

Kaynaklar

  • https://gelecegiyazanlar.turkcell.com.tr/konu/android/egitim/android-101/nesne-ve-nesne-yonelimli-programlama-teorisinin-4-temel-ozelligi
  • http://www.bilgigunlugum.net/
  • http://turgayozgur.com/oop-1-nesneye-yonelik-programlamaya-baslangic.html
  • http://www.bilisimogretmeni.com/wp-content/uploads/NesneYonelimliProgramlamaTemelleri.pdf

[bs_notification type=”warning”]Warning! Bu sitedeki herhangi bir yazı, resim, makale, haber tamamen Business.Blog by sametsahin.com.tr ‘ ye aittir. İstediğiniz zaman www.sametsahin.com.tr bağlantısını kaynak göstermek şartı ile copy+paste yapabilirsiniz[/bs_notification]

CEVAP VER

Please enter your comment!
Please enter your name here

Share

All countries
197,647,862
Total confirmed cases
Updated on 30 July 2021 17:49
Italy
4,343,519
Total confirmed cases
Updated on 30 July 2021 17:49
Spain
4,422,291
Total confirmed cases
Updated on 30 July 2021 17:49
Iran
3,851,162
Total confirmed cases
Updated on 30 July 2021 17:49
Germany
3,774,013
Total confirmed cases
Updated on 30 July 2021 17:49

Latest Updates

Frequently Asked Questions

Related Articles

Netflix Film Önerisi: Alpha

Biliyorsunuz izlemediğim filmi önermiyorum. Eğer öneriyorsam da en azından myimdb puanım 6/10 nın üzerindedir....

Rüstem Çetinkaya, Efendioğlu ve Çeviklerin Desteğini Aldı

Rüstem Çetinkaya İMİB Başkan Adayı Sektörde takip ettiğim isimlerden biridir Rüstem Çetinkaya. Tarzı, imajı ve...

Mermer Kurna Nedir?

Mermer Kurna Nedir? TDK'ye göre kurna tanımı: Hamam ve banyolarda musluk altında bulunan, içinde su...

Defne Koz Tasarımları

Avşar gazoz maden suları piyasadaki diğer maden sularına kıyasla daha farklı bir dizayna sahip...

Enjoy this blog? Please spread the word :)

RSS
Follow by Email2k
INSTAGRAM