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

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

ESCOLA DE ENGENHARIA C++ Programação Orientada ao Objeto.

Apresentações semelhantes


Apresentação em tema: "ESCOLA DE ENGENHARIA C++ Programação Orientada ao Objeto."— Transcrição da apresentação:

1 ESCOLA DE ENGENHARIA C++ Programação Orientada ao Objeto

2 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 2/22 AlbertEinstenAlbertEinsten OrlandoSilvaOrlandoSilva AriBarrosoAriBarroso reúsoreúso tornar a usar; dar novo uso a; efetuar a reuti- lização. tornar a usar; dar novo uso a; efetuar a reuti- lização. 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! Vou efetuar a reutilização das minhas músicas...Vou reusá-las em um novo ritmo! Uma palavrinha importante em POO (Programação Orientada ao Objeto)

3 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 3/22 Marinho Animal Mamifero Leao Homem Inseto Mosca Barata Peixe Introduzindo a POO atributos operações Classe Homosca Herança múltipla: Homosca é um Homem e uma Mosca. Também é um Animal, Mamífero e Inseto. Herança múltipla: Homosca é um Homem e uma Mosca. Também é um Animal, Mamífero e Inseto. Herança simples

4 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 4/22 Cervideo Animal Felino Gato Leao Canino Lobo Cachorro Veado LeaoLobo Herança simples Herança múltipla Sou filho de famosos! Objeto Introduzindo a POO: brincadeirinha... Objeto

5 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 5/22 1. encapsulamento; Propriedade de uma classe incluir ou encerrar atributos e operações. 2. hereditariedade; Propriedade de uma classe transmitir atributos e operações para as suas descendentes. 3. polimorfismo. Propriedade de uma classe se apresentar sob numerosas formas; multiforme. virtual **-> new delete -- ## ++ private protected public Outras três palavrinhas importantes em POO

6 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 6/22 é a especificação mais usada da OMGé a especificação mais usada da OMG é o meio de modelar:é o meio de modelar: estrutura da aplicação estrutura da aplicação comportamento comportamento arquitetura arquitetura processos de negócios processos de negócios estruturas de dados estruturas de dados é a especificação mais usada da OMGé a especificação mais usada da OMG é o meio de modelar:é o meio de modelar: estrutura da aplicação estrutura da aplicação comportamento comportamento arquitetura arquitetura processos de negócios processos de negócios estruturas de dados estruturas de dados Object Management Group Veja na Internet: édi grátis! UML (Unified Modeling Language)

7 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 7/22 operações Nome da Classe atributos em C++ class {... }; em C++ class {... }; Exemplo de anotação em UML. Exemplo de anotação em UML. Um dos pais da Programação Estruturada Um dos pais da Programação Estruturada As anotações em UML podem se transformar em comentários C++: // de linha /* de bloco */ As anotações em UML podem se transformar em comentários C++: // de linha /* de bloco */ Edsger Wybe Dijkstra Dijkstra iijjkk Classes em UML e C++ (Unified Modeling Language)

8 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 8/22 -- ## ++ em C++ class {... private:... }; em C++ class {... private:... }; em C++ class {... protected:... }; em C++ class {... protected:... }; em C++ class {... public:... }; em C++ class {... public:... }; Dois pontos! privadaprivada protegidaprotegida públicapública Visibilidade em UML e C++

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

10 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 10/22 -- ## ++ operações Nome da Classe atributos em C++ private: em C++ private: em C++ protected: em C++ protected: em C++ public: em C++ public: 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. 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. Geralmente não significa obrigatoriamente. Pense sempre em REÚSO! Métodos que realizam acesso, não confunda com assessor! UML e C++: encapsulamento

11 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 11/22 Exemplo de um objeto com classe identificada. luisInacioLula: Presidente objeto classe dois pontos dois pontos sublinhado Exemplo de um objeto não intitulado com classe identificada. : Presidente Exemplo de um objeto intitulado com classe não identificada. luisInacioLula: Representação de objetos em UML

12 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 12/22 1. construtor padrão; Se você não definir, o C++ definirá! É um construtor que não requer argumentos. Se você não definir, o C++ definirá! 2. construtor de cópia; Se você não definir, o C++ definirá! É um construtor que possui um único parâmetro do mesmo tipo que a classe. Se você não definir, o C++ definirá! 4. atribuidor. Se você não definir, o C++ definirá! É chamado automaticamente quando o objeto sai do escopo. Se você não definir, o C++ definirá! 3. destrutor; 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á! Bjarne Stroustrup Criador da Linguagem C++ Se você não definir, o C++ definirá! Quatro pontos importantes em C++

13 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 13/22 1. construtor padrão: class NomeDaClasse {... NomeDaClasse();... }; class NomeDaClasse {... NomeDaClasse();... }; NomeDaClasse::NomeDaClasse() {... } NomeDaClasse::NomeDaClasse() {... } NomeDaClasse *xp = new NomeDaClasse();... delete xp; NomeDaClasse *xp = new NomeDaClasse();... delete xp; NomeDaClasse x; NomeDaClasse x = NomeDaClasse(); Definição da classe Definição do construtor padrão Chamada do Construtor Chamada implícita do Construtor Chamada explícita do Construtor Quatro pontos importantes em C++

14 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 14/22 2. construtor de cópia: class NomeDaClasse {... NomeDaClasse(NomeDaClasse x);... }; class NomeDaClasse {... NomeDaClasse(NomeDaClasse x);... }; NomeDaClasse::NomeDaClasse(NomeDaClasse x) {... } NomeDaClasse::NomeDaClasse(NomeDaClasse x) {... } Definição da classe Definição do construtor de cópia Quatro pontos importantes em C++

