Anasayfa / Yazılım / C# / Nesne Yönelimli Programlama (OOP) Nedir?

Nesne Yönelimli Programlama (OOP) Nedir?

Nesne yönelimli programlama (Obejct Oriented Programming) yazılım dünyasında karmaşıklığı ya da boyutu artan yazılımların kolayca ve kısa sürede geliştirilebilmesi için özellikle tüm yazılım projelerinde kullanılmaktadır. Tüm modern programlama dilleri tarafından desteklenmedir. Nesneye yönelik programlama da 3 temel yapı üzerine durulur. Bunlar :

  • Veri Soyutlama
  • Kalıtım
  • Çok Biçimlilik

Öncelikle sınıf (class) ve nesne (object) nedir bunlara değinelim.

Sınıf (Class) , bir bütünü oluşturacak şekilde ortak özelliklere sahip olan üyelerin bir araya getirdikleri bütün olarak tanımlanabilir. Bunları daha sonra örneklendireceğiz.

Nesne (Object) ise, etrafımızda gördüğümüz ve tabiri eğer uygunsa ?şey? olarak tanımladığımız varlıktır. Örnek verirsek; kalem, kağıt, defter, ben, onlar, Ahmet vs bunların hepsi birer nesnedir diyebiliriz. Nesnelerin iki temel bileşeni bulunur. Bunlar Özellik (Property) ve Davranış (Behavior)?dır. Nesne tanımlandığı sınıfın özelliklerini taşımaktadır.

Buradan anladığımız gibi, sınıf nesneyi tanımlayan bir veri türüdür denilebilir. Nesne ise bir sınıftan türettiğimiz ve onun özelliklerini taşıyan bir modeldir ve daha sonra tekrar tekrar kullanılacak olan parçalardır.

OOP, yazılım geliştirme sürecinde son derece etkili bir yöntemdir ve günümüz projelerinde vazgeçilmez olmayı sürdürmektedir. Bir yazılım geliştirmenin 3 temel aşaması bulunmaktadır, bunlar Tasarlama, Geliştirme ve Test Etme olarak tanımlanır. İlk aşamanın iyi olması sonucu geliştirme ve test etme süreçleri de hızlı ve doğru-kolay bir şekilde daha rahat gelişir, bu durum da tasarımda OOP?nin kullanılması sonucu gerçekleşebilir.

Sınıf ve Nesne Tanımlamak :

public class meyve

{

meyve elma = new meyve();

}

Burada bir sınıftan bir nesne oluşturulmuştur. Bu şekilde sınıf belleğe taşınmış oluyor. Burada ki new opetaörü ile meyve sınıfının bir kopyasını belleğe alıyoruz ve geriye dönen bellek adresini elma değişkeninde saklamış oluyoruz. Böylelikle, elma nesnenin kendisini değil aslında nesnenin yerini gösteren referansı tanımış oluyor.  C# temel düzeyde değer tiplerini bilirsiniz ki ikiye ayırıyoruz, değer tipleri ve referans tipleri, işte burada bizim tanımladığımız sınıfın altındaki nesneler aslında birer referans değişkeni olmuş oluyorlar.

Bu nedenle, sınıf ve nesneler referans türleri oldukları için başka bir değişkene kopyalandıkları zaman sınıfın asla yeni bir kopyası oluşturulmaz. Her iki değişken de aynı nesneyi göstermiş olur.

Yani şöyle bir kullanım sonucu :

public class meyve

{

meyve elma = new meyve();

meyve cilek;

cilek = elma;

meyve kiraz = new meyve();

}

Böyle bir kullanım sonucunda, elma ve cilek değişkenleri aynı, kiraz değişkeni ise farklı bir nesne ile ilişkilendirilmiş olmaktadır. Yani her bir nesne için ayrı ayrı örnek (instance) alınmalı ve bellekte yer açılmalıdır, aksi takdirde aynı yeri gösterirler.

.NET? te her şey aslında birer nesnedir, biraz açıklaması zor olsada  🙂

Her şey aslında System.Object sınıfından türetilmiştir.

Aynı isim uzayı (namespace) olmak şartı ile iç içe sınıflar da üretilebilir, bunu unutmayınız. İlerleyen yazılarda bu tip örnekleri paylaşmaya gayret edeceğim.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir