Nesne yönelimli programlamadaki nesnelerin, mantık olarak gerçek hayattaki nesneler ile benzer olduğu düşünülebilir.
Nesne yönelimli düşünmeye başlamanın en güzel yolu, otomobiller, telefonlar, müzik çalarlar v.b. gibi gerçek dünyamızdaki nesnelere bakmaktır. Farkına varacaksınız ki bu nesnelerin tamamında kendilerine özgü durumu ve davranışı mevcuttur. Örneğin, otomobillerin sadece değişik durumları (ör: model adı, rengi, anlık hızı, benzin seviyesi) değil aynı zamanda değişik davranışları (ör: hızlanma, frenleme, vites değiştirme) da vardır. Aynı zamanda kimi nesne çok basit olabildiği gibi, kimi nesne de oldukça karmaşıktır. Karmaşık nesneler (otomobil gibi) kendilerine özgü durum ve davranışı olan birden fazla küçük basit nesnenin birleşiminden oluşurlar. Ayrıca otomobil çok karmaşık bir nesne olsa bile, onunla etkileşim kurabilmeniz için sadece birkaç şey bilmeniz yeterlidir. Mesela araba kullanırken, aracın hızlanmasını ya da fren yapmasını istediğinizde, ilgili noktaya müdahale etmeniz yeterlidir. İşin arka perdesinde neler olduğunu bilmek zorunda değilsiniz.
Bir yazılım nesnesi, kavramsal olarak gerçek dünyadaki nesnelere benzer. Yazılım ortamında bir nesne durumlarını alanlarda (fields) depolar ve davranışlarını metotlar (methods) aracılığıyla ortaya çıkartır. Nesne üzerindeki bir metot tetiklendiğinde, metot içindeki karmaşayı düşünmenize gerek kalmadan gayet yeterli açıklanmış işlem sonuçlarını elde edebilirsiniz. Karmaşıklığı gizleme kavramına kapsülleme (encapsulation) denmektedir. Bu da nesne yönelimli programlama ile ilgili öğreneceğiniz bir çok başlıktan bir tanesidir.