Bu ise emin değilim aslında soru cevaplar, ama "gerçek hayatta" OO düşünmek için en iyi yolu, Nygaard Classification düşünmek için:
ObjectOrientedProgramming. Bir program yürütme dünya ya gerçek veya sanal parçanın davranışını simüle eden, fiziksel bir model olarak kabul edilir.
Peki siz kodu yapmak için çalışıyoruz ne yapmak için fiziksel bir aygıtı kurmak istiyorsunuz? Muhtemelen "Form" nesne çeşit olurdu, ve form nesnesi küçük sekmeler veya farklı Form değişkenleri temsil etmek için kendisine bağlı bit olurdu, ve sonra bir yuvaya Form nesnesi alacağını bir Validator nesnesi kuracağına geçersiz olsaydı formu geçerli ve başka olsaydı ve sonra bir ışık yanıp söner. Ya da Validator da "geçerli" yapmak için (sadece Validator anlaşılan) bir yuva Form nesne almak ve (muhtemelen aynı bir) Form nesneyi döndürmek, ancak çeşitli şekillerde değiştirilmiş olabilir. Ya da belki bir Validator part bir Form ve böylece Formu bunun dışına taşıyorsa bu Validator şeyini vardır ...
Benim açımdan, böyle bir makine gibi görüneceğini hayal etmeye çalışın ve nasıl çalışır. Sonra bu makine parçalarının tüm düşünüyorum, ve her biri bir nesne yapmak. Bu nasıl "object-oriented" doğru şeyler, "gerçek hayatta" çalışmak değil mi?
Bunu dedi, bir sınıf "uzanan" ne demektir? Eh, bir sınıf nesneler için bir "şablon" - her nesne örneği bir sınıf onu bina yapılır. Bir alt sınıfın bir üst sınıfından "miras" bu sadece bir sınıftır. interface kalıtım ve implementation kalıtım: Java'da en az iki kalıtım türü vardır. Java'da, bir defada en çok bir sınıf uygulaması (gerçek yöntemi kodu) devralmak için izin verilir, ancak birçok arayüzleri devralabilir - Birisi sınıfın dışından görebilirsiniz temelde niteliklerinin sadece koleksiyonları.
Ayrıca, OO programlama hakkında düşünme ortak bir yol yerine "yöntemi çağrılar" "mesajları" (düşünmek aslında, bu aslında "nesne çağrılacak ilk dil Smalltalk için Alan Kay tarafından icat orijinal terim, ) "odaklı. Eğer nesneye isEmpty
mesaj göndermek zaman, bunu nasıl cevap istiyorsun? Eğer isEmpty
mesajla farklı argümanlar göndermek ve farklı yanıt var edebilmek olmak ister misiniz? Yoksa farklı nesnelere isEmpty
mesaj göndermek ve onlara farklı yanıt olmasını istiyorsun? Ya kod tasarımına bağlı olarak, uygun cevaplar.