Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
2
UNIVERSIDADE VEIGA DE ALMEIDA
SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
MICHEL GAMBA DE SOUZA
DESENVOLVIMENTO DE PROJETO DE APLICAÇÃO COM USO DE VETORES DE OBJETOS COM TRATAMENTO DE EXCEÇÕES
RIO DE JANEIRO
2025
MICHEL GAMBA DE SOUZA
DESENVOLVIMENTO DE PROJETO DE APLICAÇÃO COM USO DE VETORES DE OBJETOS COM TRATAMENTO DE EXCEÇÕES
Trabalho apresentado a Universidade Veiga de
Almeida como requisito de avaliação do Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas
Orientador: Prof. Luciano de Pinna Vieira
RIO DE JANEIRO
2025
SUMÁRIO
1 INTRODUÇÃO 4
3 CODIFICAÇÃO DAS CLASSES E APLICAÇÃO 4
4 RESULTADO DOS TESTES 9
5 CONCLUSÃO 15
REFERÊNCIAS 16
INTRODUÇÃO
Este trabalho tem como objetivo desenvolver as habilidades de programação, no contexto da disciplina de LINGUAGEM DE PROGRAMAÇÃO II (AVA 2). O foco está na aplicação prática de vetores e matrizes de objetos, com o intuito de facilitar o desenvolvimento de projetos, reduzir a complexidade e favorecer a manutenção de sistemas.
Será criada uma superclasse para atender às necessidades comuns das subclasses, reunindo funcionalidades compartilhadas entre classes similares. Além disso, será desenvolvida uma aplicação que utiliza um vetor único contendo dez objetos de cada tipo, sempre com a utilização de construtores padrão (sem parâmetros).
Por fim, será aplicado o tratamento de exceções para proteger a aplicação contra entradas inválidas de dados, utilizando os métodos da classe Scanner.
CODIFICAÇÃO DE TODAS AS CLASSES E APLICAÇÃO
SUPERCLASSE
package superclasse;
import java.util.Scanner;
/**
*
* @author Souza
*/
public class SuperClasse {
//Attibutos
private int capacidadedetanque;
private int numeropassageiros;
private float preco;
Scanner sc = new Scanner(System.in);
public int getCapacidadedetanque() {
return capacidadedetanque;
}
public void setCapacidadedetanque(int capac idadedetanque) {
this.capacidadedetanque = capacidadedetanque;
}
public int getNumeropassageiros() {
return numeropassageiros;
}
public void setNumeropassageiros(int numeropassageiros) {
this.numeropassageiros = numeropassageiros;
}
public float getPreco() {
return preco;
}
public void setPreco(float preco) {
this.preco = preco;
}
public void EntradaCapacidadetanque() {
System.out.print("Capacidade do tanque: ");
setCapacidadedetanque(Integer.parseInt(sc.nextLine()));
}
public void EntradanumeroPassageiros() {
System.out.print("Numero de Passageiros: ");
setNumeropassageiros(Integer.parseInt(sc.nextLine()));
}
public void EntradaPreco() {
System.out.print("Preço: ");
setPreco(Float.parseFloat(sc.nextLine()));
}
public void Cadastrar() {
EntradaCapacidadetanque();
EntradanumeroPassageiros();
EntradaPreco();
}
public void Imprimir() {
System.out.print("Capacidade do tanque: " + getCapacidadedetanque() +
"\n");
System.out.print("NumeroPassageiros: " + getNumeropassageiros() + "\n");
System.out.print("Preço: " + getPreco() + "\n");
}
}
AVIÃO
package superclasse;
import java.util.Scanner;
/**
*
* @author Souza
*/
public class Aviao extends SuperClasse {
//Atributo
private String prefixo;
private String 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;
}
public void reajustapreco() {
String reajustar;
String teste = "s";
float reajuste;
System.out.println("Deseja reajustar o preço? digite s para continuar");
reajustar = sc.nextLine();
if (teste.equals(reajustar)) {
System.out.print("Digite o valor percentual para ajustar o preço, exemplo
20 para20% de reajuste: ");
reajuste = Float.parseFloat(sc.nextLine());
System.out.print("Preço Reajustado: " + (getPreco() * ((reaju ste / 100) +
1)) + "\n");
}
}
public void EntradaPrefixo() {
System.out.print("Digite o prefixo: ");
setPrefixo(sc.nextLine());
}
public void EntradadataRevisao() {
System.out.print("Digite a data de Revisão: ");
setDatarevisao(sc.nextLine());
}
public void Cadastrar() {
super.Cadastrar();
EntradadataRevisao();
EntradaPrefixo();
}
public void Imprimir() {
super.Imprimir();
getPrefixo();
getDatarevisao();
reajustapreco();
}
}
NAVIO
package superclasse;
import java.util.Scanner;
/**
*
* @author Souza
*/
public class Navio extends SuperClasse {
//Atributo
private String nome;
private int numerotripulantes;
private String 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;
}
public void passageirosportripulante() {
int passag = getNumerotripulantes();
int tripu = getNumerotripulantes();
float razao = (passag / tripu);
if (passag >= tripu) {
System.out.println("numero de passageiros x tripulantes = " + razao);
} else {
System.out.println("numero de tripulantes é ma ior do que o de
passageiros ");
}
}
public void EntradaNumerodeTripulantes() {
System.out.print("Numero de Tripulantes: ");
setNumerotripulantes(Integer.parseInt(sc.nextLine()));
}
@Override
public void Cadastrar() {
Scanner sc = new Scanner(System.in);
super.Cadastrar();
EntradaNumerodeTripulantes();
}
@Override
public void Imprimir() {
super.Imprimir();
System.out.print("Numero de Tripulantes: " + getNumerotripulantes() + " \n");
passageirosportripulante();
}
}
APLICAÇÃO
package superclasse;
/**
*
* @author Souza
*/
public class Aplicacao {
public static void main(String[] args) {
Aviao vetAviao[] = new Aviao[10];
for (int i = 0; i
Digite o prefixo: RD123
------ Listagem dos Dados do 1 ° Avião ------
Capacidade do tanque: 900
NumeroPassageiros: 876
Preço: 560.0
Deseja reajustar o preço? digite s para continuar
n
------ Insira os Dados do 2° Avião ------
Capacidade do tanque: 800
Numero de Passageiros: 560
Preço: 450.00
Digite a data de Revisão: 02/02/2022
Digite o prefixo: TR543
------ Listagem dos Dados do 2 ° Avião ------
Capacidade do tanque: 800
NumeroPassageiros: 560
Preço: 450.0
Deseja reajustar o preço? digite s para continuar
s
Digite o valor percentual para ajustar o preço, exemplo 20 para20% de reajuste: 20
Preço Reajustado: 540.0
------ Insira os Dados do 3° Avião ------
Capacidade do tanque: 750
Numero de Passageiros: 568
Preço: 543.00
Digite a data de Revisão: 05/03/2022
Digite o prefixo: GF346
------ Listagem dos Dados do 3 ° Avião ------
Capacidade do tanque: 750
NumeroPassageiros: 568
Preço: 543.0
Deseja reajustar o preço? digite s para continuar
s
Digite o valor percentual para ajustar o preço, exemplo 20 para20% de reajuste: 10
Preço Reajustado: 597.3
------ Insira os Dados do 4° Avião ------
Capacidade do tanque: 700
Numero de Passageiros: 876
Preço: 450.00
Digite a data de Revisão: 05/04/2022
Digite o prefixo: YT623
------ Listagem dos Dados do 4 ° Avião ------
Capacidade do tanque: 700
NumeroPassageiros: 876
Preço: 450.0
Deseja reajustar o preço? digite s para continuar
n
------ Insira os Dados do 5° Avião ------
Capacidade do tanque: 700
Numero de Passageiros: 600
Preço: 750.00
Digite a data de Revisão: 10/06/2022
Digite o prefixo: HY987
------ Listagem dos Dados do 5 ° Avião ------
Capacidade do tanque: 700
NumeroPassageiros: 600
Preço: 750.0
Deseja reajustar o preço? digite s para continuar
N
------ Insira os Dados do 6° Avião ------
Capacidade do tanque: 600
Numero de Passageiros: 500
Preço: 670.00
Digite a data de Revisão: 15/06/2022
Digite o prefixo: GF654
------ Listagem dos Dados do 6 ° Avião ------
Capacidade do tanque: 600
NumeroPassageiros: 500
Preço: 670.0
Deseja reajustar o preço? digite s para continuar
s
Digite o valor percentual para ajustar o preço, exemplo 20 para20% de reajuste: 50
Preço Reajustado: 1005.0
------ Insira os Dados do 7° Avião ------
Capacidade do tanque: 950
Numero de Passageiros: 760
Preço: 980.00
Digite a data de Revisão: 15/08/2022
Digite o prefixo: KYW34
------ Listagem dos Dados do 7 ° Avião ------
Capacidade do tanque: 950
NumeroPassageiros: 760
Preço: 980.0
Deseja reajustar o preço? digite s para continuar
n
------ Insira os Dados do 8° Avião ------
Capacidade do tanque: 400
Numero de Passageiros: 300
Preço: 675.00
Digite a data de Revisão: 20/09/2022
Digite o prefixo: ZX765
------ Listagem dos Dados do 8 ° Avião ------
Capacidade do tanque: 400
NumeroPassageiros: 300
Preço: 675.0
Deseja reajustar o preço? digite s para continuar
n
------ Insira os Dados do 9° Avião ------
Capacidade do tanque: 300
Numero de Passageiros: 98
Preço: 350.00
Digite a data de Revisão: 25/10/2022
Digite o prefixo: BCD43
------ Listagem dos Dados do 9 ° Avião ------
Capacidade do tanque: 300
NumeroPassageiros: 98
Preço: 350.0
Deseja reajustar o preço? digite s para continuar
s
Digite o valor percentual para ajustar o preço, exemplo 20 para20% de reajuste: 60
Preço Reajustado: 560.0
------ Insira os Dados do 10° Avião ------
Capacidade do tanque: 900
Numero de Passageiros: 750
Preço: 798.0
Digite a data de Revisão: 16/09/2022
Digite o prefixo: RMD41
------ Listagem dos Dados do 10° Avião ------
Capacidade do tanque: 900
NumeroPassageiros: 750
Preço: 798.0
Deseja reajustar o preço? digite s para continuar
s
Digite o valor percentual para ajustar o preço, exemplo 20 para20% de reajuste: 30
Preço Reajustado: 1037.3999
------ Dados do Navio ------
------ Insira os Dados do 1° Navio ------
Capacidade do tanque: 900
Numero de Passageiros: 98
Preço: 450.00
Numero de Tripulantes: 45
------ Listagem dos Dados do 1 ° Navio ------
Capacidade do tanque: 900
NumeroPassageiros: 98
Preço: 450.0
Numero de Tripulantes: 45
numero de passageiros x tripulantes = 1.0
------ Insira os Dados do 2° Navio ------
Capacidade do tanque: 800
Numero de Passageiros: 78
Preço: 67.00
Numero de Tripulantes: 34
------ Listagem dos Dados do 2 ° Navio ------
Capacidade do tanque: 800
NumeroPassageiros: 78
Preço: 67.0
Numero de Tripulantes: 34
numero de passageiros x tripulantes = 1.0
------ Insira os Dados do 3° Navio ------
Capacidade do tanque: 700
Numero de Passageiros: 45
Preço: 98.00
Numero de Tripulantes: 97
------ Listagem dos Dados do 3 ° Navio ------
Capacidade do tanque: 700
NumeroPassageiros: 45
Preço: 98.0
Numero de Tripulantes: 97
numero de passageiros x tripulantes = 1.0
------ Insira os Dados do 4° Navio ------
Capacidade do tanque: 900
Numero de Passageiros: 79
Preço: 760.00
Numero de Tripulantes: 63
------ Listagem dos Dados do 4 ° Navio ------
Capacidade do tanque: 900
NumeroPassageiros: 79
Preço: 760.0
Numero de Tripulantes: 63
numero de passageiros x tripulantes = 1.0
------ Insira os Dados do 5° Navio ------
Capacidade do tanque: 500
Numero de Passageiros: 87
Preço: 350.0
Numero de Tripulantes: 34
------ Listagem dos Dados do 5 ° Navio ------
Capacidade do tanque: 500
NumeroPassageiros: 87
Preço: 350.0
Numero de Tripulantes: 34
numero de passageiros x tripulantes = 1.0
------ Insira os Dados do 6° Navio ------
Capacidade do tanque: 760
Numero de Passageiros: 23
Preço: 560.0
Numero de Tripulantes: 76
------ Listagem dos Dados do 6 ° Navio ------
Capacidade do tanque: 760
NumeroPassageiros: 23
Preço: 560.0
Numero de Tripulantes: 76
numero de passageiros x tripulantes = 1.0
------ Insira os Dados do 7° Navio ------
Capacidade do tanque: 500
Numero de Passageiros: 300
Preço: 400.0
Numero de Tripulantes: 67
------ Listagem dos Dados do 7 ° Navio ------
Capacidade do tanque: 500
NumeroPassageiros: 300
Preço: 400.0
Numero de Tripulantes: 67
numero de passageiros x tripulantes = 1.0
------ Insira os Dados do 8° Navio ------
Capacidade do tanque: 600
Numero de Passageiros: 39
Preço: 550.0
Numero de Tripulantes: 85
------ Listagem dos Dados do 8 ° Navio ------
Capacidade do tanque: 600
NumeroPassageiros: 39
Preço: 550.0
Numero de Tripulantes: 85
numero de passageiros x tripulantes = 1.0
------ Insira os Dados do 9° Navio ------
Capacidade do tanque: 800
Numero de Passageiros: 45
Preço: 785.0
Numero de Tripulantes: 87
------ Listagem dos Dados do 9 ° Navio ------
Capacidade do tanque: 800
NumeroPassageiros: 45
Preço: 785.0
Numero de Tripulantes: 87
numero de passageiros x tripulantes = 1.0
------ Insira os Dados do 10° Navio ------
Capacidade do tanque: 450
Numero de Passageiros: 87
Preço: 300.0
Numero de Tripulantes: 29
------ Listagem dos Dados do 10° Navio ------
Capacidade do tanque: 450
NumeroPassageiros: 87
Preço: 300.0
Numero de Tripulantes: 29
numero de passageiros x tripulantes = 1.0
BUILD SUCCESSFUL (total time: 12 minutes 28 seconds)
CONCLUSÃO
O trabalho foi desenvolvido conforme solicitado no enunciado. Foi criada uma superclasse com todas as funcionalidades comuns às classes similares, atendendo às necessidades específicas das subclasses por meio do conceito de herança.
A aplicação desenvolvida utiliza um vetor único contendo dez objetos de cada tipo, todos instanciados por meio de construtores padrão (sem parâmetros). Para garantir a segurança e estabilidade da aplicação, foi implementado o tratamento de exceções, de forma a proteger o sistema contra possíveis entradas de dados inválidos, utilizando os métodos da classe Scanner.
Conforme solicitado, elaborou-se o diagrama de hierarquia das classes, identificando claramente onde cada atributo está localizado após a aplicação do conceito de herança. A hierarquia foi definida de forma lógica e coerente, com o desenvolvimento separado de todas as classes envolvidas, incluindo a classe
principal (classe de aplicação).
O diagrama foi modelado em linguagem UML, utilizando a ferramenta do NetBeans, após sua instalação e configuração.
REFERÊNCIAS
Manual de modelagem. Disponível em: https://ww2.inf.ufg.br/~fabio/manual-modelagem.pdf . Acessado em: 14 de setembro de 2025.
Geração de Classe Java com Diagrama UML no NetBeans. Youtube. Disponível em:
https://www.youtube.com/watch?v=J8DPbkuznZQ&ab_channel=MarceloJosu%C3%
A9Telles . Acessado em: 14 setembro de 2022.
Orientações básicas na elaboração de um diagrama de classes. Disponível em: https://www.devmedia.com.br/orientacoes-basicas-na-elaboracao-de-um-diagrama-de-classes/37224 . Acesso em: 14 de setembro de 2025.
Materiais disponíveis no plano de aula da disciplina.