Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27

Documentos relacionados
Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu:

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Herança e Polimorfismo - Parte II -

Linguagem de Programação II Herança

POO29004 Programação Orientada a Objetos

Programação OO em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

Interfaces. Classes abstratas que possuem apenas métodos abstratos. Na Interface: Métodos são implicitamente. Campos são implicitamente

Herança e Polimorfismo -Parte II -

Programação Java. - Herança e Polimorfismo - Marco Fagundes Marco Fagundes -

Módulo 5. Programação Orientada a Objetos. Programação Orientada a Objetos I Java (Rone Ilídio)

Linguagem de Programação. Diagrama de classes

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

Classe Abstrata e Interface

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Programação Orientada a Objetos SANTOS, Rafael

Herança. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Programação Java (nível intermediário) 4. Polimorfismo

Notas de Aula 04: Herança e polimorfismo.

Avançando em Java com Polimorfismo. Prof.: Hugo Barros

A B Classe Genérica D A C. Classe Especializada. Classe Especializada. Características Herdadas

Computação II Orientação a Objetos

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

Laboratório de Programação. Aula 2 Java 5COP088. Aula 2 Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Conceitos de Programação Orientada a Objetos

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III

Palavras Reservadas da Linguagem Java

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel)

Como exemplo, vamos criar uma subclasse da classe Funcionario, vista nos capítulos anteriores.

Programação Orientada a Objetos. SANTOS, Rafael (PLT) e Guia de Estudo SCJP. SIERRA, Kathy e BATES, Bert

Linguagem de Programação II Implementação

Programação Orientada a Objetos

[Desenvolvimento OO com Java] Classes abstratas e interfaces

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Programação Orientada a Objetos


Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

Lição 11 Herança, polimorfismo e interfaces

Programação Orientada a Objetos II

Orientação a Objetos - Herança

LÓGICA DE PROGRAMAÇÃO (JAVA) POLIMORFISMO. Professor Carlos Muniz

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Programação por Objectos. Java

Linguagem de Programação IV Introdução

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU

extendsé usado para indicar herança em JAVA

Linguagem de programação Programação Orientada a objetos

Polimorfismo. O que é polimorfismo?

Aula 08 Encapsulamento. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes.

Desenvolvimento OO com Java Classes abstratas e interfaces

POO29004 Programação Orientada a Objetos

Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Notas de Aula 05: Diretivas de atributos, métodos e classes e o uso de Interfaces.

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

