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