Carregar apresentação
A apresentação está carregando. Por favor, espere
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.