Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

1 
 
 
 
 UNIVERSIDADE VEIGA DE ALMEIDA 
 
 
 
 Sistema da Informação EAD 
 
 
 
 
 
 
 
 
Tijuca/RJ 
 
 
 
 
2 
 
 
 
 
 
 
Aluna: Nathassha Silvia Leite da Silva Figueredo 
Matrícula: 1240113768 
 
Professor: Marco Aurelio Novaes Esteves 
 
Disciplina: Linguagem e Técnica de Programação (IL10309) 
 
https://uva.instructure.com/courses/49741/users/65161
https://uva.instructure.com/courses/41685
3 
 
 
 
Sumário 
 Introdução .................................................................................................................................... 4 
Diagrama .................................................................................................................................... 5 
Descrição das Classes ............................................................................................................... 6 
 Codigo das Classes .................................................................................................................. 7 
 Resultados ............................................................................................................................... 15 
Conclusão ................................................................................................................................. 16 
 Bibliografia ................................................................................................................................. 16 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4 
 
 
 
 
 
INTRODUÇÃO 
 
O presente projeto tem como objetivo a implementação de uma hierarquia de classes em Java, 
utilizando o conceito de herança, bem como a criação de vetores de objetos com tratamento de 
exceções. Foram implementadas as classes Transporte (superclasse), Aviao e Navio 
(subclasses), que representam meios de transporte distintos, porém compartilham características 
comuns. Além disso, foi desenvolvida uma aplicação que utiliza vetores para armazenar múltiplos 
objetos de cada tipo, com entrada de dados via teclado. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5 
 
 
 
 
 
Diagrama de Hierarquia de Classes (UML) 
 
 Transporte 
 +-------------------------------+ 
 | - capacidadeTanque : int | 
 | - numeroPassageiros : int | 
 | - preco : double | 
 +-------------------------------+ 
 | + imprimir() | 
 | + entrada(Scanner) | 
 +---------------+---------------+ 
 | 
 +-------------+-------------+ 
 | | 
 Aviao Navio 
+------------------+ +----------------------+ 
| - prefixo : String| | - nome : String | 
| - dataRevisao:Str.| | - numeroTripulantes: | 
+------------------+ | int | 
| + reajustarPreco()| | - dataLancamento:Str.| 
+------------------+ +----------------------+ 
 
 
 
 
 
 
 
 
 
6 
 
 
 
 
Descrição das Classes 
Classe Transporte (Superclasse) 
A classe Transporte possui os atributos comuns entre aviões e navios: capacidade do tanque, 
número de passageiros e preço. Possui dois construtores (vazio e com parâmetros), métodos de 
acesso (getters e setters), além dos métodos imprimir() e entrada() com tratamento de exceções 
para entradas inválidas. 
Classe Aviao (Subclasse) 
A classe Aviao herda de Transporte e adiciona os atributos prefixo e dataRevisao. Possui dois 
construtores, além dos métodos específicos imprimir(), entrada() e reajustarPreco(), que permite 
alterar o valor do preço com base em um percentual fornecido. 
Classe Navio (Subclasse) 
A classe Navio também herda de Transporte e adiciona os atributos nome, numeroTripulantes e 
dataLancamento. Possui cinco construtores sobrecarregados, métodos imprimir() e entrada(), 
além do método passageirosPorTripulantes(), que retorna a razão entre passageiros e tripulantes. 
 
 
 
 
 
 
 
 
 
 
 
 
 
7 
 
 
 
 
 
 
Código das Classes 
import java.util.InputMismatchException; 
import java.util.Scanner; 
 
public class MeioDeTransporte { 
 protected int capacidadeTanque; 
 protected int numeroPassageiros; 
 protected double preco; 
 
 // Construtor vazio 
 public MeioDeTransporte() { 
 this.capacidadeTanque = 0; 
 this.numeroPassageiros = 0; 
 this.preco = 0.0; 
 } 
 
 // Construtor com parâmetros 
 public MeioDeTransporte(int capacidadeTanque, int numeroPassageiros, double preco) { 
8 
 
 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; } 
 