15 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 15/22 3. destrutor: class NomeDaClasse {... ~NomeDaClasse();... }; class NomeDaClasse {... ~NomeDaClasse();... }; NomeDaClasse::~NomeDaClasse() {... } NomeDaClasse::~NomeDaClasse() {... } Definição da classe Definição do destrutor Quatro pontos importantes em C++

16 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 16/22 4. atribuidor: class NomeDaClasse {... NomeDaClasse & operator =(NomeDaClasse &x);... }; class NomeDaClasse {... NomeDaClasse & operator =(NomeDaClasse &x);... }; NomeDaClasse & NomeDaClasse::operator =(NomeDaClasse &x); {... } NomeDaClasse & NomeDaClasse::operator =(NomeDaClasse &x); {... } Definição da classe Definição do atribuidor Quatro pontos importantes em C++

17 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 17/22retânguloretânguloaa bb Verifique: 1.construtor padrão; 2.construtor de cópia; 3.destruidor; 4.atribuidor; 5.acessores. Verifique: 1.construtor padrão; 2.construtor de cópia; 3.destruidor; 4.atribuidor; 5.acessores. Dennis Ritchie Brian Kernighan Criadores da Linguagem C 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!

18 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 18/22elipseelipseaa bb 25 minutos! Verifique: 1.construtor padrão; 2.construtor de cópia; 3.destruidor; 4.atribuidor; 5.acessores. Verifique: 1.construtor padrão; 2.construtor de cópia; 3.destruidor; 4.atribuidor; 5.acessores. Exercício 02: elabore uma classe C++ para abstrair o conceito de elipse. Faça reúso em uma aplicação console.

19 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 19/22triângulotriânguloaa bb cc 20 minutos! Verifique: 1.construtor padrão; 2.construtor de cópia; 3.destruidor; 4.atribuidor; 5.acessores. Verifique: 1.construtor padrão; 2.construtor de cópia; 3.destruidor; 4.atribuidor; 5.acessores. Exercício 03: elabore uma classe C++ para abstrair o conceito de triângulo. Faça reúso em uma aplicação console.

20 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 20/22 generalização (pinheiro/bananada) generalização (pinheiro/bananada) agregação (diamante) agregação (diamante) composição (diamante negro) composição (diamante negro) dependência (seta) dependência (seta) associação é um tem um ClasseA ClasseB ClasseA ClasseB ClasseA ClasseB ClasseA ClasseB Desenhos: Relacionamentos em UML

21 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 21/22 Tipo Sivirino ** , , ** mult.quantidade de objetos *qualquer número de objetos m..nde m até n objetos (m < n) m,nm ou n objetos nexatamente n objetos

22 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 22/22 Repitam comigo: éhummm, tenhummm, éhummm, tenhummm, éhummm, tenhummm, éhummm, tenhummm,... Repitam comigo: éhummm, tenhummm, éhummm, tenhummm, éhummm, tenhummm, éhummm, tenhummm,... tem um Mahatma Gandhi é um Reflexões de Gandhi

23 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 23/22 Cervideo Animal Felino Gato Leao Canino Lobo Cachorro Veado LeaoLobo Herança simples Herança múltipla Exemplo de herança em UML

24 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 24/22 Niklaus Wirth generalização em C++ class Derivada: private Base {... }; em C++ class Derivada: private Base {... }; Derivada:Base private protected public em C++ class Derivada: public Base {... }; em C++ class Derivada: public Base {... }; Derivada:Base private protected public em C++ class Derivada: protected Base {... }; em C++ class Derivada: protected Base {... }; Derivada:Base private protected public Esta é a mais usada! Criador do Pascal UML e C++: hereditariedade é um

25 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 25/22 nome da classe multipli- cidade nome da classe papel nome da associação direção da associação mult.quantidade *qualquer número de objetos m..nde m até n objetos (m < n) m,nm ou n objetos nexatamente n objetos É a parte que cada objeto desempenha na associação. Identifica a associação e descreve o relacionamento. Mostra quem dirige a associação. Indica quantos objetos tomam parte na associação. Associação em UML

26 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 26/22 Aluno Professor ** estudante orientado pelo orientador 11 Odalisca Sultão Aluno Professor 11 cumpridor de tarefas cumpridor de tarefas requer tarefas do requer tarefas do solicitador 1..* Aluno Lousa Exemplos de associações em UML

27 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 27/22 Pense no REÚSO em: 1.construtores padrão; 2.construtores de cópia; 3.destruidor; 4.atribuidores; 5.acessores set(s) e get(s); 6.operadores. Pense no REÚSO em: 1.construtores padrão; 2.construtores de cópia; 3.destruidor; 4.atribuidores; 5.acessores set(s) e get(s); 6.operadores. 60 minutos! Exercício 04: elabore uma classe C++ para implementar o conceito de complexo. Faça reúso em uma aplicação console.

28 C++ - Programando com Classes Prof. Lincoln Cesar Zamboni 28/22 > 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. 3.polimorfis-mo de inclusão em C++: virtual * e -> new delete 3.polimorfis-mo de inclusão em C++: virtual * e -> new delete 4.polimorfismo paramétrico em C++: template 4.polimorfismo paramétrico em C++: template TT 2.sobrecarga 1.sobrescrita classe abstrata em C++ método = 0 classe abstrata em C++ método = 0 NomeDaClasse Repare no Itálico! Repare no Itálico! UML e C++: polimorfismo


Carregar ppt "ESCOLA DE ENGENHARIA C++ Programação Orientada ao Objeto."

Apresentações semelhantes


Anúncios Google