İlginizi Çekebilir
featured
  1. Ana Sayfa
  2. C#
  3. C# OOP Nedir?
Trendlerdeki Yazı

C# OOP Nedir?

Hem karışık, hem zevkli ve oldukça işlevsel bir konu olan Nesneye yönelik programlama konusunu ele alarak bu yazımda sizlere C# OOP Nedir, faydaları, özellikleri gibi başlıklarda bir anlatım gerçekleştireceğim.

C# OOP Nedir?

Öncelikle OOP kavramını ele alarak kavramın açılışına bir göz atalım, Object Oriented Programming anlamına gelen OOP, ders içeriğinde ya da kaynaklar üzerinde Nesneye yönelik programlama (NYP) olarak da geçebilir. C# OOP, programlarımız içerisinde oluşan kaos ortamını ortadan kaldırmak için 1960’lı yılların sonlarına doğru ortaya çıkan OOP kavramına uygun şekilde dilin temeli atılmıştır. Programlarımız içerisinde OOP kullanımı ile yazacağımız kod bloklarını daha güvenli, kolay kontrol edilebilir ve hata sonuçlarını anında tespit etme gibi fırsatlar yakalamış olduk.

Programlama işlerine yeni başlıyorsanız ve ilk kez bir nesneye yönelik bir dil üzerinde araştırma yapıyorsanız bu yukarıdaki tanım aklınızı karıştırması oldukça muhtemel. Bunun için sizlere C# OOP Nedir sorusunu biraz daha örneklendirerek anlatmak isterim.

C# OOP, yaşantımız üzerinde gözlemlediğimiz arabalar, binalar, reklam panoları gibi nesnelerin bilgisayar ortamına taşınarak, programa tanıtılma işlemi olarak örneklendirebilirim. Yani bir nesnenin açık ya da kapalı olması durumu, veya nesnenin rengi, markası gibi çeşitli özelliklerin bilgisayar ortamında gösterilmesi denilebilir.

C# OOP Nedir
C# OOP Özellikleri

C# OOP Özellikleri

C# OOP Özelliklerini ele alacaksak öncelikle, Nesneye yönelik programlamanın temelinde hiyerarşi düzeni yattığını bilmem gerekmektedir. Bu hiyerarşik kavramı anlamamış olabilirsiniz, biraz örneklendirerek bunu ele alırsak eksik taşlar yerine oturmaya ve C# OOP özellikleri kavramı gibi C# OOP Nedir sorusunun cevabı da aklımızda yer etmeye başlayacaktır.

🤔 Ticari bir işletme düşünelim. C# Nesneye yönelik programlama kavramına göre bu işletme programlarımızda oluşturmuş olduğumuz sınıflara karşılık gelir. Sınıf içerisindeki özelliklerimiz, tanımlamalarımız ise o işletmenin çalışanlarını oluşturur. Bu çalışanlarda nesneye karşılık gelir. Sonuç olarak çalışanların birbirleri ile uyumlu ve organize bir şekilde etkileşim içerisinde bulunmaları C# OOP kavramını ortaya çıkartır.

Eğer ilk kez bir dil üzerinde araştırma yapıyorsanız sınıf, nesne gibi kavramlar hatta az sonra aşağıdaki başlıklarda vereceğim kavramlar karışık gelebilir. Bu çok normal ama unutmayın bu konuda bir ilerleme göstermek istiyorsak temellerimizi ne kadar zor olsada sağlam atmamız gerekiyor.

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# Encapsulation (Kapsülleme)
  • C# Inheritance (Miras Alma / Kalıtım)
  • C# Polymorphism (Çok Biçimlilik)

📌 Unutmadan hatırlatmakta fayda var tüm bu sınıf, nesne ve bu C# OOP özelliklerinde sayacağımız kavramları daha detaylı ve örneklerle destekleyeceğimiz konu anlatımları ilerleyen zamanlarda sizinle paylaşmış olacağım. Bu konulardan haberdar olmak isterseniz aşağıda bulunan yorum yap kısmından bu durumu benimle paylaşabilir ✍🏻 ya da sağ tarafta bulunan e-posta bültenine abone olabilirsiniz. 🥰

C# Abstraction (Soyutlama)

Nesneye yönelik programlamanın temelini oluşturan sınıfların özelliklerini ve sergileyecekleri davranışların tanımlanmasını gerçekleştiren kavram olarak tanımlayabiliriz. Burada bahsettiğimiz özellikleri ve davranış ayrımlarını şu şekilde anlatabilirim. Bir arabayı ele aldığımızda araba sınıf olur, bu arabanın rengi, modeli, motor gücü, üretim yılı gibi kavramlar özelliklerini anlatırken, Hızlanması, fren yapması, vites geçişleri, durması gibi özellikler ise davranış yapılarını tanımlar ve bunları abstract metotlar ile gerçekleştiririz.

C# Encapsulaation (Kapsülleme)

