Prévia do material em texto
Arquivos Fonte
Transporte
import java.util.InputMismatchException;
import java.util.Scanner;
public class Transporte {
protected int capacidadeTanque;
protected int numeroPassageiros;
protected double preco;
// Construtor vazio
public Transporte() {}
// Construtor completo
public Transporte(int capacidadeTanque, int numeroPassageiros, double preco) {
this.capacidadeTanque = capacidadeTanque;
this.numeroPassageiros = numeroPassageiros;
this.preco = preco;
}
// Getters e Setters
public int getCapacidadeTanque() { return capacidadeTanque; }
public void setCapacidadeTanque(int capacidadeTanque) { this.capacidadeTanque = capacidadeTanque; }
public int getNumeroPassageiros() { return numeroPassageiros; }
public void setNumeroPassageiros(int numeroPassageiros) { this.numeroPassageiros = numeroPassageiros; }
public double getPreco() { return preco; }
public void setPreco(double preco) { this.preco = preco; }
// Entrada de dados com tratamento de exceções
public void entrada() {
Scanner sc = new Scanner(System.in);
try {
System.out.print("Capacidade do tanque: ");
this.capacidadeTanque = sc.nextInt();
System.out.print("Número de passageiros: ");
this.numeroPassageiros = sc.nextInt();
System.out.print("Preço: ");
this.preco = sc.nextDouble();
} catch (InputMismatchException e) {
System.out.println("Erro: valor inválido. Tente novamente.");
sc.nextLine(); // limpar buffer
entrada(); // tenta novamente
}
}
public void imprimir() {
System.out.println("Capacidade do tanque: " + capacidadeTanque);
System.out.println("Número de passageiros: " + numeroPassageiros);
System.out.println("Preço: " + preco);
}
}
Aviao
public class Aviao extends Transporte {
private String prefixo;
private String dataRevisao;
// Construtor vazio
public Aviao() { super(); }
// Construtor completo
public Aviao(String prefixo, int capacidadeTanque, int numeroPassageiros, double preco, String dataRevisao) {
super(capacidadeTanque, numeroPassageiros, preco);
this.prefixo = prefixo;
this.dataRevisao = dataRevisao;
}
public String getPrefixo() { return prefixo; }
public void setPrefixo(String prefixo) { this.prefixo = prefixo; }
public String getDataRevisao() { return dataRevisao; }
public void setDataRevisao(String dataRevisao) { this.dataRevisao = dataRevisao; }
@Override
public void imprimir() {
System.out.println("\n--- Dados do Avião ---");
super.imprimir();
System.out.println("Prefixo: " + prefixo);
System.out.println("Data de revisão: " + dataRevisao);
}
public void reajustarPreco(double percentual) {
this.preco += this.preco * (percentual / 100);
}
@Override
public void entrada() {
super.entrada();
java.util.Scanner sc = new java.util.Scanner(System.in);
System.out.print("Prefixo: ");
this.prefixo = sc.nextLine();
System.out.print("Data da revisão: ");
this.dataRevisao = sc.nextLine();
}
}
Navio
public class Navio extends Transporte {
private String nome;
private int numeroTripulantes;
private String dataLancamento;
// Construtores
public Navio() { super(); }
public Navio(String nome) { this.nome = nome; }
public Navio(String nome, int numeroTripulantes) {
this.nome = nome;
this.numeroTripulantes = numeroTripulantes;
}
public Navio(String nome, int capacidadeTanque, int numeroPassageiros, double preco) {
super(capacidadeTanque, numeroPassageiros, preco);
this.nome = nome;
}
public Navio(String nome, int capacidadeTanque, int numeroPassageiros, double preco, int numeroTripulantes, String dataLancamento) {
super(capacidadeTanque, numeroPassageiros, preco);
this.nome = nome;
this.numeroTripulantes = numeroTripulantes;
this.dataLancamento = dataLancamento;
}
public String getNome() { return nome; }
public void setNome(String nome) { this.nome = nome; }
public int getNumeroTripulantes() { return numeroTripulantes; }
public void setNumeroTripulantes(int numeroTripulantes) { this.numeroTripulantes = numeroTripulantes; }
public String getDataLancamento() { return dataLancamento; }
public void setDataLancamento(String dataLancamento) { this.dataLancamento = dataLancamento; }
@Override
public void imprimir() {
System.out.println("\n--- Dados do Navio ---");
super.imprimir();
System.out.println("Nome: " + nome);
System.out.println("Número de tripulantes: " + numeroTripulantes);
System.out.println("Data de lançamento: " + dataLancamento);
}
public double passageirosPorTripulantes() {
if (numeroTripulantes == 0) return 0;
return (double) numeroPassageiros / numeroTripulantes;
}
@Override
public void entrada() {
super.entrada();
java.util.Scanner sc = new java.util.Scanner(System.in);
System.out.print("Nome do navio: ");
this.nome = sc.nextLine();
System.out.print("Número de tripulantes: ");
this.numeroTripulantes = sc.nextInt();
sc.nextLine(); // limpar buffer
System.out.print("Data de lançamento: ");
this.dataLancamento = sc.nextLine();
}
}
App
public class App {
public static void main(String[] args) {
Aviao[] avioes = new Aviao[10];
Navio[] navios = new Navio[10];
System.out.println("===== Cadastro de 10 Aviões =====");
for (int i = 0; i