Objectgeoriënteerd wil zeggen dat er met objecten gewerkt wordt. Een object wordt beschreven door een 'klasse'. Een klasse definieerd methode en eigenschappen van het object, in mensentaal:
Stel, je hebt een klasse 'Window'. Die heeft dan bijvoorbeeld devolgende methoden:
myWindow->setSize(int width, int hieght) -> om de grootte van je window in te stellen, of
myWindow->getTitle() -> om de titel van je window op te vragen.
De niet-objectgeorienteerde versie hiervan zou een referentie naar het window gebruiken:
SetWindowSize(Window myWindow, int width, int height) bijvoorbeeld.
Het voordeel van deze manier van programmeren is dat je alle methoden die bij een klasse programmeert in 1 logisch geheel kan verpakken, onder java: window.java, gecompileerd heet dit dan window.class en onder c++ window.cpp wordt window.o.
Zo krijg je dus een duidelijk leesbare en logisch ingedeelde source: alle methoden en eigenschappen van de klasse window wonen in window.java (of window.cpp).
Een voordeel van klassen is dat ze overgeërft kunnen worden. Dit wil zeggen dat je bijv. een klasse BlueWindow kan maken, die alle methoden en eigenschappen overerft van de klasse Window. Dus je kan nog steeds setSize() aanroepen om de grootte van je BlueWindow in te stellen. Dit vergt dus geen extra programmeerwerk.
Overigens zijn bijna alle moderne programmeertalen oo (object oriented). Zelf vind ik java een goede taal om mee te beginnen.