Você está na página 1de 11

Faculdade Jorge Amado

Unijorge

Curso Superior de Tecnologia em


Análise e Desenvolvimento de Sistemas
Disciplina Programação Orientada a Objetos I

Docente
CELSO BARRETO DA SILVA

Aluna

VANESSA SOARES CARVALHAL


 Índice.
Introdução............................................................................................................................4
Introdução............................................................................................................................5
Conteúdo..............................................................................................................................6
Conteúdo..............................................................................................................................7
Conteúdo..............................................................................................................................8
Conteúdo..............................................................................................................................9
Conclusão...........................................................................................................................10
Blibliografia.........................................................................................................................11
Introdução

Desenvolvimento de projeto de aplicação


com uso de vetores de objetos com
tratamento de exceções
O uso de vetores e matrizes de objetos pode facilitar muito o desenvolvimento
de determinados projetos, facilitando o desenvolvimento, diminuindo a
complexidade e favorecendo a manutenção do sistema.
Dadas as classes a seguir, crie uma superclasse para atender às necessidades
das subclasses, com todas as funcionalidades comuns às classes similares.
Crie também uma aplicação que gere, por meio de um vetor único com dez
objetos de cada tipo, utilizando sempre o construtor vazio. Utilize o tratamento
de exceções para proteger a aplicação contra possíveis entradas de dados
inválida com os métodos da classe Scanner.
Classes:

 Classe Atributos Métodos

· Acesso (setters e getters).
· Construtores: pelo menos dois métodos
construtores.
Prefixo : Texto
· imprimir(): exibe os dados do objeto.
CapacidadeTanque : inteiro
. entrada(): realiza a entrada de dados pelo
 Aviao NumeroPassageiros : inteiro teclado
Preco : real · reajustarPreco(percentual : real): reajusta
DataRevisao : Texto o preço do avião, alterando o valor do
atributo de acordo com o percentual passado
como parâmetro.

 Navio Nome : Texto · Acesso (setters e getters).


CapacidadeTanque : inteiro · Construtores: pelo menos cinco métodos
construtores.
NumeroPassageiros : inteiro
· imprimir(): exibe os dados do objeto.
· entrada(): realiza a entrada de dados pelo
NumeroTripulantes : inteiro teclado
Preco : real · passageirosPorTripulantes(): retorna a
divisão do número de passageiros pelo
DataLancamento : Texto
número de tripulantes. Os valores usados
nesse método são atributos, por isso não
precisam ser passados como parâmetros.

Observações:
1. A superclasse deverá possuir dois métodos construtores também.
2. Apenas atributos com o mesmo nome e do mesmo tipo podem ser considerados
similares para a herança.
3. Os atributos devem ser protegidos contra acesso direto.

Monte o diagrama de hierarquia das classes e defina onde ficará cada atributo
após a aplicação do conceito de herança. Após a determinação da hierarquia,
desenvolva separadamente as classes (incluindo a classe de aplicação). O
projeto deve então ser documentado em um arquivo do Word e postado no
ambiente de avaliação.
Conteúdo
Classe SuperClasse
package trabalhojava;
import java.util.Scanner;

public class SuperClasse {


//Atributos
private int capacidadetanque;
private int numeropassageiros;
private float valor;
Scanner scan = new Scanner(System.in);

//metodos de acesso (setters e getters)


//Metodos-set
public void setcapacidadeTanque(int capactanq) {
this.capacidadetanque = capactanq;
}
public void setnumeroPassageiros(int numpass) {
this.numeropassageiros = numpass;
}
public void setpreco(float preco) {
this.valor = preco;
}
//Metodos-get
public int getcapacidadeTanque() {
return this.capacidadetanque;
}
public int getnumeroPassageiros() {
return this.numeropassageiros;
}
public float getvalor() {
return this.valor;
}
public void EntradaCapacidadeTanque() {
System.out.print("Capacidade do tanque(numeros): ");
setcapacidadeTanque(Integer.parseInt(scan.nextLine()));
}
public void EntradanumeroPassageiros() {
System.out.print("Numero de Passageiros: ");
setnumeroPassageiros(Integer.parseInt(scan.nextLine()));
}
public void EntradaPreco() {
System.out.print("Valor: ");
setpreco(Float.parseFloat(scan.nextLine()));
}
public void Cadastrar() {
EntradaCapacidadeTanque();
EntradanumeroPassageiros();
EntradaPreco();
}
public void Imprimir() {
System.out.print("Capacidade do tanque(numeros): " +
getcapacidadeTanque() + "\n");
System.out.print("NumeroPassageiros: " + getnumeroPassageiros() + "\
n");
System.out.print("Valor: " + getvalor() + "\n");
}
}

Classe Main
package trabalhojava;

