Galera, estou no início do meu curso em Java. Acabei de fazer uma prova que por sinal foi um fiasco só, se eu tirar 3 vai ser muito.
Pois bem, o problema segue abaixo(vou colar o código inteiro, mas minhas dúvidas são poucas):
- Uma empresa de eventos promove diferentes tipos de espetáculos. Para controlar os eventos e suas avaliações, está sendo desenvolvido um sistema com a seguinte estrutura de classes:
? A classe Evento é classe-base para a classe Show Musical, que é um tipo de evento promovido. Portanto, Show Musical herda as características de Evento.
? A classe Avaliação é parte da classe Evento(classe Evento possuí uma instancia de Avaliação).
? O método Mostra é implementado tanto na classe-base quanto na descendente. Cada uma responde a este método mostrando todos os dados que possui (herdados ou próprios).
? A interface ao usuário questionará se o evento a ser cadastrado é Qualquer ou Show Musical, para então criar o objeto correspondente.
? Ao final, imprimir todos os eventos cadastrados, com os dados da respectiva avaliação.
A classe Evento:
import javax.swing.JOptionPane;
public class Evento {
private Avaliacao aval = new Avaliacao();
private String titulo;
private double valorIngresso;
private int ano;
private int mes;
private int dia;
public Avaliacao getAval() {
return aval;
}
public void setAval(Avaliacao aval) {
this.aval = aval;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public double getValorIngresso() {
return valorIngresso;
}
public void setValorIngresso(double valorIngresso) {
this.valorIngresso = valorIngresso;
}
public int getAno() {
return ano;
}
public void setAno(int ano) {
this.ano = ano;
}
public int getMes() {
return mes;
}
public void setMes(int mes) {
this.mes = mes;
}
public int getDia() {
return dia;
}
public void setDia(int dia) {
this.dia = dia;
}
public void mostra() {
JOptionPane.showMessageDialog(null, "Evento: "+titulo+
"Valor do ingresso: "+valorIngresso+
"Ocorre em: "+dia+"/"+mes+"/"+ano+
"Opinião geral: "+aval.getOpiniaoGeral()+"."+" Quant. pagantes: "+aval.getQtdPagantes()+" pessoas.");
}
}
A classe ShowMusical
public class ShowMusical extends Evento {
private String nomeConjunto;
private String tipoMusica;
public String getNomeConjunto() {
return nomeConjunto;
}
public void setNomeConjunto(String nomeConjunto) {
this.nomeConjunto = nomeConjunto;
}
public String getTipoMusica() {
return tipoMusica;
}
public void setTipoMusica(String tipoMusica) {
this.tipoMusica = tipoMusica;
}
@Override
public void mostra() {
System.out.println("Evento: Show musical, com a banda "+nomeConjunto+" de "+tipoMusica+" ocorre em "+super.getDia()+"/"+super.getMes()+"/"+super.getAno()+"."+" Avaliação: "+super.getAval());
}
}
A classe Avaliacao:
public class Avaliacao {
private int qtdPagantes;
private String opiniaoGeral;
public int getQtdPagantes() {
return qtdPagantes;
}
public void setQtdPagantes(int qtdPagantes) {
this.qtdPagantes = qtdPagantes;
}
public String getOpiniaoGeral() {
return opiniaoGeral;
}
public void setOpiniaoGeral(String opiniaoGeral) {
this.opiniaoGeral = opiniaoGeral;
}
}
A interface para o usuario:
import javax.swing.JOptionPane;
public class InterfaceUsuario {
private byte auxiliar;
private Avaliacao avali = new Avaliacao();
public void receberDados() {
auxiliar = Byte.valueOf(JOptionPane.showInputDialog("Qual é o tipo de evento?\n 1 - Evento Geral\n 2 - Show Musical"));
if (auxiliar == 1)
this.eventoNormal();
else if (auxiliar == 2)
this.eventoShow();
else
JOptionPane.showMessageDialog(null, "Opção inválida!");
receberDados();
}
public void eventoNormal() {
Evento evento = new Evento();
evento.setTitulo(JOptionPane.showInputDialog("Qual o nome do evento?"));
evento.setValorIngresso(Double.valueOf(JOptionPane.showInputDialog("Qual o valor do ingresso?")));
evento.setDia(Integer.valueOf(JOptionPane.showInputDialog("Dia que ocorreu o evento?")));
evento.setMes(Integer.valueOf(JOptionPane.showInputDialog("Mes em que ocorreu o evento?")));
evento.setAno(Integer.valueOf(JOptionPane.showInputDialog("Ano em que ocorreu o evento?")));
avali.setQtdPagantes(Integer.valueOf(JOptionPane.showInputDialog("Quantidade de pagantes?")));
avali.setOpiniaoGeral(JOptionPane.showInputDialog("Opinião geral?"));
menuPrincipal();
}
public void eventoShow() {
ShowMusical showM = new ShowMusical();
showM.setNomeConjunto(JOptionPane.showInputDialog("Qual o nome do conjunto musical?"));
showM.setTipoMusica(JOptionPane.showInputDialog("Qual o estilo musical?"));
showM.setValorIngresso(Double.valueOf(JOptionPane.showInputDialog("Qual o valor do ingresso?")));
showM.setDia(Integer.valueOf(JOptionPane.showInputDialog("Dia em que ocorreu o show?")));
showM.setMes(Integer.valueOf(JOptionPane.showInputDialog("Mes em que ocorreu o show?")));
showM.setAno(Integer.valueOf(JOptionPane.showInputDialog("Ano em que ocorreu o show?")));
avali.setQtdPagantes(Integer.valueOf(JOptionPane.showInputDialog("Quantidade de pagantes?")));
avali.setOpiniaoGeral(JOptionPane.showInputDialog("Opinião geral?"));
menuPrincipal();
}
public void menuPrincipal() {
Evento evento = new Evento();
ShowMusical show = new ShowMusical();
byte aux = 0;
aux = Byte.valueOf(JOptionPane.showInputDialog("1 - Cadastrar evento\n 2 - Visualizar eventos gerais\n 3 - Visualizar shows musicais"));
if (aux == 1) {
aux = 0;
receberDados();}
else if (aux == 2) {
aux = 0;
evento.mostra();}
else if (aux == 3){
aux = 0;
show.mostra();}
else
aux = 0;
JOptionPane.showMessageDialog(null, "Opção inválida!!");
menuPrincipal();
}
}
E uma classe Main, apenas pra conter o método main
public class Main {
public static void main(String[] args) {
InterfaceUsuario interfac = new InterfaceUsuario();
interfac.menuPrincipal();
}
}
Pois então, estou com dúvida em duas coisas:
1ª Fiz a parte de instanciar a classe Avaliacao na classe Evento?
2ª Minha parte de trabalhar com os objetos da classe Avaliação e atribuir valores aos atributos da classe avaliação estão errados, certo?
To meio sem noção nisso, não é algo que julgo difícil, mas meu trabalho tem me estressado muito, chego em casa sem vontade de fazer nada e acabou não estudando e exercitando o que vi nas aulas. Acho até que vou largar meu emprego de meio expediente pra me dedicar só a estes estudos.