Programação Orientação Objeto
O conceito
O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos que incorporam estrutura de dados e um conjunto de operações que manipulam estes dados.
Classes
Em programação uma Classe representa uma entidade e como tal define o seu comportamento (Métodos) e as suas características (Propriedades).
Aos acontecimentos que podem ocorrer para uma dada entidade em determinada altura, chama-se Eventos.
Ex:
Entidade (Classe): Pessoa
Características (Propriedades): Altura, peso, etc
Comportamento (Métodos): Andar, Correr, Comer, etc
Eventos: AoAcordar, AoDeitar, etc .
Comparação entre Classes e Objetos
Uma Classe consiste na definição de uma entidade, (com as suas propriedades, métodos e eventos) enquanto um objeto representa um "exemplar" de uma entidade.
Ex: Classe à Pessoa
Objeto à João
Requisitos numa linguagem OOP
Além do conceito de classes e objetos, existem vários outros conceitos que devem ser observados numa linguagem de programação, para que esta possa ser considerada OOP:
Abstração
Encapsulamento
Herança
Interfaces
Polimorfismo
Abstração
Este é um dos conceitos básicos quando se fala de OOP. Antes de definir uma classe é importante consumir algum tempo e pensar como fazê-la.
Por exemplo, quando se vai ao caixa Eletrônico existem várias opções à disposição. Se quiser sacar dinheiro basta escolher a opção "Saque", e embora "por trás" isso desencadeie vários processos, estes não são visíveis para quem usa o caixa.
O que se ganha com isto? Uma Classe é definida uma vez, mas é susceptível de ser utilizada N vezes por nós ou por terceiros. Com a abstração vem uma maior facilidade de utilização da classe, diminuição da probabilidade de enganos, aumento de rapidez do desenvolvimento e melhoria da legibilidade do código.
Encapsulamento
É o processo pelo qual se escondem os detalhes de implementação