Un objeto se puede ver como una "cápsula" de datos y algoritmos que trabajan sobre esos datos.Un objeto no puede acceder directamente a sus datos (atributos). Los atributos son sólo accesibles desde la implementación de los
métodos de una clase. Un objeto no puede "manipular" sus propios datos, para ello están los métodos de la clase de dicho objeto: el comportamiento (métodos) de un objeto puede variar el valor (estado) de sus datos (atributos).
Por ejemplo, nunca debemos hacer lo siguiente: miCoche.color := 'rojo'. Para esto definiremos métodos que actualicen el valor de los atributos de un objeto, por ejemplo: miCoche.ponerColor('rojo').
En la POO, un objeto no es algo "eterno", se instancian (crean) y se destruyen. Una vez que se haya instanciado un objeto puede recibir mensajes. Los objetos pueden instanciarse
de forma estática o de forma dinámica (recordar estos conceptos de capítulos anteriores). Un objeto estático comienza su existencia una vez es declarado (instanciación de objetos estáticos), sin embargo, un
objeto dinámico no comienza su existencia al ser declarado, sino al recibir un espacio de memoria (instanciación dinámica de objetos). Por ejemplo:
Los objetos "se declararán" como atributos de las clases, en las claúsulas var de los métodos o en la lista de parámetros de los métodos. El único objeto que debe ser "declarado" en el programa principal será el de la clase raíz
de toda la jerarquía de clases (por cuestiones del lenguaje Pascal orientado a objetos). Los objetos estáticos existendurante la ejecución del programa. Los objetos dinámicos existen mientras no sean destruidos(liberación de
la memoria del objeto), mediante la sentencia dispose.
Tras ser instanciado, un objeto consta de los atributos de la clase a la que pertenece, y puede recibir mensajes. Dicho objeto determinará a qué método de su clase corresponde dicho mensaje. Un objeto no podrá recibir mensajes
correspondientes a métodos de una clase a la qe no pertenezca. Por ejemplo: