sexta-feira, 19 de fevereiro de 2010

Programação Orientada a Objeto (POO)

CONCEITOS BÁSICOS:

Para entender o que é a POO, devemos ter noção de alguns outros conceitos. São eles: Abstração, classe, objeto, encapsulamento, herança e polimorfismo.

Abstração: Para POO, é muito impotante haver a abstração de dados para uma melhor execussão do programa. A abstração é saber usar os dados relevantes de um problema. Apartir da abstração é que se pode criar classes e objetos.

Objeto: Na computação é a representação de algo que existe. Deve-se abstrair um objeto real para representa-lo. Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele. Ele pode ainda enviar mensagens a outros objetos. Os objetos possuem características como: Identidade, estado e comportamento.

Encapsulamento: É a habilidade de esconder informações. Um objeto envia uma mensagem para outro objeto apartir das necessidades dele, no entanto, o objeto que recebe as informações não conhece as "necessidades" do anterior pois ele está encapsulado. É como se um chefe lhe pedisse para imprimir um documento que você não conhece para resolver um problema.

Visibilidade: Algumas partes dos objetos são publicadas e outras são privadas. Os métodos e propriedades publicadas serão a interface do objeto. É o que espera que o desenvolvedor utilize de seu objeto.

Classe: Representa um conjunto de objetos com características afins. Uma classe define o comportamento dos objetos através de seus métodos, e quais estados e quais estados ele é capaz de manter através de seus atributos. As classes na computação são semelhantes há espécies no mundo real. Exemplos: Humanos, cães, gatos...

Subclasses: É uma classe originada de outra classe mais abrangente.

Atributos: São os atributos dos objetos (o que vai representar a classe). Exemplo: Funcinário possui: nome, endereço, cpf, etc. Atributos possuem valores. Exemplo: o atributo cor possui o valor preto, o atributo número possui o valor 5, etc.

Herança: É usada para criar objetos que têm tudo que outro objeto tinha e possui alguns detalhes próprios. A herança nos permite criar objetos apartir de outro objeto alterando suas propriedades e métodos. Exemplo: Pegamos um grupo de pessoas que possuem identidade, cpf, etc. e acrescentamos à classe funcionários. Dessa forma aproveitamos todas as propriedades existentes e acrescentamos mais algumas.

Polimorfismo: Tratar alguns objetos como outros objetos por possuírem características em comum. Seria como se chamássemos os funcionários do exemplo acima como pessoas por possuírem características identicas devida herança. O contrário não pode ser feito, pois o objeto funcionários possuem características inexistentes em pessoas.

Método: Define habilidades dos objetos. Exemplo: Dudu é da classe gato, portanto mia, implementado apartir de UmMiado. um método em classe é apenas uma definição, a ação só ocorre quando o método é invocado pelo objeto (Dudu).

Mensagem: É uma chamada de um objeto para invocar um de seus métodos. Ativando o comportamento descrito pela classe.

Associação: É o mecanismo pelo qual um objeto utiliza os recursos do outro. Pode tratar-se de uma associação simples "usa um" ou de um acoplamento "parte de". Exemplo: Um humano usa um telefone. A tecla "1" é aprte de um telefone.

Pacotes: Referência para organização lógica de classes e interfaces.