Programação orientada a objetos (POO)

O que é:

Um dos paradigmas de análise, projeto e programação mais utilizados ultimamente. Pois é a que mais se aproxima de como expressamos as coisas na vida real.

Na POO, Implementa-se classes que definem os objetos do sistema. Essas classes definem como o objeto se comportará através de métodos e estados possíveis (atributos), assim como um possível relacionamento com outros objetos.

Principais Vantagens da POO:

  • Maior facilidade para reutilização de código e por conseqüência do projeto
  • Possibilidade do desenvolvedor trabalhar em um nível mais elevado de abstração
  • Utilização de um único padrão conceitual durante todo o processo de criação de software
  • Maior adequação à arquitetura cliente/servidor
  • Maior facilidade de comunicação com os usuários e com outros profissionais de informática.
  • Ciclo de vida mais longo para os sistemas
  • Desenvolvimento acelerado de sistemas
  • Possibilidade de se construir sistema muito mais complexo, pela incorporação de funções prontas
  • Menor custo para desenvolvimento e manutenção de sistemas.

Conceitos Básicos:

  • classe – é o molde do objeto, um programador define uma classe por onde todos os objetos serão moldados. Um exemplo de classe seria a classe humano.
  • Objeto – é a instancia de uma classe, um objeto contém características (atributos), é capaz de interagir com outros objetos e de executar ações (métodos). Exemplo de um objeto da classe humano seria Pedro, Rafael, Carol.
  • Atributo – São características de um objeto. Exemplo de atributos da classe humano seria nome, e-mail, idade, sexo, CPF.
  • Método – Define ações do objeto. Exemplo de métodos da classe humano seria andar, falar, correr.
  • Herança – É o mecanismo pelo qual uma classe (sub-classe) pode estender outra classe (super-classe), aproveitando suas ações (métodos) e características(atributos). Um exemplo de herança: Mamífero é super-classe de Humano. Ou seja, um Humano é um mamífero.

Algumas linguagens orientadas a objetos:

Smalltalk, Python, Ruby, C++, Object Pascal, Java e C#

Algumas linguagens com suporte a orientação a objetos:

Perl (a partir do 5), PHP (a partir do 4.0), ColdFusion, Javascript, ActionScript e VB.NET