Prova P2A2 PC-II Eng. Ele.
1 Nome: Matricula:
Questão 1: (10,0):
O diagrama de classes da Figura 1 fornece uma hierarquia de classes que relaciona os diferentes tipos de computador.
Figura 1: Hierarquia de classes para objetos do tipo computador.
Item (A) (5,0): Construir as classes e os métodos descritos na Figura 1 cujo funcionamento é detalhado na Tabela 1.
getPreco() getDados() printDados() Computador Retornar o valor
contido no campo preco se o processador for menor que 3000.
Senão, aumentar preco em 20%.
Retorna uma String contendo valores dos campos da classe.
Imprimir o conteúdo dos
campos das
classes,
empregando o método
getDados().
Laptop Retornar o mesmo valor do método da superclasse acrescido de 15%
se o campo tamTela for maior que 15.
Retorna uma String contendo valores dos campos da classe.
Emprega a
implementação da superclasse.
Desktop Retornar o mesmo valor do método da superclasse. Se peso=7, aumentar em 8%, senão aumentar em 14%.
Retorna uma String contendo valores dos campos da classe.
Emprega a
implementação da superclasse.
Tabela 1: Comportamento de cada método para cada classe.
Elaborar também os construtores com e sem parâmetros de todas as classes.
Prova P2A2 PC-II Eng. Ele.
2 Item (B) (3,0): Construir a classe TestaComputador tal que simula um cadastro de computadores empregando um vetor com 10 elementos que são objetos da classe Computador. São gerados aleatoriamente objetos da classe Laptop (50%) ou Desktop (50%). Para tanto, um objeto da classe Scanner deverá ser empregado e este deverá usar o método next(). Um exemplo do uso do objeto Scanner é dado na Figura 2. Para criar os objetos de cada classe use um construtor vazio. Imprimir todos os objetos contidos no vetor. Imprimir todos os objetos gerados aleatoriamente contidos no vetor.
// Cria um objeto da classe Random que funciona como gerador aleatório.
Random randomNumbers = new Random();
// Gera valores aleatorios inteiros: valores {{0},{1}}.
aleat = randomNumbers.nextInt(2);
// Valores reais contidos no intervalo [20,50].
preco = 30*randomNumbers.nextDouble() + 20;
Figura 2: Gerando números aleatórios inteiros ou reais.
Item (C) (2,0): Baseado nos comandos a serem utilizados no Item (B) e em alguns tipos de Exceção descritos na Tabela 2, reescrever o código do Item (B) de modo a realizar o Tratamento de Exceção.
Exceção ArithmeticException IOException
ArrayIndexOutOfBounsException RunTimeException
FormatNumberException Tabela 2: Alguns tipos de Exceção.