Kodlamada OOP ne için kullanılıyor?

Deluxonik

Hectopat
Katılım
19 Nisan 2020
Mesajlar
575
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Selamlar, kodlama ilk öğrendiğim zamanlar OOP'den bir haber olduğum için classlar ile hiç ilgilenmedim. Hep zor gelirdi, şuan biraz öğrendim lakin nerede kullanabileceğimi hiç kestiremedim. Mesela bir class açmadan düz bir variable açmak daha mantıklı geliyor, aradaki fark tam olarak ne? OOP öğrenmezsem ne kaybederim? (Object Orianted Programming) (Python/C/C++)
 
Bilinen her şey nesnelerden oluşuyor. Hem sanal alemde hem gerçekte bu böyle. Nesne Yönelimli Programlama programlamanın çok büyük bir alanını oluşturuyor. Her projede mutlaka kullanılır. Zaten OOP demek yazılımın temeli demektir. Kesinlikle öğrenmelisiniz. İlerlemek istiyorsanız öğrenmek zorundasınız.
 
Bilinen her şey nesnelerden oluşuyor. Hem sanal alemde hem gerçekte bu böyle. Nesne Yönelimli Programlama programlamanın çok büyük bir alanını oluşturuyor. Her projede mutlaka kullanılır. Zaten OOP demek yazılımın temeli demektir. Kesinlikle öğrenmelisiniz. İlerlemek istiyorsanız öğrenmek zorundasınız.
Ha normal bir variable kullanmışım ha class kullanmışım, farkı tam olarak ne oluyor? Pointerler de aynı şekilde saçma geliyor, değişkenin kendisine ad ile erişmek var iken neden onun adresini tutan başka bir değişken oluşturuyoruz ki? Bunların olayı ne oluyor tam olarak? Kullanım alanları neler?
 
OOP bende ilk öğrenirken saçma filan diyordum senin gibi düşünüyordum gerek yok class oluşturmaya filan diyordum ama ilerleyen zamanlarda projeyi tamamlarken önemini orada anladım daha kolaylık sağlıyor. Mesela kapsülleme var get ve set ile oluşturuluyor. Her defasında yeniden yazmak yerine direkt bu oluşturduğumuz fonksiyonları çağırırsak daha kolaylık sağlıyor. Ayrıca diğer kavramları da var. Soyutlama (abstraction),kapsülleme (encapsulation),miras alma (ınheritance),çok biçimlilik (polymorphism). Tabii bunlarında kendi arasında özellikleri, kuralları ve farkları var.
 
Variable ilk başlarda yeterli gelebilir ama ilerde çok basit kalıyor. Classlarda nesne tanımlayabilirsin. Nesnelere özellik verebilirsin. Bunun gibi daha başka şeyler yapılabiliyor. Pointer ise mesela main fonksiyonunda tanımladığın bir değeri normal şartlarda main fonksiyon dışında kullanamazsın ama pointer kullanarak main fonksiyon dışında da değeri çağırabilirsin. Bunları sadece örnek olarak verdim. İlerleyen zamanlarda başka şeyler için de gerekli olacak.
 
Bir paradigma sadece. Ogrenirsen vizyon katmasi acisindan iyi olur. Hic ogrenmeden de cogu projeyi yapabilirsin.

OOP yapinca daha iyi projeler gelistirmis olmuyorsun, sadece programin isleyisi, mimarisi ve gelistirilmesi bu temellere gore sekilleniyor, o kadar. Paradigma genel olarak problem cozme sekli gibi dusunebilirsin, programlama semsiyesi altinda. Ornegin denklem kurma problemlerinin hepsini analitik duzlemde esitsizlikler, dogru ve parabollerle cozebilirsin. "Cozum kumesi" kavrami da buradan gelir zaten. Belirli bir alandaki noktalar kumesi cozumu saglar. Ya da coktan secmeli tum sorulari yanlis cevabi eleyerek cozebilirsin. Bu bahsettigim seylerin hepsi aslinda "paradigma". Kimisi x,y,z kavramlariyla soru cozer, kimi analitik duzlemde cozer, kimisi siklardan gidip cozume ulasir. Her paradigmanin is yaptigi soru modeli farklidir.

Bu arada Class kullaninca OOP yapmis olmuyorsun. Class'i sadece data modellemek icin kullanabilirsin. Bu kavram icin bazi dillerde ozel class'lar var, ornegin Kotlin -> data class: Data classes | Kotlin

OOP yapman icin sorumlulugu class'lara duzgun dagitman, inheritance ~ polymorphism yasalarini yine class'lara karmasikligi minimize ederek paylastirman, classlarin olusturulmasinda ve yok edilmesinde belirli paternler takip etmen ve yazilimin her noktasinda bu yaklasimi surdurmen gerekiyor. Elbette kullandigin programlama dilininin de bunu desteklemesi sart.

Mesela bir class açmadan düz bir variable açmak daha mantıklı geliyor

Variable ile Class birbirinin alternatifi seyler degil zaten. Mesele variable tanimlamak degil, nerede tanimlayacagina karar vermek.
 
Son düzenleme:

Yeni konular

Geri
Yukarı