A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Linguagens Orientadas a Objeto

Apresentações semelhantes


Apresentação em tema: "Linguagens Orientadas a Objeto"— Transcrição da apresentação:

1 Linguagens Orientadas a Objeto
ALUNO: Álvaro Veloso Neto Linguagens Orientadas a Objeto

2 Conceito de Abstração Conhecer apenas as coisas que são indispensáveis para o uso de algo.

3 Abstração de Processo void ordenaBolha(listaNumeros *lista){ int i = 0; int j = 0; int aux; for(; i < lista->tamanho; i++){ for(j = i + 1; j < lista->tamanho; j++){ if(lista->elemento[i] > lista->elemento[j]){ aux = lista->elemento[i]; lista->elemento[i] = lista->elemento[j]; lista->elemento[j] = aux; } int main(){ ordenaBolha( &listaImpares); ordenaBolha( &listaPares); Facilidade na construção, leitura e entendimento do programa.

4 Abstração de Dados Tipos de dados já estabelecidos e operações Sobre eles Ponto-Flutuante Dados Definidos pelo Usuário Cliente Objeto Interface Mudanças Centralizadas no Módulo class funcionario{ private: int id; public: float salario; data dataNascimento; char* descricaoAtividade(); } int main(){ funcionario motorista; funcionario medico; motorista.descricaoAtividade(); medico.descricaoAtividade(); class relatorio{ private: funcionario motorista; funcionario medico; . public: string geraRelatorioFuncionarios(); }

5 Encapsulamento Modularização (dados logicamente relacionados)
Unidade de Compilação Programas Independentes para Reuso

6 Paradigma de Orientação a Objeto
Programação Orientada a Procedimentos Programação Orientada a Objeto

7 Linguagens O.O Exemplos C++ Eiffel Ada 95 Java Smalltalk

8 Linguagens O.O Herança Facilitar o Reuso Organização
Prejudica o Encapsulamento Herança Múltipla

9 Linguagens O.O Dados Abstratos Dados e métodos sobre esses dados
class funcionario{ protected: int id; public: float salario; data dataNascimento; char* descricaoAtividade(); } class estagiario : public funcionario{ private: char* nomeCurso; int getId(){ return id; Dados Abstratos Dados e métodos sobre esses dados Classes Variáveis da Instancia (objeto) Variáveis da Classe Variáveis Públicas Variáveis Privadas Variáveis Protegidas

10 Linguagens O.O Polimorfismo Estático Dinâmico class poligono { public:
void desenhar(); } class triangulo : public poligono{ void desenhar() { ... }; class quadrado : public poligono{ int main(){ triangulo triang; quadrado quad; triang.desenhar(); poligono polig = quad; polig.desenhar(); Polimorfismo Estático Funções Sobrepostas Dinâmico Definição do tipo de forma dinâmica

11 Linguagens O.O Dados Abstratos Encapsulamento Herança Polimorfismo
Comunicação Eficiente Entre Objetos

12 C++ Encapsulamento Classes Variáveis e Funções
Função Tipo Constructor e Destructor Tipos Incorporados

13 C++ Herança Herança Múltipla

14 C++ Polimorfismo Estático Dinâmico

15 Padrões de Projeto O.O Designs comprovadamente eficientes.
Alterações facilitadas.

16 Padrões de Projeto O.O Acoplamento Fraco e Coesão Forte.
Formas de Acoplamento Atributos Variável local É subclasse Implementa uma interface. Benefícios Classes não são afetadas por mudanças em outras classes. São fáceis de compreender isoladamente. A migração fica facilitada.

17 Padrões de Projeto O.O GoF. Membros Livro Erich Gamma Richard Helm
Ralph Johnson John Vlissides Livro Padrões de Projeto – Soluções Reutilizáveis de Software O.O

18 Padrões de Projeto O.O Strategy Definição Resumindo
“Definir uma família de algoritmos, encapsular cada um, e torná-los intercambiáveis. Strategy permite mudar os algoritmos independentemente dos clientes que os usam.” GoF Resumindo Ter uma interface padrão para diversas estratégias.

19 Padrões de Projeto O.O Strategy

20 REFERÊNCIAS Conceitos de Linguagens de Programação (Robert W. Sebesta)
Use a Cabeça! Padrões de Projetos (Eric Freeman, Elisabeth Freeman) Wikipedia Paradigma de programação Programação procedural Orientação a objetos


Carregar ppt "Linguagens Orientadas a Objeto"

Apresentações semelhantes


Anúncios Google