Prova P2D1 PC-II Eng. Civ.
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 aviões.
Figura 1: Hierarquia de classes para objetos do tipo Avião.
Item (A) (5,0): Construir as classes e os métodos descritos na Figura 1 cujo funcionamento é detalhado na Tabela 1.
getVelocidade() getDados() printDados() Avião Retornar o valor contido
no campo velocidade se o valor no campo altitude for maior que 1000.
Senão, reduzir o valor de velocidade em 10%.
Retorna uma String contendo valores dos campos da classe.
Imprimir o conteúdo dos campos das classes,
empregando o método
getDados().
Civil Retornar o mesmo valor
do método da
superclasse. Se o avião tiver mais de 50 passageiros, retornar o valor da superclasse reduzido de 15%.
Retorna uma String contendo valores dos campos da classe.
Emprega a
implementação da superclasse.
Militar Se cargaAtual exceder 2000, então, retornar o valor do método da superclasse reduzido em 5%. Senão, retornar o mesmo valor do método da superclasse.
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.
Prova P2D1 PC-II Eng. Civ.
2
Elaborar também os construtores com e sem parâmetros de todas as classes e sempre que possível usar super ou this.Item (B) (2,5): Construir a classe TestaAviao tal que simula um cadastro de aviões empregando um vetor cujo tamanho é definido pelo usuário e cujos elementos são objetos da classe Aviao. É pedido para o usuário digitar um número se desejar inserir um objeto Civil (número 1) ou um Militar (número 2). Para tanto, um objeto da classe Scanner deverá ser empregado e este deverá usar o método nextLine() (acompanhado de Integer.parseInt) ou nextInt(). Um exemplo do uso do objeto Scanner é dado na Figura 2. Para criar os objetos de cada classe use um construtor com parâmetros tal que os parâmetros também são definidos pelo usuário.
import java.util.Scanner;
Scanner in = new Scanner(System.in);
// Variável que armazena o valor da opção.
String opt;
// Leitura do valor opt e transformação em int.
System.out.printf("Entre com a opção (1-Cientifico, 2-Industrial): ");
opt = in.nextLine();
int valor = Integer.parseInt(opt);
Figura 2: Leitura de dados via teclado com objeto da classe Scanner.
Item (C) (1,0): Imprimir todos os objetos contidos no vetor do Item (B) de modo que quando encontrar um objeto da classe Militar, além de imprimir todos os dados do objeto, é exibida a mensagem “Carga Explosiva”. Para tanto, o comando instanceof deverá ser empregado.
Item (D) (1,5): 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 NegativeArraySizeException ArrayIndexOutOfBoundsException IOException
NumberFormatException Tabela 2: Alguns tipos de Exceção.