public class Main {


public static void main(String[] args) {

int tamanhoVetor = 10;


ClasseAviao vetAviao[] = new ClasseAviao[tamanhoVetor];//
declaração e alocação de espaço para o vetor "v"

//recriar como vetores


ClasseAviao aviao = new ClasseAviao();
System.out.println("****** Dados do Aviao ******");
for (int i = 0; i < tamanhoVetor; i++) {
vetAviao[i] = aviao;
System.out.println("****** Insira os Dados do " + (i + 1)
+ "º Avião ******");
vetAviao[i] .Cadastrar();System.out.println("******
Listagem dos Dados do " + (i + 1) + "º Avião ******");
vetAviao[i] .Imprimir();
}

ClasseNavio vetNavio[] = new ClasseNavio[10]; //recriar como


vetores
System.out.println("****** Dados do Navio ******");
for (int i = 0; i < vetNavio.length; i++) {
vetNavio[i] = new ClasseNavio();
System.out.println("****** Insira os Dados do " + (i + 1)
+ "º Navio ******");
vetNavio[i].Cadastrar();System.out.println("------
Listagem dos Dados do " + (i + 1) + "º Navio ******");
vetNavio[i].Imprimir();
}
}
}

Classe Navio
package trabalhojava;
import java.util.Scanner;

public class ClasseNavio extends SuperClasse {


//Atributos
private String nome;
private int numerotripulantesnavio;
private String datalancamento;
//Metodo
//Metodos-set
public void setnome(String no) {
this.nome = no;
}
public void setnumeroTripulantes(int numt) {
this.numerotripulantesnavio = numt;
}
public void setdataLancamento(String dataL) {
this.datalancamento = dataL;
}
//Metodos-get
public String getnome() {
return this.nome;
}
public int getnumeroTripulantes() {
return this.numerotripulantesnavio;
}
public String getdataLancamento() {
return this.datalancamento;
}
public void passageirosportripulante() {
int passag = getnumeroPassageiros();
int tripulantes = getnumeroTripulantes();
float divisao = (passag / tripulantes);
if (passag >= tripulantes ) {
System.out.println("numero de passageiros x tripulantes =
" + divisao );
} else {
System.out.println("numero de tripulantes é maior
do que o de passageiros ");
}
}
public void InsercaoNumerodeTripulantes() {
System.out.print("Numero de Tripulantes: ");
setnumeroTripulantes(Integer.parseInt(scan.nextLine()));
}
public void Cadastrar() {
Scanner scan = new Scanner(System.in);
super.Cadastrar();
InsercaoNumerodeTripulantes();
}
public void Imprimir() {
super.Imprimir();
System.out.print("Numero de Tripulantes: " +
getnumeroTripulantes() + "\n");
passageirosportripulante();
}
}

Classe Aviao
package trabalhojava;
import java.util.Scanner;

public class ClasseAviao extends SuperClasse {


//Atributos
private String prefixo;
private String datarevisao;
//Metodos
//Metodos-set
public void setprefixo(String pref) {
this.prefixo = pref;
}
public void setdataRevisao(String dataR) {
this.datarevisao = dataR;
}
//Metodos-get
public String getprefixo() {
return this.prefixo;
}
public String getdataRevisao() {
return this.datarevisao;
}
public void reajustapreco() {
String reajustar;
String teste = "s";
float reajuste;System.out.println("Deseja reajustar o preço?
digite s para continuar" );
reajustar = scan.nextLine();
if (teste.equals(reajustar)) {
System.out.print("Digite o valor percentual para ajustar o
preço, exemplo 50 para 50% de reajuste: ");
reajuste = Float.parseFloat(scan.nextLine());
System.out.print("Valor Reajustado: " + (getvalor() *
((reajuste / 100) + 1)) + "\n");
}
}
public void EntradaPrefixo() {
System.out.print("Digite o prefixo: ");
setprefixo(scan.nextLine());
}
public void EntradadataRevisao() {
System.out.print("Digite a data de Revisão: ");
setdataRevisao(scan.nextLine());
}
public void Cadastrar() {
super.Cadastrar();
EntradadataRevisao();
EntradaPrefixo();
}
public void Imprimir() {
super.Imprimir();
getprefixo();
getdataRevisao();
reajustapreco();
}
}
Conclusão

Na execução do programa, o método construtor determina as ações que devem ser executadas
quando é criado um objeto a partir dos dados inseridos pelo usuário. O construtor é definido
como um método com o mesmo nome da classe e sem indicação do tipo de retorno. O
construtor é invocado no momento da criação do objeto. Mais de um construtor pode ser
definido para uma classe usando o mecanismo de sobrecarga.

****** Dados do Aviao ******


****** Insira os Dados do 1º Avião ******
Capacidade do tanque(numeros): 10
Numero de Passageiros: 200
Valor: 500
Digite a data de Revisão: 04/11
Digite o prefixo: 71
****** Listagem dos Dados do 1º Avião ******
Capacidade do tanque(numeros): 10
NumeroPassageiros: 200
Valor: 500.0
Deseja reajustar o preço? digite s para continuar
s
Digite o valor percentual para ajustar o preço, exemplo 50 para 50% de
reajuste: 50
Valor Reajustado: 750.0
Bibliografia
https://www.devmedia.com.br/introducao-a-programacao-orientada-a-objetos-
em-java/26452

https://acervolima.com/classes-e-objetos-em-java/

https://www.dm.ufscar.br/~waldeck/curso/java/part23.html

https://www.devmedia.com.br/vetores-em-java/21449

hps://uva.instructure.com/courses/13072/les/2106520?
module_item_id=161943
https://uva.instructure.com/courses/13072/files/2106498?
module_item_id=161944&fd_cookie_set=1
http://www.dca.fee.unicamp.br/cursos/PooJava
https://www.youtube.com/watch?
v=KlIL63MeyMY&list=PLHz_AreHm4dkqe2aR0tQK74m8SFe-aGsY

Você também pode gostar