Vejamos o seguinte exemplo public class Exemplo private int testada = 20; public void testapalavra(int testada) JOptionPane.showMessageDialog(null,"Pa

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

AULA TEÓRICA 9. Tema 8. Herança (continuação) Ø Sobreposição de métodos. Ø Variáveis e métodos estáticos. Ø Hierarquia de classes.

Linguagem de Programação III

Prof. A. G. Silva. 30 de outubro de Prof. A. G. Silva INE5603 Introdução à POO 30 de outubro de / 1

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

1 - O que será impresso quando o seguinte programa escrito na linguagem JAVA for compilado e executado?

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

LEIC-A / MEIC-A 2007/2008 (1º

4 Conceito de Herança

Classes e Objetos. Sintaxe de classe em Java

Aula. Renata Pontin de Mattos Fortes 2006

Orientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento

Visibilidade e Encapsulamento

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos

Atributos e Métodos Estáticos

Linguagens de Programação Aula 12

POO29004 Programação Orientada a Objetos

LEIC-A / MEIC-A 2007/2008 (1º

Laboratório de Programação. Aula 2 Java 5COP088. Aula 2 Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Programação em Linguagem C++

Programação Orientada a Objetos em Java

5 Reuso de Classes. Desenvolvimento OO com Java. Vítor E. Silva Souza

Linguagem de Programação II Implementação

Universidade Federal de Uberlândia

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

Herança; Sobrescrita, Sobrecarga e Polimorfismo; Classes abstratas e concretas (finais).

Polimorfismo e Ligação Dinâmica. Alcides Pamplona Polimorfismo e Ligação Dinâmica

Polimorfismo. PARTE II: Java e OO. Polimorfismo. Polimorfismo. Polimorfismo. Polimorfismo

Análise de Programação

Transcrição:

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 de funções (a) Polimorfismo é a capacidade de linguagens de programação apresentar a mesma interface para diferentes tipos de dado. Um tipo polimórfico é aquele cujas operações podem ser aplicados para valores de outro tipo. (b) Sobreescrita de métodos é ocorre quando uma classe filha redefine o mesmo método herdado de uma classe pai. Métodos sobreescritos devem ter o mesmo nome, lista de argumentos e tipo de retorno. O método que foi sobreescrito não pode restringir o acesso do método que ele sobreescreve. (c) Sobrecarga de métodos em Java ocorre quando dois ou mais métodos na mesma classe têm exatamente o mesmo nome, mas diferente parâmetros. Métodos sobrecarregados podem mudar o tipo de retorno e o modificador de acesso. 2. (2 Pontos) Suponha que você queira que subclasses em qualquer pacote tenham acesso aos membros de uma superclasse. Qual é o mais restritivo acesso que alcança este objetivo? Justifique sua resposta. A. public B. private C. protected D. default Answer: Option C Justificativa: Modificadores de acesso dizem que classes, não quais instâncias, podem acessar determinados membros. Métodos e variáveis são conhecidos coletivamente como membros. Membros têm controle de acesso, exatamente da mesma maneira. privado torna um membro acessível apenas a partir de dentro de sua própria classe

protected torna um membro acessível às classes no mesmo pacote ou às subclasses da classe. default acesso default é muito semelhante ao protected (certifique-se de detectar a diferença). Acesso default torna um membro acessível apenas às classes no mesmo pacote. public significa que todas as outras classes, independentemente do pacote que eles pertencem, pode acessar o membro (assumindo que a própria classe é visível) Depois de examinar estas definições, o modificador de acesso que oferece o maior número de restrições para os métodos para ser acessado a partir das subclasses da classe de outro pacote é C - protected. 3. (2 Pontos) Considere o definição de classe na listagem 1. Quais das opções é válida em uma classe que estende class A? Justifique sua resposta. Listagem 1: Listagem da classe A class A { protected int method1(int a, int b) { return 0; A. public int method1 (int a, int b){return 0; B. private int method1 (int a, int b){ return 0; C. public short method1 (int a, int b){ return 0; Resposta: Opção A Explicação: Opção A é correta - porque a classe que estende A está simplesmente sobrescrevendo o method1. Opção B é errada - porque ela não pode sobrescrever deste modo já que há menos privilégios no método method1 na subclasse. Opção C é errada - porque para sobrescreve-lo, o tipo de retorno precisa ser um inteiro. O retorno de tipo diferente significa que o método não está sobrescrevendo mas, ao mesmo tempo, a mesma lista de argumentos significa que o método não está sobrecarregando. Portanto, temos um conflito - compile time error. Page 2

4. (3 Pontos) Implemente as classes mostradas na Figura 1. Escreva um programa que execute as seguintes tarefas: (a) Crie dois cachorros e dois gatos e os insira em um ArrayList. (b) Após a inserção, imprima todos os elementos da lista. (c) Imprima a soma dos pesos dos cachorros e a soma dos pesos dos gatos. Abaixo está uma amostra do que um possível programa imprimiria. Animal [peso=15.0, idade=10] Cachorro latindo. Animal [peso=12.0, idade=4] Cachorro latindo. Animal [peso=9.0, idade=6] Gato miando. Animal [peso=10.0, idade=5] Gato miando. Peso gatos = 19.0 Peso cachorros = 27.0 -peso: double -idade: int Animal +setpeso(peso:double): void +setidade(idade:int): void +getpeso(): double +getidade(): int +comer(): void +Animal(peso:double,idade:int) +tostring(): String Cachorro +latir() Gato +miar() Figura 1: Classes Animal, Cachorro e Gato public class Animal { private double peso; Page 3

private int idade; public Animal(double peso, int idade) { super(); this.peso = peso; this.idade = idade; public String tostring() { return "Animal [peso=" + peso + ", idade=" + idade + "]"; * @return the peso public double getpeso() { return peso; * @param peso the peso to set public void setpeso(double peso) { this.peso = peso; * @return the idade public int getidade() { return idade; * @param idade the idade to set public void setidade(int idade) { this.idade = idade; public void comer() { System.out.println("Animal comendo."); public class Cachorro extends Animal { public Cachorro(double peso, int idade) { super(peso, idade); // TODO Auto-generated constructor stub public void comer() { Page 4

System.out.println("Cachorro comendo."); public void latir() { System.out.println("Cachorro latindo."); public class Gato extends Animal { public Gato(double peso, int idade) { super(peso, idade); // TODO Auto-generated constructor stub public void comer() { System.out.println("Gato comendo."); public void miar() { System.out.println("Gato miando."); import java.util.arraylist; public class Testa { public static void main(string[] args) { ArrayList<Animal> lista = new ArrayList<Animal>(); double pesogato = 0; double pesocachorro = 0; Gato g1 = new Gato(10, 5); Gato g2 = new Gato(9, 6); Cachorro c1 = new Cachorro(12, 4); Cachorro c2 = new Cachorro(15, 10); lista.add(c2); lista.add(c1); lista.add(g2); lista.add(g1); for (Animal a: lista) { System.out.println(a.toString()); i f (a instanceof Gato) { ((Gato) a).miar(); pesogato += a.getpeso(); else { Page 5

((Cachorro) a).latir(); pesocachorro += a.getpeso(); System.out.println("Peso gatos = " + pesogato); System.out.println("Peso cachorros = " + pesocachorro); Page 6