Kendimizden yola çıkarak kapsülleme kavramını ele alalım. Çeşitli özelliklerimiz ve davranış alışkanlıklarımız var fakat bu özellik ve davranışların çok az bir kısmını dış çevre ile paylaşıma sunarız. Aynı şekilde 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 kavramını daha iyi anlayabilmek için erişim seviyelerinin çalışma mantığı hakkında bir fikrimizin olması gerekmektedir. Bu yüzden aşağıdaki görseli inceleyerek, erişim seviyelerinin ulaşılabilirlik seviyeleri hakkında bir fikri sahibi olabilirsiniz.

C Sharp Erişim Seviyeleri
C# Kapsülleme Erişim Seviyeleri

C# Inheritance (Miras Alma)

Şirket kavramını tekrar ele alacak olursak, büyük şirketlerin genelde farklı illerde, ülkelerde bayileri bulunur. Bu bayiler ana şirkete bağlı ve ana şirketin belirli özelliklerine sahip oluşumlardır.

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 türeyen alt sınıflar her zaman üst sınıfın izlediği politikayı ya da gösterdiği davranışları göstermek zorunda değillerdir. Buradan yola çıkarak alt sınıfların, üst sınıflardan farklı davranışlar sergilemesine çok biçimlilik denilmektedir diyebilirim.

🤨 Peki, C# OOP Nedir sorusuna cevap bulduk, özelliklerini öğrendik fakat bize, programlarımıza sağlamış olduğu faydalar varsa bunlar nedir diye merak edecek olursanız aşağıdaki başlıkta yer alan maddelere göz atabilirsiniz.

C# Nesneye Yönelik Programlama Nedir?
C# Nesneye Yönelik Programlama

C# OOP Faydaları

C# OOP Faydaları, bir çok kaynak üzerinde farklı, kapsamlı teorik bilgiler ve ağır bir dille anlatılıyor. Bu karmaşıklığı ve akıl karıştırıcı bilgileri bırakarak aşağıdaki maddelere göz atarsanız bizleri ve kullanım esnasında programlarımızı neler bekliyor aklınız karışmadan anlayabilirsiniz.

  • Nesneye yönelik programlama faktörleri gözetilerek inşa edilmiş bir programın üzerinde yapılacak bir değişiklik programın bütününde eş zamanlı bir şekilde gerçekleşir.
  • Oluşturduğunuz nesnelerin yapıları birbirinden bağımsız olacağı için bilgi gizliliği sağlamış olursunuz.
  • Programınızı oluştururken karşılaşacağınız süreç kısalır ve programın performansı artar.
  • Oluşturmuş olduğunuz nesneleri herhangi bir sınıf içerisinde tüm özellikleri ile kullanma imkanınız olur.
  • Gereksiz kod uzunluklarının önüne geçerek, daha önce oluşturmuş olduğunuz bir kod bloğunu her yerde kullanma imkanınız olur.

Teorik bilgilerin uygulanmaya geçilmediği zaman, örnek ile konuyu pekiştirmediğimiz zaman fazla etkili bir bilgi verme yöntemi olmadığını biliyorum fakat ilerleyen konu paylaşım periyotlarında C# OOP Nedir sorusunu tekrar ele alarak içerisinde bulundurduğu özelliklerine özel konu başlıkları oluşturarak güzel bir anlatım gerçekleştireceğim.

Bu konuda daha detaylı bir bilgi isterseniz syntax yapısının benzerliği ve yapı olarak aynı sayılacak Java dilinde paylaşmış olduğum C# OOP özellikleri konusuna buradaki emrecelen.com.tr/java/ adresten ulaşım sağlayabilirsiniz.

Fedakarlık göstererek harcayacağımız her bir zaman, ilerleyen zamanlarda bize olgun meyvelerini ikram edeceğini unutmayın. Konu karmaşık ve zor gibi gözükse de oldukça zevkli ve eğer yazılım alanında bir kariyer planı hayalimiz varsa muhakkak öğrenmemiz gereken bir kavram. Bu kavram hakkında Microsoft tarafından paylaşılan kaynağa göz atmak isterseniz buraya tıklayabilirsiniz.

C# OOP Nedir konumuz ile birlikte bizi ilerleyen konu anlatımlarında daha karışık kavramlar bekliyor olsada bu yolda paylaşacağım konuların işleyişi hakkında bir öneriniz varsa ya da konu içerisinde anlamadığınız bir şey, aklınıza takılan bir soru işareti varsa aşağıda bulunan yorum yap kısmından benimle bu olayları paylaşabileceğinizi unutmayın. 👋🏻

Yorum Yap

Yazar Hakkında

Yazmayı, öğrenmeyi, öğrendiklerini paylaşmayı , kodlamayı ve günün birinde Yönetim Bilişim Sistemleri Uzmanı olmanın hayalini kuran birisiyim.

Yorum Yap