Programação Orientada a Objetos
Programação Orientada a Objeto ( POO )
1. Introdução
O Paradigma da Programação Orientada a Objeto (POO) é um conjunto de bases computacionais que se baseiam na ideia de que o mundo é formado por objetos que podem ser representados. Esses objetos podem ser divididos entre dados e funções, sendo respectivamente suas características e ações que podem tomar. O POO gerencia a complexidade dos problemas os abstraindo e os encapsulando em objetos que podem relacionar e conversar entre si.
O Objeto é o centro e a representação de um conceito real em um determinado contexto de modelagem. Um objeto pode representar um conceito tanto concreto como abstrato, como expressar um carro que no caso seria um objeto concreto e uma equipe de engenheiros que seria um objeto abstrato.
Dentro da história não existe uma única origem para esse paradigma, mas suas contribuições transpassam diversos períodos e tecnologias, tendo contribuições vindas de algumas linguagens de programação, das engenharias de software, das inteligencias artificiais (IA) e dos banco de dados.
2. Usuários de POO.
POO é a base para algumas linguagens de programações como: Java, C++ e Ada.
3. Diferenças do POO
O POO é bem diferente de outros paradigmas, sua abordagem serve para expressar de forma mais modular as divisões do mundo, diferente da Programação Direta o POO usa estruturas como classes e objetos para criar um sistema de código que é mais organizado e mais fácil de ser manipulado e de se realizar manutenção.
4. Aplicação no código
Para POO não existe uma definição formal e universal, mas existem conceitos e características que estão dentro do que é esse paradigma.
Exemplo de Objeto Instanciado em Java:
default– O atributo ou método pode ser acessado apenas dentro do mesmo pacote.public– O atributo ou método pode ser acessado de qualquer lugar do código.private– O atributo ou método só pode ser acessado dentro da própria classe.protected– O atributo ou método pode ser acessado dentro da própria classe, dentro do mesmo pacote e por subclasses (mesmo que estejam em pacotes diferentes).
- Polimorfismo em tempo de compilação (Overload): Relacionado à sobrecarga de métodos e à escolha do método com base nos parâmetros passados.
- Polimorfismo em tempo de execução (Override): Relacionado à sobrescrita de métodos e à invocação de métodos com base no tipo real do objeto instanciado.
- 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.
- Complexidade no aprendizado para desenvolvedores de linguagens estruturadas;
- Maior esforço na modelagem de um sistema OO do que estruturado (porém menor esforço de codificação, sendo uma vantagens);
- Dependência de funcionalidades já implementadas em superclasses no caso da herança, implementações espalhadas em classes diferentes.
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
Comentários
Postar um comentário