C# OOP Nedir?

C# OOP Nedir?
C# OOP Nedir?
0

Bu yazıda, nesne yönelimli programlama (karmaşık, hoş ve güçlü bir konu olan) konusunu ele alarak C# OOP‘nin ne olduğunu, avantajlarını ve işlevlerini sizlere tanıtacağım.

C# OOP Nedir?

Öncelikle OOP kavramına bakalım. OOP (Object-Oriented Programming) ders içeriği veya kaynakları açısından Nesne Yönelimli Programlama (NYP) olarak adlandırılabilir. Dilin temeli, C# OOP programlarında ortaya çıkan kaotik ortamı ortadan kaldırmak için 1960’ların sonlarında ortaya çıkan OOP konseptine dayanılarak atıldı. Programlarımızda OOP kullanarak, daha güvenli olma, daha kolay kontrol etme ve yanlış sonuçları anında tespit etme, böylece daha kolay kod blokları yazma fırsatına sahip oluruz.

OPP Özellikleri nelerdir?

 

OPP nedir?
OPP nedir?

 

 

Hazırsanız C# OOP Nedir sorusundan sonra C# OOP özellikleri içerisinde yer alan kavramlara birlikte göz atalım. Bu özellikler şunlardır:

-> C# Abstraction (Soyutlama)
-> C# Encapsulaation (Kapsülleme)
-> C# Inheritance (Miras Alma / Kalıtım)
-> C# Polymorphism (Çok Biçimlilik)

C# Abstraction (Soyutlama)
Bir sınıfta davranış ve özelliklerin tanımlanmasına soyutlama diyoruz. Bir örnek verecek olursak uçak bir sınıf olur. Bu uçağın rengi, modeli, tekerlek sayısı, motor gücü, Yolcu kapasitesi özellikleri olurken hızlanması, fren yapması, durması, iniş yapması, havada gitmesi gibi davranışları ise davranış yapılarını tanımlar ve bunları abstract metotlar ile gerçekleştiririz.

C# Encapsulaation (Kapsülleme)
Davranış ve özellikler sınıfta soyutlanarak kapsüllenirler. Kapsülleme yoluyla, hangi işlevlerin ve davranışların dışarıya sunulup sunulmayacağını belirleyebiliriz. Örnek verelim insanın içirişinde bünyesinde barındırdığı birden fazla yetenek var bunu fakat insanlar bu özelliklerinin hepsini dışarıya çevresine paylaşıma sunmuyor çok az bir kısmını paylaşıma sunuyorlar. Yani programlarımızda tanımladığımız sınıftaki özellik ve davranışları kapsülleme kullanarak dışarıya sunumunu kısıtlayabiliriz.

Kapsülleme erişim seviyeleri hakkında bilgi sahibi olursanız konunun daha iyi anlaşılacağını düşünmekteyim dilerseniz aşağıya göz atarsanız daha iyi anlamanıza yardımcı olacaktır.

C# Kapsülleme erişim seviyesi
C# Kapsülleme erişim seviyesi

Aşağıdan yukarıya doğru çıkıldıkça daha zorlaşır yukarıdan aşağıya inildikçe kolaylaşmaktadır. Erişim seviyesi bu şekildedir.

C# Inheritance (Miras Alma / Kalıtım)
Sınıflar birbirinden türetilebilir. Alt sınıflar, üst sınıfın niteliklerini benimseyebilir. Örneğin, tekerlek sayısı, hız vb. Gibi özellikleri otomobil ve bisiklet sınıflarının ortak işlevlerine yeniden yazmak yerine, bu nitelikleri içeren sınıflar oluşturabilir ve devralabiliriz. Bir sınıftan birden fazla miras alırsanız, buna çoklu miras denir.
C# Inheritance (Miras Alma / Kalıtım) kavramı da tamamen bu örnek ile ilişkilidir, sınıflar birbirinden türeyebilir ve türeyen sınıf üst sınıfın özelliklerine sahip olur.

C# Polymorphism (Çok Biçimlilik)
Üst sınıflardan ortaya gelen alt sınıflar her zaman üst sınıfın izlediği yolu ya da sergiledigi davranışları göstermek yada yapmak durumunda değillerdir. Buradan yola çıkacak olursak alt sınıfların, üst sınıflardan farklı davranışlar yapmalarına farklı bir yol izlemelerine çok biçimlilik denilmektedir diyebilirim.
Örnek verecek olursak Araba ve uçak sınıflarını ele aldığımızda bunların hareket tipleri bulunmaktadır. uçak hava boşluğu üzerinden giderken araba karada hareket etmektedir. Kısaca farklı nesnelerin (araba ve uçak gibi) aynı olaya (hareket tipine) farklı biçimde cevap vermesidir.

 

Nesne Yönelimli Programlamanın Faydaları ( OPP Faydaları )

->Nesne oluşturmada bir sınıf içerisine toplanırlar ve tüm projelerde kullanılabilirliğe olanak sağlarlar.
->Sınıfların bir kez oluşturulması sayesinde uzun kodları tekrardan yazmaya gerek kalmadan kısa kodlamalar ile çalıştırılabilir.
->Uzun kodların tekrardan yazılmasının engellenmesi sayesinde geliştirme süreci kısalır ve performans artışı yaşanır.
->Nesneler birbirinden alakasız, bağımsız olduğundan bilgi gizliliği konusunda avantaj sağlar.
->Sınıflar sayesinde tüm projelerde değişiklik yapmak yerine tek bir sınıfta değişiklik yapılıp tüm projelerde çalışması sağlanır. Bu zaman kaybını büyük ölçüde azaltır.

Bu kavram hakkında Microsoft tarafından paylaşılan kaynağa göz atmak isterseniz buraya tıklayabilirsiniz.

Bu konuda daha detaylı bir bilgi isterseniz syntax yapısının benzerliği ve yapı olarak aynı sayılacak Java dilinde paylaşılmış olan konuya buradan ulaşabilirsiniz.

TEŞEKKÜRLER…

İlginizi Çekebilir

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


The reCAPTCHA verification period has expired. Please reload the page.