Günlük hayatta kullanılan pek çok kelime bir sınıflandırmanın sonucu ortaya
çıkmıştır. Örneğin insan, ev, araba vb. kelimeler bir tek nesneyi değil, ortak davranış ve
özellikleri olan nesnelerin tümünü ifade etmek için kullanılır. Araba kelimesi ile tekerlekleri
olan motorlu veya motorsuz her türlü kara taşıtından bahseder Bütün arabaların ortak
davranışları (hızlandırılabilir, durdurulabilir, yönlendirilebilir vb.) ve ortak özellikleri
(tekerlekleri, direksiyonları vb.) vardır. Bu ortak davranışlara ve ortak özelliklere sahip
bütün nesneler için araba kelimesi kullanılabilir. İşte her an belki farkında olmadan yapılan
bu sınıflandırma, nesne tabanlı programlama yaklaşımının temelinde de vardır.
Nesne tabanlı programlamadan önceki tek yaklaşım olan yordamsal programlamada
programlar sadece bir komut dizisi veya birer işlev (fonksiyon) kümesi olarak
görülmekteydi. Bu yaklaşımla çok karmaşık problemlerin üstesinden gelmek oldukça zordu.
Ancak nesne tabanlı programlama yaklaşımının benimsemiş olduğu ve insanoğlunun
düşünme şekline daha yakın olan sınıflandırma yöntemi ile daha karmaşık problemleri
kolayca çözmek mümkün olmuştur.
Nesne tabanlı programlama ile uygulama geliştirirken ilk olarak hangi varlıklar
üzerinde çalışılacağını tasarlamak gerekir. Bir varlık (entity), hangi sınıfları oluşturmak
gerektiği gösterir.