Olio on tietorakenteen yleistys johon liittyy joukko sen käsittelemiseen erikoistuneita funktioita eli metodeja.
Oliot ovat ajasta ja paikasta riippuvia, niitä voidaan luoda, tuhota, kopioida ja päivittää. Olioilla on näinollen sisäinen tila eli tietorakenne, joka voi muuttua. Lisäksi olioilla on identiteetti: voidaan tutkia ovatko kaksi oliota sama vai eri olio siinäkin tapauksessa, että niillä sattuu olemaan sama tila.
Olion sisäinen tietorakenne voi sinänsä olla minkälainen tahansa. Erityisesti se voi sisältää toisia olioita tai viittauksia toisiin olioihin. Esimerkiksi opiskelija- olio saattaisi sisältää viittauksen kursseihin, joita hän on suorittamassa tai suorittanut ja kurssi- oliot voisivat sisältää osanottajaluettelon.
Luokka on tietotyypin yleistys ja se määrittelee joukon olioita, jotka ovat rakenteellisesti samankaltaisia, eli niillä on samanlainen sisäinen tietorakenne ja samat metodit.
Metodit ovat aliohjelmia, jotka voivat operoida olion sisäisellä tietorakenteella, muuttaa sen tilaa tai palauttaa tietoa siitä.
Olio on luokan instanssi. Kun luodaan uusi olio, on määrättävä se luokka, josta olio instantioidaan. Esimerkiksi luokasta Opiskelija voitaisiin luoda instanssit Anna Ahkera, Tiina Taitava, Timo Terävä: