Em capítulos anteriores lidámos com valores (simples ou compostos), os quais são manipulados com vista a calcular algo. Por exemplo, dado um valor inteiro, podemos invocar uma função para o exponenciar, obtendo um novo valor. Este último é outra coisa que não o primeiro, e não foi feita uma transformação ao valor original. Ao passo que um valor não tem identidade e representação no tempo, um objeto é algo que se mantém “vivo”, sendo alterando durante a execução de uma aplicação.
No paradigma de desenvolvimento orientado para objetos, tal como o nome indica, os objetos são a sua essência. Este capítulo aborda a definição de tipos de objetos (classes), e a forma como estes podem ser manipulados. Serão também abordados alguns aspetos relativos ao encapsulamento na definição de classes de objetos.