Prévia do material em texto
UNIVERSIDADE VEIGA DE ALMEIDA
Graduação de Análise e Desenvolvimento de Sistema
Aluno: Miguel Arcanjo Bomfim Barbosa
Matrícula: 1240200188
Disciplina: LINGUAGEM DE PROGRAMAÇÃO II (E90100024)
Tutor: Marcos Aurelio Novaes Esteves
PROJETO JAVA ORIENTAÇÃO A OBJETO
Rio de janeiro/RJ
2025
ÍNDICE
1. Introdução ............................................................................................ 3
2. Hierarquia das classes ...................................................................... 4
3. Implementação da Classe principal ................................................. 5
4. Implementação das subclasses ...................................................... 8
5. Classe principal Main ..................................................................... 11
6. Resultado ........................................................................................ 13
7. Conclusão ....................................................................................... 21
8. Referências (Webgrafia) ................................................................. 22
Introdução
Este projeto é construído a partir da implementação de vetores de objetos em Java),
incluindo herança e encapsulamento. Além disso, é realizado o tratamento de
exceções para garantir a entrada de dados de forma mais segura.
O projeto consiste na criação de uma superclasse chamada VeiculoTransporte e
duas subclasses respectivamentes chamadas de Aviao e Navio. A aplicação
principal controla um vetor de objetos dessas classes e exibe os resultados.
Hierarquia das classes
Conteúdo
Superclasse VeiculoTransporte
package veiculotransporte;
import java.util.Scanner;
public class VeiculoTransporte {
protected String prefixo;
protected int capacidadeTanque;
protected int numeroPassageiros;
protected double preco;
public VeiculoTransporte() {}
public VeiculoTransporte(String prefixo, int capacidadeTanque, int
numeroPassageiros, double preco) {
this.prefixo = prefixo;
this.capacidadeTanque = capacidadeTanque;
this.numeroPassageiros = numeroPassageiros;
this.preco = preco;
}
public void input(Scanner scanner) {
try {
System.out.print("Prefixo: ");
this.prefixo = scanner.nextLine();
System.out.print("Capacidade do tanque: ");
this.capacidadeTanque = scanner.nextInt();
System.out.print("Numero de passageiros: ");
this.numeroPassageiros = scanner.nextInt();
System.out.print("Preco: ");
this.preco = scanner.nextDouble();
} catch (Exception e) {
System.out.println("Entrada de dados invalida. Tente novamente");
scanner.nextLine();
input(scanner);
}
}
public void exibir() {
System.out.println("Prefixo: " + prefixo);
System.out.println("Capacidade do Tanque: " + capacidadeTanque);
System.out.println("Numero de Passageiros: " + numeroPassageiros);
System.out.println("Preco: " + preco); }
public void reajustarPreco(double percentual) {
preco += preco * (percentual / 100);
}
}
Subclasse Aviao
package veiculotransporte;
import java.util.Scanner;
// Subclasse Aviao
public class Aviao extends VeiculoTransporte {
private String dataRevisao;
public Aviao() {}
public Aviao(String prefixo, int capacidadeTanque, int numeroPassageiros, double
preco, String dataRevisao) {
super(prefixo, capacidadeTanque, numeroPassageiros, preco);
this.dataRevisao = dataRevisao;
}
public void input(Scanner scanner) {
super.input(scanner);
scanner.nextLine();
System.out.print("Data de Revisao: ");
this.dataRevisao = scanner.nextLine();
}
public void exibir() {
super.exibir();
System.out.println("Data de Revisao: " + dataRevisao); }
}
Subclasse Navio
package veiculotransporte;
import java.util.Scanner;
// Subclasse Navio
public class Navio extends VeiculoTransporte {
private int numeroTripulantes;
private String dataLancamento;
public Navio() {}
public Navio(String prefixo, int capacidadeTanque, int numeroPassageiros, double
preco, int numeroTripulantes, String dataLancamento) {
super(prefixo, capacidadeTanque, numeroPassageiros, preco);
this.numeroTripulantes = numeroTripulantes;
this.dataLancamento = dataLancamento;
}
public void input(Scanner scanner) {
super.input(scanner);
try {
System.out.print("Numero de Tripulantes: ");
this.numeroTripulantes = scanner.nextInt();
scanner.nextLine();
System.out.print("Data de Lancamento: ");
this.dataLancamento = scanner.nextLine(); }
catch (Exception e) {
System.out.println("Entrada de dados invalida. Tente novamente");
scanner.nextLine();
input(scanner);
}
}
public void exibir() {
super.exibir();
System.out.println("Numero de Tripulantes: " + numeroTripulantes);
System.out.println("Data de Lancamento: " + dataLancamento);
}
public double passageirosPorTripulantes() {
return (double) numeroPassageiros / numeroTripulantes;
}
}
Classe principal Main
package veiculotransporte;
import java.util.Scanner;
public class MainClass {
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
VeiculoTransporte[] transportes = new VeiculoTransporte[20];
for (int a = 0; aPrefixo: 1234
Capacidade do tanque: 1234
Numero de passageiros: 1234
Preco: 1234
Data de Revisao: 1234
Prefixo: 1234
Capacidade do tanque: 1234
Numero de passageiros: 1234
Preco: 1234
Data de Revisao: 1234
Prefixo: 1234
Capacidade do tanque: 1234
Numero de passageiros: 1234
Preco: 12234
Data de Revisao: 1234
Prefixo: Nav907
Capacidade do tanque: 1200
Numero de passageiros: 200
Preco: 157
Numero de Tripulantes: 120
Data de Lancamento: 06/06/2006
Prefixo: Nav868
Capacidade do tanque: 8000
Numero de passageiros: 2640
Preco: 486
Numero de Tripulantes: 980
Data de Lancamento: 20/02/2020
Prefixo: Nav546
Capacidade do tanque: 3700
Numero de passageiros: 1100
Preco: 60
Numero de Tripulantes: 400
Data de Lancamento: 14/03/2021
Prefixo: Nav134
Capacidade do tanque: 123
Numero de passageiros: 123
Preco: 123
Numero de Tripulantes: 123
Data de Lancamento: 132
Prefixo: Nav321
Capacidade do tanque: 321
Numero de passageiros: 321
Preco: 321
Numero de Tripulantes: 321
Data de Lancamento: 321
Prefixo: 312
Capacidade do tanque: 312
Numero de passageiros: 321
Preco: 312
Numero de Tripulantes: 312
Data de Lancamento: 312
Prefixo: 312
Capacidade do tanque: 312
Numero de passageiros: 321
Preco: 312
Numero de Tripulantes: 321
Data de Lancamento: 312
Prefixo: 321
Capacidade do tanque: 321
Numero de passageiros: 321
Preco: 321
Numero de Tripulantes: 321
Data de Lancamento: 321
Prefixo: 321
Capacidade do tanque: 321
Numero de passageiros: 321
Preco: 321
Numero de Tripulantes: 312
Data de Lancamento: 312
Prefixo: 321
Capacidade do tanque: 321
Numero de passageiros: 321
Preco: 321
Numero de Tripulantes: 312
Data de Lancamento: 321
Saída
Dados dos Transportes:
Prefixo: Av401
Capacidade do Tanque: 2000
Numero de Passageiros: 809
Preco: 366.68
Data de Revisao: 19/12/2005
----------------------
Prefixo: Av467
Capacidade do Tanque: 900
Numero de Passageiros: 765
Preco: 494.40000000000003
Data de Revisao: 06/11/2003
----------------------
Prefixo: Av909
Capacidade do Tanque: 2132
Numero de Passageiros: 131
Preco: 140.07999999999998
Data de Revisao: 16/07/2012
----------------------
Prefixo: Av534
Capacidade do Tanque: 4344
Numero de Passageiros: 444
Preco: 407.88
Data de Revisao: 09/12/1890
----------------------
Prefixo: Av3245
Capacidade do Tanque: 132
Numero de Passageiros: 312
Preco: 127.72
Data de Revisao: 09/09/2004
Prefixo: Av876
Capacidade do Tanque: 566
Numero de Passageiros: 324
Preco: 403.76
Data de Revisao: 29/05/2017
----------------------
Prefixo: Av1234
Capacidade do Tanque: 2311
Numero de Passageiros: 1234
Preco: 5084.08
Data de Revisao: 1234
----------------------
Prefixo: 1234
Capacidade do Tanque: 1234
Numero de Passageiros: 1234
Preco: 5084.08
Data de Revisao: 1234
----------------------
Prefixo: 1234
Capacidade do Tanque: 1234
Numero de Passageiros: 1234
Preco: 5084.08
Data de Revisao: 1234
----------------------
Prefixo: 1234
Capacidade do Tanque: 1234
Numero de Passageiros: 1234
Preco: 50404.08
Data de Revisao: 1234
----------------------
Prefixo: Nav907
Capacidade do Tanque: 1200
Numero de Passageiros: 200
Preco: 646.84
Numero de Tripulantes: 120
Data de Lancamento: 06/06/2006
----------------------
Prefixo: Nav868
Capacidade do Tanque: 8000
Numero de Passageiros: 2640
Preco: 2002.3200000000002
Numero de Tripulantes: 980
Data de Lancamento: 20/02/2020
----------------------
Prefixo: Nav546
Capacidade do Tanque: 3700
Numero de Passageiros: 1100
Preco: 247.20000000000002
Numero de Tripulantes: 400
Data de Lancamento: 14/03/2021
----------------------
Prefixo: Nav134
Capacidade do Tanque: 123
Numero de Passageiros: 123
Preco: 506.76
Numero de Tripulantes: 123
Data de Lancamento: 132
----------------------
Prefixo: Nav321
Capacidade do Tanque: 321
Numero de Passageiros: 321
Preco: 1322.52
Numero de Tripulantes: 321
Data de Lancamento: 321
Prefixo: 312
Capacidade do Tanque: 312
Numero de Passageiros: 321
Preco: 1285.44
Numero de Tripulantes: 312
Data de Lancamento: 312
----------------------
Prefixo: 312
Capacidade do Tanque: 312
Numero de Passageiros: 321
Preco: 1285.44
Numero de Tripulantes: 321
Data de Lancamento: 312
----------------------
Prefixo: 321
Capacidade do Tanque: 321
Numero de Passageiros: 321
Preco: 1322.52
Numero de Tripulantes: 321
Data de Lancamento: 321
----------------------
Prefixo: 321
Capacidade do Tanque: 321
Numero de Passageiros: 321
Preco: 1322.52
Numero de Tripulantes: 312
Data de Lancamento: 312
----------------------
Prefixo: 321
Capacidade do Tanque: 321
Numero de Passageiros: 321
Preco: 1322.52
Numero de Tripulantes: 312
Data de Lancamento: 321
----------------------
Conclusão
O projeto demonstrou a aplicação de heranças, vetores de objetos e tratamento de
exceções em Java. A implementação permitiu a reutilização do código e a criação de
um sistema flexível para representar diferentes tipos de veículos.
Webgrafia
W3schools. Java Tutorial. Disponível em: https://www.w3schools.com/java/. Acesso
em: 01 abril 2025.
CFBCursos. Criando primeiro programa em Java. Disponível em:
https://www.youtube.com/watch?v=X8AnVQ-GqLU&list=PLx4x_zx8csUjFC5WWjoNU
L7LOOD7LCKRW&index=52. Acesso em: 01 abril 2025
https://www.youtube.com/watch?v=X8AnVQ-GqLU&list=PLx4x_zx8csUjFC5WWjoNUL7LOOD7LCKRW&index=52
https://www.youtube.com/watch?v=X8AnVQ-GqLU&list=PLx4x_zx8csUjFC5WWjoNUL7LOOD7LCKRW&index=52
ÍNDICE