Programação Orientada a Objetos

Historicamente não há muito acordo sobre o que é exatamente Programação Orientada a Objetos (POO). E talvez nunca haja. O problema começa já pela tentativa de dizer o que é um "objeto". Mesmo este termo pode ser preterido por algo como "entidade".

Considere que estejamos numa casa. Nexte contexto em geral encontramos coisas como garfos, pratos, quartos, portas, etc. Numa perspectiva orientada a objetos, todas estas entidades são objetos. Fato similar acontece quando vamos a um estádio de futebol. Ali nos deparamos com objetos das mais variadas espécies, a exemplo de: bola, jogadores, juízes, bandeiras, lata de refrigerante, etc. Em realidade, a própria casa e o estádio de futebol podem também ser vistos como objetos.

Os exemplos acima são de contextos nos quais os objetos são reais (concretos). Estes objetos existem na realidade e podem, portanto, ser percebidos e distiguidos por nossos sentidos. Há

Um objeto é qualquer entidade que seja identificável e distinguível num certo domínio (contexto).

A conclusão é que nosso mundo é povoado por objetos.

Em geral a POO é caracterizada por um conjunto de abstrações que são freqüentemente encontradas sm suas diversas implementações. Dentre estas abstrações estão: