Logo Passei Direto
Buscar
Material

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.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Mais conteúdos dessa disciplina