A’dan Z’ye C# OOP (Nesne Yönelimli Programlama)

{Kamil Kaplan} ®
Kodcular
Published in
3 min readApr 8, 2020

Herkese merhaba
Bu makalemde sizler ile C# OOP yani Nesne Yönelimli Programlama hakkında örnekler yapacağız ve dilimin döndüğü kadarıyla teori bilgiler vermeye çalışacağım. Ardından birkaç örnek ile bugünkü yazımı tamamlayacağız.

Bu arada yazımı beğenmeyi ve paylaşmayı, bi de beni takip etmeyi unutmayın :)

Nesne Yönelimli Programlama ‘nın temel amacı gün geçtikçe ilerleyen ve genişleyen yazılım sektöründeki bir takım problemlere ve tıkanıklıklara çözüm üretmektir.

Object Oriented Programming’de ana mantık, mevzu bahis konuların classlar ile soyutlanarak hem bilgisayarın hem de insanların anlayabileceği modeller oluşturmaktır.

CLASS

C# OOP : Classlar bizim yapmak isteğimiz işlemleri gruplara ayırmak, o grup üzerinden işlemlerimizi yapmak ve rahatlıkla bu gruba ulaşmak için kullanabilirz.
-- bir class’ı kullanabilmek için onun örneğini(referansını) oluşturmamız gerekmektedir.
-- bir class oluştururken kelimenin ilk harfi büyük oluşturulur. Ama örneği oluşturulduğunda ilk harfi küçük, sonraki kelimelerin ilk harfi büyük yazılır.

  • Classlar bir gruplama tekniği olarak metodlar ile kullanılabilir.
CustomerManager.cs
ProduuctManager.cs
Program.cs
  • Classların bir diğer özelliği property dediğimiz nesneleri(özellikleri) tutmasıdır.
Customer.cs
Program.cs
  • Property olarak tanımladığımı classlarımızdaki get ve set dediğimiz bloklar, encasulation tekniklerinin en temel versiyonu ile kullanılır.
Customer.cs
Program.cs
  • bir field üzerinde get veya set ederken yani değeri verirken veya değeri okurken başka bir şey yapmak istersek encapsulation tekniğini kullanmamız gereklidir.

INTERFACE

İsimlendirme standardı I ile başlatmaktadır. Interface’lerin en büyük kullanım amacı bir temel operasyon, temel nesne oluşturup bütün nesneleri ondan implemente etmektir.

Interface’ler soyut nesnelerdir. Soyut nesneler tek başına hiç bir anlam ifade etmezler.

Program.cs
  • Bir interface hiç bir zaman new anahtar sözcüğü ile kullanılamaz(new lenemez). Çünkü tek başına bir anlam ifade etmezler. Interface'i kendi başına new lememiz mümkün değildir.

Interface ve abstract gibi soyut nesneleri new anahtar sözcüğü ile kullanmamız mümkün değildir.

Interface’lere ileri bir seviye örnek ile devam edelim.

ICustomerDal.cs
Porgram.cs

POLYMORPHISM ( ÇOK BİÇİMLİLİK )

Bir nesneyi farklı amaçlarla implemente edip, o implemantasyonları belli bir kısmına veya tamamına ulaşmak için kullanılır.

ICustomerDal.cs
Program.cs

Interface’ler ile ilgili bir örnek ile devam edelim. Örneğimizin temel amacı interface'lerin doğru planlanması üzerinedir. Yazılım geliştirme prensiplerinden SOLID dediğimiz, 5 tane yazılım geliştirme prensibi var. Bu prensipler bir programcı için önemlidir. Bu örneğimizde SOLID ’in I harfi olan Interface Segregation prensibi üzerine örnek yaptık.

Bir class birden fazla interface'i implemente edebilir.

Program.cs

INHERITANCE ( KALITIM )

Bir nesneyi bir defa inheritance olarak alabiliriz ama birden fazla implemantasyon yapabiliriz. (Inheritance) önce yazılır

Class ların tek başına bir anlamı vardır ama interface ’ler tek başına bir anlam belirtmezler.

Program.cs

VIRTUAL METHOD

Virtual methods (sanal metotlar), base class (temel sınıf) içinde bildirilmiş ve derived class (türemiş sınıf) içinde de tekrar bildirilebilen metotlardır. Böylelikle sanal metotlar kullanılarak nesne yönelimli programlama da çok sık başvurulan çok biçimliliği yani poliformizm (polimorphizm) uygulanmış olur. Yani temel sınıfta bir sanal metot bildirildiğinde bu temel sınıftan türeyen sınıflardaki metotlar override edilerek, temel sınıftaki sanal metotu devre dışı bırakabilirler.

Program.cs

Virtual methodlarda temel operasyonlarımız var. İstediğimiz operasyonları override ile ezebiliriz.

ABSTRACT CLASS

Abstract’ larda birer classtır, yani interface gibi değil. Interface'ler ile virtual methodların birleşimi olarak düşünebiliriz. Tamamen INHERITANCE(KALITIM) amacı ile kullanılır.Interface'ler ile virtual methodların tam kullanım nedenlerini bir araya getirilmesinden oluşur.

Program.cs

Son bir örnek yapıp makalemizi bitirelim.

Program.cs
- Abstract method sadece abstract class ta olabilir ve derived class tarafinda override edilmek zorunda.- Virtual method ise normal class ta bulunur ve derived class tarafinda override edilmek zorunda değil.

--

--