Prova P2B1 PC-II Eng. Mec.
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 navios.
Figura 1: Hierarquia de classes para objetos do tipo Navio.
Item (A) (5,0): Construir as classes e os métodos descritos na Figura 1 cujo funcionamento é detalhado na Tabela 1.
getVelocidade() getDados() printDados() Navio Retornar o valor contido
no campo velocidade se o valor no campo comprimento for maior que 40. 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 reduzido de 15% se o navio tiver mais de 50 passageiros.
Retorna uma String contendo valores dos campos da classe.
Emprega a
implementação da superclasse.
Militar Retornar o mesmo valor
do método da
superclasse. Se cargaAtual exceder 2000, então, reduzir em 5%.
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 P2B1 PC-II Eng. Mec.
2
Item (B) (3,0): Construir a classe TestaNavio tal que simula um cadastro de navios empregando um vetor cujo tamanho é definido pelo usuário e cujos elementos são objetos da classe Navio. É 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. Imprimir todos os objetos contidos no vetor.import java.util.Scanner;
Scanner in = new Scanner(System.in);
String opt; // valor da opção.
// Leitura do valor opt.
System.out.printf("Entre com a opção (1-Civil, 2-Militar): ");
opt = in.nextLine();
int valor = Integer.parseInt(opt);
Figura 2: Leitura de dados via teclado com objeto da classe Scanner.
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.