Aula Prática 1 Monitoria IP/CC (~if669). Verificação Dinâmica de Tipos Métodos de superclasses e subclasses: Uso de métodos de subclasses quando se é.

Slides:



Advertisements
Apresentações semelhantes
Programação Orientada a Objetos*
Advertisements

Paradigmas da Programação – Semestre 1 – Aula 6
Herança, Polimorfismo e Classes Abstratas em Java
Orientação a Objetos: Modificador Final para Métodos e Classes
Herança, sobrecarga e ligação dinâmica zHerança zReferência super zSobrecarga de métodos zSobreposição zLigação dinâmica de métodos zfinal.
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Iniciação ao Java – Márcio F. Campos
Polimorfismo e Acoplamento Dinâmico
Polimorfismo e Classes Abstratas Profa
Linguagem de Programação II
Membros estáticos.
Centro Integrado de Tecnologia da Informação
Classes & Objectos em JAVA5
Métodos Programação II
Herança e Polimorfismo
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
CRIANDO OBJETOS EM JAVA
PLC – Introdução a POO Java
Aula Prática If669 – Introdução à Programação
Programação Orientada à Objetos
Programação I Aula 2 (Métodos)
Entendendo as definições de classe
OPERADORESOPERADORES SCJP – Otimize-TI. Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem.
Operadores e Atribuições Capítulo 3
Erick Luis Moraes de Sousa
Os métodos equals() e hashCode()
Introdução à Programação Orientada a Objetos com Java Paulo Borba Centro de Informática Universidade Federal de Pernambuco Programação Imperativa (e Ponteiros.
Professora Lucélia Oliveira
Paulo Borba Centro de Informática Universidade Federal de Pernambuco
Linguagem II Exceções.
Orientação a Objetos Parte II
Aula prática 14 Orientação a Objetos – C++ Parte 2
Programação I Aula 6 (Herança, Polimorfismo e Encapsulamento)
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Aula Prática 4 Monitoria IP/CC (~if669).
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Polimorfismo.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Aula Prática 1 Monitoria IP/CC (~if669). Roteiro 1.Polimorfismo 2.Superclasses Abstratas 3.Dúvidas 4.Exercício.
Linguagem I Strings.
Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009.
Aula Prática 5 05/05/2010. //Estrutura do método public int subtrair (int a, int b){ //Calcule a operação desejada. int resultado = a – b; //Retorne o.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Programação I Aula 11 (Arrays de Objetos) Prof. Gilberto Irajá Müller Última atualização 27/5/2009.
Herança Modelagem e Programação Orientada a Objetos
Aula Prática 5 Monitoria IP/CC (~if669). Roteiro 1. 1.Recursão 2. 2.Escopo de Variáveis 3. 3.Arrays 4. 4.Strings.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Bruno Inojosa MCP .NET Framework
Prof. Marcos LABORATÓRIO DE PRÁTICA DE PROGRAMAÇÃO 06.
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
Paulo Borba Centro de Informática Universidade Federal de Pernambuco Exceções.
2 – Revisão de Programação Orientada a Objetos
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
MATA56 Tipos, Verificação de Tipos Agenda Objetivo desta aula: Introduzir os principais aspectos semânticos de variáveis Palavras-chave – nomes.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Implementação Orientada a Objetos – Aula 08 Herança, sobrescrita de métodos e polimorfismo Prof. Danielle Martin Universidade de Mogi das Cruzes
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
Java Como Programar, 8/E Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1.
Padrões de Projeto 2 – Revisão de Programação Orientada a Objetos.
Capítulo 7 Métodos. 2Capítulo 7 – Métodos Métodos Criação e chamada de métodos Passagem de parâmetros VarArgs Sobrecarga Método com valor de retorno Métodos.
Strings e Arrays Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Herança e Polimorfismo Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Transcrição da apresentação:

Aula Prática 1 Monitoria IP/CC (~if669)

Verificação Dinâmica de Tipos Métodos de superclasses e subclasses: Uso de métodos de subclasses quando se é instanciado como uma superclasse. O código acima irá gerar erro de compilação. O uso só é possível através de cast. //Superclasse extends subclasse Superclasse x = new Subclasse(); x.metodoProprioDaSubclasse(); //Superclasse extends subclasse Superclasse x = new Subclasse(); x.metodoProprioDaSubclasse(); Superclasse x = new Subclasse(); (Subclasse x).metodoProprioDaSubclasse(); Superclasse x = new Subclasse(); (Subclasse x).metodoProprioDaSubclasse();

Verificação dinâmica de tipos Castings só são analisados durante a execução (Verificação Dinâmica) Castings não convertem tipo: Erro em Tempo de Execução Superclasse x = new Superclasse(); (Subclasse x).metodoProprioDaSubclasse(); Superclasse x = new Superclasse(); (Subclasse x).metodoProprioDaSubclasse();

Verificação dinâmica de tipos Como fazer uma verificação dinâmica para evitar erros em tempo de execução? – Instanceof – O código executado dependerá da instância do objeto x O instance of retornará true se x for uma classe ClassTeste e executará o código1 O instance of retornará false se x for uma classe ClassTeste e executará o código2 if (x instance of ClassTeste) { //código1 else //código2 if (x instance of ClassTeste) { //código1 else //código2

Redefinição de métodos, Overriding Objetivo Redefinir métodos já escritos pela Superclasse Características da Redefinição Invariância: Não há mudança no tipo de retorno nem nos possíveis argumentos passados para o método em questão Semântica e Visibilidade: Devem ser preservados para uso consciente, pra quê redefinir o método creditar pra ele começar a debitar? Só é possível acessar a definição dos métodos da superclasse imediata através do super;

Ligações dinâmicas, Overriding Métodos definidos e métodos redefinidos, qual será executado? – A escolha do método executado é feito de forma dinâmica, ou seja, durante a execução do código. – Lembrando que esta é a causa de erros em tempo de execução quando há castings errados.

Overloading Sobrecarga – Permite a existência de diversos métodos de mesmo nome – Devem haver diferenças entre todos os métodos sobrecarregados, seja no retorno ou na passagem de parâmetros – Evita a poluição de código se tivesse que criar um nome diferente. – Evita ter que criar métodos diferentes(SomaInt e SomaDouble) public int Soma(int x, int y) { return x+y; } public double Soma(double x, double y) {return x+y; } public int Soma(int x, int y) { return x+y; } public double Soma(double x, double y) {return x+y; }

Dúvidas?

Exercícios O que a.equals(b), faz se a e b são arrays? Resposta.: O mesmo que (a==b). Use Arrays.equal(a,b) para verificar se elementos dentro dos arrays são iguais (ao invés de apenas as referências do array).

Exercícios Considere a seguinte implementação do método compareTo() de String. Como a terceira linha torna o código mais eficiente? Resposta.: Evita comparar diretamente todos os n caracteres se s e t são referências para a mesma String.