 // Métodos comuns 
 public void imprimir() { 
 System.out.println("Capacidade do tanque: " + capacidadeTanque); 
 System.out.println("Número de passageiros: " + numeroPassageiros); 
 System.out.println("Preço: " + preco); 
 } 
9 
 
 
 public void entrada() { 
 Scanner sc = new Scanner(System.in); 
 try { 
 System.out.print("Capacidade do tanque: "); 
 capacidadeTanque = sc.nextInt(); 
 System.out.print("Número de passageiros: "); 
 numeroPassageiros = sc.nextInt(); 
 System.out.print("Preço: "); 
 preco = sc.nextDouble(); 
 } catch (InputMismatchException e) { 
 System.out.println("Erro: tipo de dado inválido. Tente novamente!"); 
 sc.nextLine(); // limpa o buffer 
 } 
 } 
} 
 
 
Aviao.java 
public class Aviao extends MeioDeTransporte { 
 private String prefixo; 
 private String dataRevisao; 
 
10 
 
 // Construtores 
 public Aviao() { 
 super(); 
 this.prefixo = ""; 
 this.dataRevisao = ""; 
 } 
 
 public Aviao(String prefixo, int capacidadeTanque, int numeroPassageiros, double preco, 
String dataRevisao) { 
 super(capacidadeTanque, numeroPassageiros, preco); 
 this.prefixo = prefixo; 
 this.dataRevisao = dataRevisao; 
 } 
 
 // Getters e Setters 
 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; } 
 
 // Métodos 
 @Override 
 public void imprimir() { 
 System.out.println("=== AVIÃO ==="); 
 System.out.println("Prefixo: " + prefixo); 
 super.imprimir(); 
11 
 
 System.out.println("Data da Revisão: " + dataRevisao); 
 } 
 
 @Override 
 public void entrada() { 
 super.entrada(); 
 Scanner sc = new Scanner(System.in); 
 System.out.print("Prefixo: "); 
 prefixo = sc.nextLine(); 
 
 System.out.print("Data da Revisão: "); 
 dataRevisao = sc.nextLine(); 
 } 
 
 public void reajustarPreco(double percentual) { 
 this.preco += this.preco * (percentual / 100); 
 } 
} 
Navio.java 
public class Navio extends MeioDeTransporte { 
 private String nome; 
 private int numeroTripulantes; 
 private String dataLancamento; 
 
 // Construtores 
 public Navio() { 
12 
 
 super(); 
 this.nome= ""; 
 this.numeroTripulantes = 0; 
 this.dataLancamento = ""; 
 } 
 
 public Navio(String nome, int capacidadeTanque, int numeroPassageiros, int 
numeroTripulantes, double preco, String dataLancamento) { 
 super(capacidadeTanque, numeroPassageiros, preco); 
 this.nome = nome; 
 this.numeroTripulantes = numeroTripulantes; 
 this.dataLancamento = dataLancamento; 
 } 
 
 // Getters e Setters 
 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; } 
 
 // Métodos 
13 
 
 @Override 
 public void imprimir() { 
 System.out.println("=== NAVIO ==="); 
 System.out.println("Nome: " + nome); 
 super.imprimir(); 
 System.out.println("Número de tripulantes: " + numeroTripulantes); 
 System.out.println("Data de Lançamento: " + dataLancamento); 
 } 
 
 @Override 
 public void entrada() { 
 super.entrada(); 
 Scanner sc = new Scanner(System.in); 
 System.out.print("Nome: "); 
 nome = sc.nextLine(); 
 
 try { 
 System.out.print("Número de tripulantes: "); 
 numeroTripulantes = sc.nextInt(); 
 } catch (Exception e) { 
 System.out.println("Erro: número de tripulantes inválido."); 
 sc.nextLine(); 
 } 
 
 System.out.print("Data de Lançamento: "); 
 sc.nextLine(); // limpeza do buffer 
14 
 
 dataLancamento = sc.nextLine(); 
 } 
 
 public double passageirosPorTripulantes() { 
 if (numeroTripulantes == 0) return 0; 
 return (double) numeroPassageiros / numeroTripulantes; 
 } 
} 
Classe Principal: 
public class App { 
 public static void main(String[] args) { 
 MeioDeTransporte[] transportes = new MeioDeTransporte[20]; 
 
 // 10 aviões 
 for (int i = 0; i

Mais conteúdos dessa disciplina