1 / 28

Uma palavrinha importante em POO ( P rogramação O rientada ao O bjeto)

Albert Einsten. Orlando Silva. Ari Barroso. Uma palavrinha importante em POO ( P rogramação O rientada ao O bjeto). reúso. Vou tornar a usar a Relatividade Restrita... Vou reusá-la para desenvolver a Geral!. Vou dar novo uso às minhas músicas... Vou reusá-las em um novo CD!.

bairn
Download Presentation

Uma palavrinha importante em POO ( P rogramação O rientada ao O bjeto)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Albert Einsten Orlando Silva Ari Barroso Uma palavrinha importante em POO (Programação Orientada ao Objeto) reúso Vou tornar a usar a Relatividade Restrita... Vou reusá-la para desenvolver a Geral! Vou dar novo uso às minhas músicas... Vou reusá-las em um novo CD! • tornar a usar; • dar novo uso a; • efetuar a reuti- • lização. Vou efetuar a reutilização das minhas músicas...Vou reusá-las em um novo ritmo!

  2. Introduzindo a POO Classe Animal Herança simples Mamifero Marinho Inseto Leao Homem Peixe Mosca Barata Herança múltipla: Homosca é um Homem e uma Mosca. Também é um Animal, Mamífero e Inseto. atributos Homosca operações

  3. Introduzindo a POO: brincadeirinha... Objeto Animal Objeto Objeto Herança simples Felino Cervideo Canino Gato Leao Veado Lobo Cachorro Objeto Sou filho de famosos! Herança múltipla LeaoLobo

  4. - private # protected + public virtual * -> new delete Outras três palavrinhas importantes em POO • encapsulamento; Propriedade de uma classe incluir ou encerrar atributos e operações. Propriedade de uma classe transmitir atributos e operações para as suas descendentes. • hereditariedade; • polimorfismo. Propriedade de uma classe se apresentar sob numerosas formas; multiforme.

  5. UML (Unified Modeling Language) • é a especificação mais usada da OMG • é o meio de modelar: • estrutura da aplicação • comportamento • arquitetura • processos de negócios • estruturas de dados • www.uml.org Object Management Group Veja na Internet: é “di grátis”!

  6. k i j Edsger Wybe Dijkstra Classes em UML e C++(Unified Modeling Language) em C++ class { ... }; Exemplo de anotação em UML. As anotações em UML podem se transformar em comentários C++: // de linha /* de bloco */ Nome da Classe atributos operações Um dos pais da Programação Estruturada

  7. Visibilidade em UML e C++ em C++ class { ... private: ... }; em C++ class { ... protected: ... }; # - protegida privada Dois pontos! Dois pontos! em C++ class { ... public: ... }; + pública Dois pontos!

  8. Chacrinha Classes e visibilidade em UML Se isto é tudo que você pode ver, vá estudar! Exemplo de uma classe com atributos e operações representadas. Exemplo de uma classe com atributos e operações surpimidas. Aluno Aluno privado • - nome: String • - idade: Integer protegido • + setNome(nome: String) • + getNome(): String • # calcMens(): Double • - calcDesc(): Double público

  9. UML e C++: encapsulamento Geralmente não significa obrigatoriamente. Pense sempre em REÚSO! • Programamos geralmente dados privados com métodos públicos: • construtores padrão, de cópia, • etc (mesmo nome da classe); • destrutores (~); • atribuidores (=); • acessores (set(s) e get(s)); • etc. Métodos que realizam acesso, não confunda com assessor! Nome da Classe em C++ private: - atributos # em C++ protected: + operações em C++ public:

  10. Representação de objetos em UML Exemplo de um objeto não intitulado com classe identificada. Exemplo de um objeto com classe identificada. sublinhado luisInacioLula: Presidente : Presidente Exemplo de um objeto intitulado com classe não identificada. objeto dois pontos classe luisInacioLula:

  11. Bjarne Stroustrup Quatro pontos importantes em C++ É um construtor que não requer argumentos. Se você não definir, o C++ definirá! • construtor padrão; • construtor de cópia; É um construtor que possui um único parâmetro do mesmo tipo que a classe. Se você não definir, o C++ definirá! • destrutor; • atribuidor. É chamado automaticamente quando o objeto sai do escopo. Se você não definir, o C++ definirá! Se você não definir, o C++ definirá! É um operador utilizado na atribuição (imputação de valores de um objeto para outro). Se você não definir, o C++ definirá! Criador da Linguagem C++

  12. Quatro pontos importantes em C++ • construtor padrão: class NomeDaClasse { ... NomeDaClasse(); ... }; NomeDaClasse::NomeDaClasse() { ... } Definição do construtor padrão Definição da classe NomeDaClasse *xp = new NomeDaClasse(); ... delete xp; Chamada do Construtor Chamada implícita do Construtor NomeDaClasse x; Chamada explícita do Construtor NomeDaClasse x = NomeDaClasse();

  13. Quatro pontos importantes em C++ • construtor de cópia: class NomeDaClasse { ... NomeDaClasse(NomeDaClasse x); ... }; Definição da classe NomeDaClasse::NomeDaClasse(NomeDaClasse x) { ... } Definição do construtor de cópia

  14. Quatro pontos importantes em C++ • destrutor: class NomeDaClasse { ... ~NomeDaClasse(); ... }; Definição da classe NomeDaClasse::~NomeDaClasse() { ... } Definição do destrutor

  15. Quatro pontos importantes em C++ • atribuidor: class NomeDaClasse { ... NomeDaClasse & operator =(NomeDaClasse &x); ... }; Definição da classe NomeDaClasse & NomeDaClasse::operator =(NomeDaClasse &x); { ... } Definição do atribuidor

  16. retângulo b a Dennis Ritchie Brian Kernighan Exercício 01: elabore uma classe C++ para abstrair o conceito de retângulo. Faça reúso em uma aplicação console. 30 minutos! • Verifique: • construtor padrão; • construtor de cópia; • destruidor; • atribuidor; • acessores. Criadores da Linguagem C

  17. elipse b a Exercício 02: elabore uma classe C++ para abstrair o conceito de elipse. Faça reúso em uma aplicação console. 25 minutos! • Verifique: • construtor padrão; • construtor de cópia; • destruidor; • atribuidor; • acessores.

  18. b c triângulo a Exercício 03: elabore uma classe C++ para abstrair o conceito de triângulo. Faça reúso em uma aplicação console. 20 minutos! • Verifique: • construtor padrão; • construtor de cópia; • destruidor; • atribuidor; • acessores.

  19. associação generalização (pinheiro/bananada) ClasseA ClasseA ClasseA ClasseA composição (diamante negro) agregação (diamante) ClasseB ClasseB ClasseB ClasseB dependência (seta) Relacionamentos em UML “tem um” “é um” Desenhos:

  20. Tipo Sivirino * 1 1 1 * 0..1 0, 1 1 1 1 1, 2 1 1 1

  21. Reflexões de Gandhi Repitam comigo: éhummm, tenhummm, éhummm, tenhummm, éhummm, tenhummm, éhummm, tenhummm, ... “é um” “tem um” Mahatma Gandhi

  22. Exemplo de herança em UML Animal Herança simples Felino Cervideo Canino Gato Leao Veado Lobo Cachorro Herança múltipla LeaoLobo

  23. generalização Niklaus Wirth UML e C++: hereditariedade “é um” em C++ class Derivada: private Base { ... }; em C++ class Derivada: protected Base { ... }; Esta é a mais usada! em C++ class Derivada: public Base { ... }; Criador do Pascal

  24. Associação em UML É a parte que cada objeto desempenha na associação. Identifica a associação e descreve o relacionamento. Mostra quem dirige a associação. papel nome da associação direção da associação papel nome da classe multipli-cidade multipli-cidade nome da classe Indica quantos objetos tomam parte na associação.

  25. orientado pelo requer tarefas do Exemplos de associações em UML Aluno estudante orientador Professor * 1 cumpridor de tarefas solicitador Aluno Professor 1 1..* Aluno Lousa 1..44 2 Odalisca Sultão 40 1

  26. Exercício 04: elabore uma classe C++ para implementar o conceito de complexo. Faça reúso em uma aplicação console. 60 minutos! • Pense no REÚSO em: • construtores padrão; • construtores de cópia; • destruidor; • atribuidores; • acessores set(s) e get(s); • operadores.

  27. UML e C++: polimorfismo classe abstrata em C++ método = 0 4.polimorfismo paramétrico em C++: template 1.sobrescrita Repare no Itálico! 2.sobrecarga T NomeDaClasse • 3.polimorfis-mo de inclusão • em C++: • virtual • * e -> • new • delete Esteriótipo: é uma forma fixa, uma coisa que não muda, uma convenção. Em UML ele é utilizado para criar a classificação de elementos que não foram definidos como padrão. << >>

More Related