Cursos: Análise, Ciência da Computação e Sistemas de Informação
Laboratório I - Prof. Aníbal
Lista de exercícios 9 – exercícios com Herança
Faça os exercícios na ordem dada.
1. a) Copie a classe Pessoa para o BlueJ, compile-a e teste-a.
public class Pessoa{
private String nome;
private int anoNascimento;
public Pessoa(String n, int a){
nome = n;
anoNascimento = a;
}
public String getNome(){
return nome;
}
public int getAnoNascimento( ){
return anoNascimento;
}
public void exibeDados(){
String s = "";
s += "Nome : " + getNome()+ "\nAno nasc : " + getAnoNascimento() +
"\n";
System.out.print(s);
}
}
b) Programe uma classe Cliente, subclasse de Pessoa, com um atributo que acumula os valores das
compras do cliente. Crie um construtor para a subclasse, método de acesso ao atributo e um método
que registra uma compra recebendo o valor dela como parâmetro. Sobrescreva o método exibeDados().
c) Crie uma classe de testes que
- instancie uma pessoa e um cliente
- mostre os dados de cada um
- realize duas compras para o cliente
- mostre os dados do cliente
2. Um cliente especial ganha pontos a cada compra que faz, à razão de 1 ponto para cada R$ 10,00 ou
fração e vai acumulando esses pontos. Quando ocorre uma compra, se o saldo de pontos é superior a
100, a compra recebe um desconto de 5% e a pontuação é zerada, começando nova soma de pontos
com o valor final desta compra (após o desconto de 5%).
a) Crie a subclasse ClienteEspecial que herda de Cliente, com um atributo que guarde os pontos
acumulados. Crie um construtor que inicializa essa pontuação em zero. Sobrescreva o método que
registra a compra para implementar a regra dada acima sobre os pontos e descontos. Crie um método
get para o único atributo e sobrescreva o exibeDados().
b) Crie uma classe de teste que instancie um cliente especial, com dados obtidos do teclado. A seguir,
usando uma repetição, realize diversas compras para este cliente, sendo que o valor da compra deve ser
um randômico de no mínimo R$ 100,00 e no máximo R$ 2000,00 (use somente valores inteiros para as
compras, para facilitar). A quantidade de compras deve ser lida do teclado antes da primeira delas. Para
cada compra, exibir uma linha na tela indicando o seu valor original, os pontos acumulados que restaram
após a compra e o valor total gasto pelo cliente até o momento.
Laboratório I - Prof. Aníbal – Lista de exercícios 9
1
c) Acrescente o que for necessário à classe de teste do item (b) de modo a exibir, ao final, o valor da
maior compra.
3. Complete o método abaixo, que compara a outra pessoa com esta e devolve a mais jovem das duas.
Das classes Pessoa e Cliente, qual a mais adequada para abrigar este método? Cliente? Pessoa?
Ambas? Faça sua escolha e justifique.
public Pessoa maisJovem(Pessoa outra){
....
}
Laboratório I - Prof. Aníbal – Lista de exercícios 9
2
Download

UNISINOS - Centro de Ciências Exatas - ALGORITMOS