Fundamentos de Programação 2
|
|
|
- Victor Amaro Santarém
- 7 Há anos
- Visualizações:
Transcrição
1 Fundamentos de Programação 2 ET43G. Polimorfismo. Classes abstratas e interfaces. Aula 12 Prof. Daniel Cavalcanti Jeronymo Universidade Tecnológica Federal do Paraná (UTFPR) Engenharia Eletrônica 3º Período /20
2 Plano de Aula Polimorfismo Classes abstratas e Interfaces 2/20
3 Permite que novas classes extendam classes já existentes A classe filha herda membros (atributos e métodos) da classe pai Descreve relacionamentos do tipo é-um 3/20
4 Uso da sintaxe: class classederivada : [modificador de acesso] classebase { //corpo da classe derivada } Classe Base (superclasse) Exemplo Ponto Classe Derivada (subclasse) Um PontoColorido é um Ponto (especializado) 4/20
5 Exemplo Ponto A inicialização da classe base deve ser realizada na lista inicializadora da classe derivada class Ponto { public: int x,y; }; Ponto(int x, int y) { this->x = x; this->y = y; } class PontoColorido : public Ponto { public: enum Cor { Black, Blue, Green, Aqua, Red, Purple, Yellow, White, Gray, LightBlue, LightGreen, LightAqua, LightRed, LightPurple, LightYellow, BrightWhite}; Cor cor; Lista inicializadora do construtor }; PontoColorido(int x, int y, Cor cor) : Ponto(x,y) { this->cor = cor; } 5/20
6 : O que não é herdado Construtores, destrutores e construtores de cópia da classe base. Operadores sobrecarregados da classe base. Funções friend da classe base. 6/20
7 : Construtores Primeiro são executados os construtores da classe base e seus membros Ponto::Ponto() -> PontoColorido::PontoColorido() 7/20
8 : Destrutores Primeiro são executados os destrutores da classe derivada e seus membros PontoColorido::PontoColorido() -> Ponto::Ponto() 8/20
9 As premissas anteriores quanto a ordem dos construtores e destrutores são válidas? Adicione tracers aos construtores e destrutores de Ponto e PontoColorido Como consertar? Próxima aula! Explique: PontoColorido *p = new PontoColorido(10,1,PontoColorido::Green); cout << "P: " << p->x << " cor: " << PontoColorido::Green << endl; delete p; PontoColorido *p = new PontoColorido(10,1,PontoColorido::Green); cout << "P: " << p->x << " cor: " << PontoColorido::Green << endl; delete static_cast<ponto*>(p); 9/20
10 Funções da classe base são ocultadas na classe derivada quando redefinidas As funções da classe base podem ser acessadas pelo operador de escopo ou por cast Classe Ponto void imprime() { cout << "." << endl; } Classe PontoColorido #include <windows.h> void imprime() { HANDLE hconsole = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hConsole, cor); cout << "." << endl; SetConsoleTextAttribute(hConsole, (FOREGROUND_RED FOREGROUND_GREEN FOREGROUND_BLUE)); } 10/20
11 Upcasting: quando o objeto é tratado de acordo com seu tipo base Downcasting: quando o objeto é tratado de acordo com seu tipo derivado Ponto p1(10,1); PontoColorido p2(10,1,pontocolorido::green); Ponto &rp2 = p2; p1.imprime(); p2.imprime(); rp2.imprime(); 11/20
12 Downcasting: cuidado, pode incorrer em comportamento indefinido class PontoAlien : public Ponto { public: int prog; }; PontoAlien(int x, int y) : Ponto(x,y) { prog = 0xDEADC0D3; } void imprime() { cout << (char)178 << endl; } Ponto p1(10,1); PontoAlien p3(-1,-1); PontoAlien *pp3 = static_cast<pontoalien*>(&p1); p1.imprime(); pp3->imprime(); dynamic_cast avisa o erro 12/20
13 Downcasting: cuidado, pode incorrer em comportamento indefinido class PontoAlien : public Ponto { public: int prog; }; PontoAlien(int x, int y) : Ponto(x,y) { prog = 0xDEADC0D3; } void imprime() { cout << (char)178 << endl; } Ponto p1(10,1); PontoAlien p3(-1,-1); PontoAlien *pp3 = static_cast<pontoalien*>(&p1); p1.imprime(); pp3->imprime(); 13/20
14 Controle de acesso: redefine os acessos da classe base em função da classe derivada class classederivada : [modificador de acesso] classebase { //corpo da classe derivada } Pode ser definido como public, private (padrão) ou protected 14/20
15 Controle de acesso: public membros públicos da classe base permanecem membros públicos na classe derivada membros protegidos da classe base permanecem membros protegidos na classe derivada membros privados da classe base não são acessíveis na classe derivada 15/20
16 Controle de acesso: protected membros públicos da classe base tornam-se membros protegidos na classe derivada membros protegidos da classe base permanecem membros protegidos na classe derivada membros privados da classe base não são acessíveis na classe derivada 16/20
17 Controle de acesso: private membros públicos da classe base tornam-se membros privados na classe derivada membros protegidos da classe base tornam-se membros privados na classe derivada membros privados da classe base não são acessíveis na classe derivada 17/20
18 Controle de acesso: resumo Acesso na Classe Base Especificador na Acesso Herdado public public public protected public protected private public inacessível public protected protected protected protected protected private protected inacessível public private private protected private private private private inacessível 18/20
19 Controle de acesso: upcasting é afetado pelo controle de acesso class PontoColorido : private Ponto {... } PontoColorido p2(10,1,pontocolorido::green); Ponto &rp2 = p2; // erro! 19/20
20 Leitura para casa: s modelam relacionamentos do tipo é-um (is a) Composições modelam relacionamentos do tipo tem-um (has a) Quando usar um? Quando usar outro? Vantagens e Desvantagens? /20
Fundamentos de Programação
Fundamentos de Programação ET43G Aula 7 Prof. Daniel Cavalcanti Jeronymo Orientada a Objetos Polimorfismo. Polimorfismo estático e dinâmico. Métodos virtuais, interfaces. Universidade Tecnológica Federal
Laboratório de programação II
Laboratório de programação II Herança e Polimorfismo Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno Herança Mecanismo da Orientação a Objeto que permite criar novas classes aproveitando
Introdução à Programação. Encapsulamento e Herança
Introdução à Programação Encapsulamento e Herança Tópicos da Aula Hoje, aprenderemos conceitos mais avançados de Orientação a Objetos Encapsulamento Usando modificadores de acesso em C++ Herança Importância
C com introdução a OO
... Centro Integrado de Tecnologia da Informação C com introdução a OO ... Centro Integrado de Tecnologia da Informação Aula 9 Ronald Dener - Instrutor Matheus Soares - Monitor 17 / outubro 17 / outubro
Introdução à orientação a objetos. João Tito Almeida Vianna 18/05/2013
Introdução à orientação a objetos João Tito Almeida Vianna 18/05/2013 Roteiro Aula 1 Introdução: Programação estruturada x Orientação a objetos Orientação a objetos Classe e objeto Encapsulamento Herança
Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO
Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Unidade IV Unidade IV Herança e Composição: Herança simples. Composição.
Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }
Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos
Linguagens de Programação Aula 12
Linguagens de Programação Aula 12 Celso Olivete Júnior [email protected] Na aula passada Implementando subprogramas 2 Na aula de hoje Suporte para a programação orientada a objetos 3 Roteiro Introdução
Linguagem de Programação C++
Exercício: Linguagem de Programação C++ Construa o diagrama de classes UML para as classes envolvidas na solução do exercício do slide 253. 267 Sobrecarga Linguagem de Programação C++ Neste exercício vimos
Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto
Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural
ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO
ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO Tópicos picos Definição de estrutura Acessando membros de estruturas O tipo horario com struct Implementando horario com class Escopo
Classes, Métodos e Propriedades
Ambiente de Programação Visual Classes, Métodos e Propriedades Prof. Mauro Lopes 1-31 22 Objetivos Nesta aula iremos dar continuidade aos elementos de programação da Linguagem C#. Iremos apresentar de
Programação por Objectos. Java
Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/50 Herança revisão (1) A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse
Linguagem de Programação I
Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB [email protected] Herança simples Composição Combinando composição e herança Polimorfismo e funções virtuais Classes abstratas
Classe Abstrata e Interface
Orientação a objetos com Java Classe Abstrata e Interface Byron Leite [email protected] 1 Herança Agenda Geral Parte 04 Encapsulamento Pacotes Modificadores de Acesso private, default, protected, public
PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 6: Polimorfismo
PCS3111 Laboratório de Programação Orientada a Objetos para Engenharia Elétrica Aula 6: Polimorfismo Escola Politécnica da Universidade de São Paulo Conceito de polimorfismo 2 Polimorfismo A palavra vem
POO e C++: Herança e Polimorfismo
POO e C++: Herança e Polimorfismo Márcio Santi Luiz Fernando Martha Conceito de Herança em POO Recurso que torna o conceito de classe mais poderoso; Permite que se construa e estenda continuamente classes
Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos
Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){
Classes e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
Programação Orientada a Objetos em C++: introdução à herança
Programação Orientada a Objetos em C++: introdução à herança Disciplina de Programação Científica II Aula 15 de 18 21/06/2013 Professor Giovani Gracioli [email protected] Objetivos Os objetivos dessa
Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN
Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores Prof.: Bruno E. G. Gomes IFRN 1 Introdução Na aula de hoje: Declaração de classes Métodos Construtores Exercícios de criação
Conceitos de Programação Orientada a Objetos
Conceitos de Programação Orientada a Objetos Tatyana Bitencourt Com as técnicas de orientação a objeto, é possível obter resultados considerados impossíveis pensando de maneira estruturada. Como Java não
Técnicas de Programação:
Técnicas de Programação: Programação Orientada a Objeto PROF. PROTÁSIO DEE-UFPB Classes e Objetos Classe É uma estrutura de dados que pode conter: Objeto Dados, e Funções. É uma instância de uma classe.
Programação Orientada a Objetos C++
Programação Orientada a Objetos em C++ Sumário Histórico Comparação com Java Encapsulamento Tratamento de classes e objetos Herança Polimorfismo Histórico Desenvolvido por Bjarne Stroustrup dos Bell Labs
Linguagem de Programação I Apresentação da Disciplina
Linguagem de Programação I Apresentação da Disciplina Apresentação da Disciplina Conteúdo: 1) Orientação a Objetos - Características da OO - Reutilização de código 2) Introdução à Linguagem Java - Histórico
Aprendendo. Java 2. Rodrigo Mello Ramon Chiara Renato Villela. Novatec Editora Ltda.
Aprendendo Java 2 Rodrigo Mello Ramon Chiara Renato Villela Novatec Editora Ltda. www.novateceditora.com.br 1 Programação Orientada a Objetos O que é Programação Orientada a Objetos? É um paradigma de
Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno
Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno Visibilidade de membros Membro da classe derivada pode usar os membros públicos ( public ) e protegidos ( protected ) da sua classe base (como
Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27
1. Defina os sequintes termos: (a) (1 Ponto) Polimorfismo Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27 (b) (1 Ponto) Sobrescrita de funções (c) (1 Ponto) Sobrecarga
Programação Orientada a Objetos II
Programação Orientada a Objetos II Introdução Prof. Rodrigo Rocha [email protected] www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha [email protected] Ementa Introdução ao Desenvolvimento
UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS
Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista
Programação Orientada a Objetos
Programação Orientada a Objetos Herança e Polimorfismo Prof. Francisco de Assis S. Santos, Dr. São José, 2015. Herança em POO O conceito de herança torna mais rápido o desenvolvimento de softwares complexos
Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan
Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Herança Aula de Hoje Problema Considere uma empresa que tenha tipos de empregados no aplicativo de folha de pagamento Um empregado tem nome,
Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs
Programação Orientada a Objetos Professor: André Luis Meneses Silva [email protected] br.geocities.com/programacao2ufs [ Conteúdo ] Objeto Mensagens Classe Encapsulamento Visibilidade Membros de Instância
Linguagem de Programação. Diagrama de classes
Linguagem de Programação Diagrama de classes Joyce França Professora de Ciência da Computação - IFNMG 2 Agenda Diagrama de classes Herança Associação Agregação Exercícios 3 Diagrama de classes Mostra um
A B Classe Genérica D A C. Classe Especializada. Classe Especializada. Características Herdadas
Herança e Polimorfismo Prof. Bruno Gomes [email protected] Programação Orientada a Objetos Revisando -Herança Estrutura Hierárquica e modular Projeção de classes genéricas que podem ser especializadas
Programação Orientada a Objetos para Redes de Computadores
Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Polimorfismo Polimorfismo com Hierarquias Polimorfismo
Classes e Encapsulamento
Classes e Encapsulamento Marcio Santi POO e C++ Tipo Abstrato de Dados (TAD) TAD atributos dados que o representam interface operações associadas como é manipulado 1 Exemplo: Editor Gráfico (classe círculo)
Linguagem de Programação III
Linguagem de Programação III Aula-7 Reutilização de Classes Prof. Esbel Tomás Valero Orellana Até Aqui Introdução a POO e sua implementação em Java Atributos, métodos e encapsulamento dos mesmos Trabalhando
Orientação a Objetos. Programação em C++
OO Engenharia Eletrônica Orientação a Objetos - Programação em C++ Slides 11: Herança et al. (Funções Virtuais, Polimorfismo, Herança Múltipla, Funções Virtuais Puras e Classes Abstratas.) Prof. Jean Marcelo
ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO
ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO SOBRECARGA DE OPERADORES (C++) A sobrecarga de operadores ocorre quando desejamos utilizar operadores jáj conhecidos (+,-,*,/,=,+=...)
Curso de C para Engenharias
Aula 8 Cristiano Dalbem Dennis Balreira Gabriel Moreira Miller Biazus Raphael Lupchinski Universidade Federal do Rio Grande do Sul Instituto de Informática Grupo PET Computação math.h conio2.h Outras bibliotecas
Modelo do Mundo Real. Abstração. Interpretação
Modelo do Mundo Real Mundo Real Abstração Interpretação Sistema de Software Modelo Algoritmo Abstração: O modelo precisa capturar apenas as características do mundo real que são importantes para o sistema
Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel)
Herança capacidade de uma classe (subclasse) herdar, adquirir atributos e funcionalidades de outra classe (superclasse), podendo juntar algumas especificidades e/ou alterar outras. Existe uma relação tipo
Linguagem de Programação III
Clique para editar o estilo do subtítulo mestre Linguagem de Programação III Histórico Encapsulamento Tratamento de classes e objetos Herança Polimorfismo Comparação com Java Histórico Desenvolvido por
Herança. Prof. Leonardo Barreto Campos 1
Herança Prof. Leonardo Barreto Campos 1 Sumário Introdução; Herança Simples; Tipos de Herança; Classe Abstrata; Conversão de Tipos entre Base e Derivada; Níveis de Herança; Herança Múltipla; Bibliografia;
Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III
Programação Orientada a Objetos Alexandre César Muniz de Oliveira Métodos e Atributos Parte III Métodos [mod] tipo nome ([tipo arg]) [throws exc]{ [mod]: zero ou mais modificadores separados por espaços
Programação Orientada a Objetos
Programação Orientada a Objetos Aula VIII Prof. Felício Bruzzi Barros Maio de 2008 Sobrecarga de operadores matriz A, B, C, D; multiplica(a,b,c); soma(a,b,d); escreve(d); matriz A, B, C, D; C=A*B; D=A+B;
Herança e Propriedades
Herança e Propriedades 2013 O que veremos hoje? Herança e Propriedades Transparências baseadas no material do Prof. Gilbert Azevedo e Prof. Jailton Carlos Objetivos Conceito de Herança em POO Herança Herança
Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }
Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação
Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento
Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento Professora Sheila Cáceres Variáveis locais Campos são um tipo de variável. Eles: armazenam valores por toda a vida de um objeto; e
E N C A P S U L A M E N T O P R O F. M E. H É L I O E S P E R I D I Ã O
E N C A P S U L A M E N T O P R O F. M E. H É L I O E S P E R I D I Ã O REVIEW CLASSES E INSTÂNCIAS. REVIEW - O OPERADOR THIS This faz referencia a métodos e atributos da própria classe REVIEW - EXEMPLO
Notas de Aula 04: Herança e polimorfismo.
Notas de Aula 04: Herança e polimorfismo. Objetivos da aula: Introduzir o conceito de Heranças Criar uma hierarquia de classes Rever o uso de modificadores de acesso. Apresentar o conceito de polimorfismo
//conteúdo do arquivo Matriz.h class Matriz { private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void
//conteúdo do arquivo Matriz.h class Matriz private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void setnumerodecolunas(int); int getnumerodelinhas(); int getnumerodecolunas();
Introdução ao Java. Prof. Herbert Rausch Fernandes
Introdução ao Java Prof. Herbert Rausch Fernandes Orientação a Objetos Programação Orientada por Objetos: é a construção de sistemas de software como uma coleção estruturada de implementações de tipos
LINGUAGEM C. Comandos de Controle do Vídeo, Teclado e especiais. Lógica de Programação
LINGUAGEM C Comandos de Controle do Vídeo, Teclado e especiais Lógica de Programação Clrscr A função clrscr (clear screen) pré-definida do C que permite limpar toda tela, o cursor permanece no canto superior
Programação Orientada por Objetos
PPROG Paradigmas da Programação Programação Orientada por Objetos Herança de Classes Polimorfismo Classes Abstratas (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2015/16) 1/72
CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO
REVISÃO POO INTRODUÇÃO À LINGUAGEM JAVA CRIANDO CLASSES EM JAVA Convenção de Nomes em Java Classes iniciam com letras maiúsculas Métodos, atributos e variáveis locais iniciam com minúsculas. Declaração
Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos
Encapsulamento e Métodos (Construtores e Estáticos) Sobrecarga de Métodos João Paulo Q. dos Santos [email protected] Roteiro Conceitos sobre Encapsulamento; Variável this; Métodos Construtores;
Java para Desktop. Programação Orientada à Objetos 2 JSE
Java para Desktop Programação Orientada à Objetos 2 JSE Encapsulamento significa "ocultar informações, ele define que cada objeto contém todos os detalhes de implementação necessários sobre como ele funciona
Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM
Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Herança Visibilidade de atributos e métodos Extensão e sobreposição Uso de super Referências para objetos Polimorfismo Conceitos
Herança. BCC702-Programação de Computadores II Emiliana Mara Lopes Simões Universidade Federal de Ouro Preto abril 2010
Herança BCC702-Programação de Computadores II Emiliana Mara Lopes Simões [email protected] Universidade Federal de Ouro Preto abril 2010 Herança Uma característica importante da programação orientada
