it-swarm.asia

En iyi nasıl öğrenilir OOP kavramlar / ilkeler pratik olarak?

Nesneye yönelik programlama dilini öğrenmek istedim, sadece OOP kavramını bilmek için herhangi bir amaç için istemiyorum. Peki birisi bana hangi dili öğrenmeye başlamam gerektiğini söyleyebilir mi?

12
Caffeinatedwolf

Bazı öneriler:

  • Şimdiye kadar okuduğum en iyi kitap OOP bar hiçbiri Bertrand Meyer Nesneye Dayalı Yazılım Yapısı . ama çok düşünün ama OO ilkelerini açıklamak için gördüğüm en iyi işi yapıyor.

  • Diller gelince: C++ 'dan uzak dururum. Öğrenme amaçları için çok büyük. Eğer gerçekten anlamanıza yardımcı olacak bir dil istiyorsanız OO (ana uygulamaları yazacağınız/kullanarak iş bulacağınız dilin aksine) Smalltalk veya Eiffel'e ( Meyer'ın yukarıdaki kitabı).

  • Biraz daha yaygın ancak yine de sadakatle destekleyen bir dil istiyorsanız OO ilkeleri o zaman Python iyi bir bahistir. Java = & C # statik yazma istiyorsanız da iyi.

Dikkat edilmesi gereken bir kelime: dil size OO öğretmez. Sadece OO kavramları ne kadar iyi desteklediğine yardımcı olabilir (ya da engelleyebilir). Learning OO gerçekten öğrenmekle ilgilidir düşünün OO terimler. Bunun için Meyer kitabına geri dönecektim.

hth.

13
sfinnie

OOPS'u denemek için C++, Java, C # vb. Gibi nesneye yönelik dillerden herhangi birini öğrenebilirsiniz.

Gerçekten OOP öğrenmek istiyorsanız, dillerin ötesinde düşünmeniz ve bunun, bu gerçek dünyada onları nasıl yönettiğimiz gibi, yazılım programlarında yer alan manga karmaşıklığına yardımcı olan bir paradigma olduğunu anlamanız gerekir. Daha sonra OO Polimorfizm, Kalıtım, Kapsülleme (PIE) vb.

Grady Booch'un Çok Nesneye Dayalı Analiz ve Uygulamalarla Tasarım (2. Baskı) hakkında iyi kitaplar var

Ayrıca, bunun gibi blogları deneyebilirsiniz- fascinatingoops.com

12
WinW

OOP öğrenmek ister misin? Bir cevap - Smalltalk.

Zarif bir dildir ve OO çekirdeğe. OOP başından öğreneceksiniz ve diğer tüm dikkat dağıtıcı şeylerden etkilenmeyeceksiniz) diller birleşmeyi başarıyor.

Smalltalk kazanır. Ve bazı iyi ücretsiz e-kitaplar da var (bakınız: Stephane Ducasse )

3
Simon Knights

C++ ya da Smalltalk gibi atalardan birini öğrenmeniz gerekir. C++, nesne yönlendirme, bellek yönetimi, referans ve değer gibi kavramlar arasında temiz bir ayrım sunar ve güçlü bir genel desteğe sahiptir.

Java veya C # gibi bir .NET dili öğrenmeyin. Java gibi bir dil öğrendiğinizde, “Nesneler her zaman yığın halindedir ve her zaman referanstır” gibi şeyler öğrenirsiniz. sadece Java için doğrudur ve OOP için kesinlikle doğru değildir.) Kavramların bu birleşimi (nesne yönelimi, bellek yönetimi, referans vs değer) çok tehlikelidir ilk dil için, çünkü onları bir kez kafanıza taktırırsanız, onları geri almak çok zor olabilir C # biraz bu konuda daha iyi ama fazla değil. zayıf jenerik programlama desteği ile "Kalıtım bir çekiç ve her şey bir çividir" öğretme eğilimi yüksektir.

3
DeadMG

Öğrenmenin en iyi yolu OOP kavramları gittikçe daha fazla kod yazmak ve sık sık incelenmesini sağlamaktır.

Gerçek dünya senaryolarını düşünün, bir sorun bildirimi tanımlayın - kodda çözün ve gözden geçirin. Yardımları her zaman https://codereview.stackexchange.com/ incelemeler için alabilirsiniz :)

Mutlu kodlama !!!

1
karthiks

Adımlar

  1. Ne anlama geldiğini öğrenin.
  2. Bunları nasıl uygulayacağınızı öğrenin.
  3. Geliştirmek için bir proje alın, dilinizi seçin [VB.NET veya C # veya C++ gibi entegre OOPS ilkesi olmalı veya Java vb.)
  4. OOPS'un proje mantığını nasıl basitleştirin düşünün. [Not: OOPS'u sadece uygulamayın çünkü onlara sahip olmak istediniz, amacınızı çözmeleri gerekir]
  5. Unutmayın: Hatalarınızdan da öğreneceksiniz .
0
Chris

OO dünya ile ilk temasım kötü bir başlangıç ​​değildi C++ idi. Ama Python öğrenirken çok geliştim. Fark dillerden geliyor: fikir denemek ('nasıl yapabilirim C++ bir OO moda? ') bu sorunu çözmek için daha fazla kod gerekiyor ve Python aynı fikri denemek çok daha fazla tuzak içerir.

0
rocksportrocker

OOP öğrenmeye çalışırken başka bir dile bakmanız gerektiğini düşünmüyorum. Bana göre, teoriyi kavramak ve sonra zaten bildiğim bir şeyle ilişki kurabilirsem uygulamayı uygulamayı öğrenmek daha kolay. Yeni bir sözdizimi bulmak sadece engel olur.

Herhangi bir OOP kitapla başlayabilirsiniz. Yine, kendi dilimde bir tane alırdım. Yeniden düzenleme üzerine bir kitap okumak (OOP Style) OOP uygulamasında bana yardımcı oldu. Mevcut bir projeyi aldım (Gereksinimlerin toplanmasından rahatsızlık yok) ve onu geliştirmek için yeni yollar buldum. OOP uğruna sadece OOP değildi. Ardından, yeni bir projede baştan sona nasıl yapılacağını öğrenebilirsiniz. Buradaki mantık, başlangıçtan itibaren her zaman doğru şekilde elde edemeyeceğinizdir. Nerede uygun olduğunun farkına varırsanız, daha iyi olursunuz. Çoğu şey gibi her sorunu çözmez.

Bazı dillerde kesin sınırlamalar vardır. Amacınız birden fazla mirasın efendisi olmaksa, .NET dışarıdadır.

0
JeffO

Burada geleneksel düşünceye karşı çıkacağım ve kullanarak OOP için en kolay diller mutlaka öğrenme için en iyi dil değildir. İlk önce OOP) maruz kaldım, ancak OOP Perl ile Larry Wall's Camel kitap bölümünü okuyana kadar “alamadım”. Nedense bir sınıfa açık bir şekilde kutsama bir nesne girmek zorunda kalana kadar sınıflar ve nesneler arasındaki farkı kavramada sorun yaşadım. OOP = bu detayların hiçbirinin sizden gizlenmediği GObject ile C'ye kadar, dil bilincine sahip bir şirket dersi alana kadar en iyi uygulamaları gerçekten anlamadım, çok büyük bir konu ve bulmanız gerekiyor siz için en uygun olanı öğrenmenin yolları.

0
Karl Bielefeldt