Olá a todos. Como eu já vi muitos dizendo que é novo no mundo java e no forum, não quero repetir o que já foi várias vezes ditos (hehe!).
Sem mais delogas, estou aqui para pedir uma grande ajuda, o que irei postar de código será um pouco grande, mas me ajudem por favor porque eu não estou dando conta, não estou entendendo como fazer isso.
Bem o que deve ser feito é o seguinte: O programa deverá conter uma classe executável que deverá criar 3 álbuns distintos, com seus Setlist e Músicas (cada Setlist deverá ter, no mínimo, três músicas), e imprimi-los na tela do computador.
Bom, eu já dei conta de fazer as classes: Album, Setlist e Musica, mas não estou dando conta de fazer o main do enunciado acima, me ajudem por favor, e se puderem comentar os meus erros ficaria muito mais grato ainda:
import javax.swing.JOptionPane;
//Classe que cria o Album de um Artista;
public class Album {
private String nomeDoArtista;
private String nomeDoAlbum;
private double preco = 1;
private Setlist setlist;
private int anoDeLancamento = 0;
public Album(String nomeArtista, String nomeAlbum, double preco, Setlist setlist, int anoLancamento) {
setNomeDoArtista (nomeArtista);
setNomeDoAlbum (nomeAlbum);
setPreco (preco);
setSetlist (setlist);
setAnoDeLancamento (anoLancamento);
}
public String getNomeDoArtista (){
return nomeDoArtista;
}
public String getNomeDoAlbum (){
return nomeDoAlbum;
}
public double getPreco (){
return preco;
}
public Setlist getSetlist (){
return setlist;
}
public int getAnoDeLancamento (){
return anoDeLancamento;
}
public void setNomeDoArtista (String nome){
nomeDoArtista = nome;
}
public void setNomeDoAlbum (String nome){
nomeDoAlbum = nome;
}
public void setPreco (double preco){
if (preco < 1 || preco > 1000)
JOptionPane.showMessageDialog (null, "Preço inválido, o porgrama suporta preços entre $ 1,00 à $ 1000,00!\nERRO 4");
else
this.preco = preco;
}
public void setSetlist(Setlist setlist){
this.setlist = setlist;
}
public void setAnoDeLancamento (int ano){
if (ano < 1900 || ano > 2007)
JOptionPane.showMessageDialog (null,"Ano inválido!\nERRO 5");
else
anoDeLancamento = ano;
}
public void printMe (){
JOptionPane.showMessageDialog (null,"Nome do Album: "+nomeDoAlbum);
JOptionPane.showMessageDialog (null,"Nome do Artista: "+nomeDoArtista);
JOptionPane.showMessageDialog (null,"Preço: "+preco);
JOptionPane.showMessageDialog (null,"Ano de Lançamento:"+anoDeLancamento);
setlist.printMe();
}
}
/*Desenvolvido por: Neylor Leandro de Sousa*/
import javax.swing.JOptionPane;
//Esta classe vai pegar todas as músicas criadas com todos suas características e
//fazer um Setlist mesmo, fui claro?
public class Setlist {
private int numeroDeMusicas;
private Musica[] musicas = new Musica [numeroDeMusicas];//Galera, quando eu digitei numeroDeMusicas
//eu to determinando o tamanho do array ou
//jogando um inteiro no construtor?
private int duracao;
private int anoLancamento;
public Setlist (int numeroDeMusicas, Musica[] musicas, int duracao, int anoLancamentoDoAlbum){
this.setNumeroDeMusicas (numeroDeMusicas);
this.setMusicas (musicas);
this.setDuracao (duracao);
this.setAnoLancamento (anoLancamentoDoAlbum);
}
public int getAnoLancamento (){
return anoLancamento;
}
public int getNumeroDeMusicas (){
return numeroDeMusicas;
}
public Musica[] getMusicas (){
return musicas;
}
public int getDuracao (){
return duracao;
}
public void setNumeroDeMusicas (int numero){
numeroDeMusicas = numero;
}
public void setMusicas (Musica[] musicas){
for (int i = 0; i < numeroDeMusicas; i++){
this.musicas[i].setNome (musicas[i].getNome());
this.musicas[i].setLetra(musicas[i].getLetra());
this.musicas[i].setDuracao(musicas[i].getDuracao());
}
int duracao = 0;
for (int i = 0; i < numeroDeMusicas; i++){
duracao += musicas[i].getDuracao();
}
CalculaDuracao (duracao);
}
public void setDuracao (int duracao){
this.duracao = duracao;
}
public void setAnoLancamento (int ano){
if (ano < 1900 || ano > 2007)
JOptionPane.showMessageDialog (null,"Ano inválido!\nERRO 3");
else
anoLancamento = ano;
}
public void CalculaDuracao (int atualiza){
setDuracao(atualiza);
}
public void printMe (){
JOptionPane.showMessageDialog (null,"Número de Músicas: "+numeroDeMusicas);
JOptionPane.showMessageDialog (null,"Duração do Album em segundos: "+duracao);
for (int i = 0; i < numeroDeMusicas; i++) {
JOptionPane.showMessageDialog (null,"Nome da Música:: "+musicas[i].getNome()+"\n\nLetra: "+musicas[i].getLetra());
}
JOptionPane.showMessageDialog (null,"Ano de Lançamento: "+anoLancamento);
}
}
/*Desenvolvido por: Neylor Leandro de Sousa*/
E por último:
import javax.swing.JOptionPane;
//Esta classe cria apenas uma música.
public class Musica {
private String nome;
private String letra;
private int duracao;
public Musica(String nome, String letra, int duracao) {
this.setNome (nome);
this.setLetra (letra);
this.setDuracao (duracao);
}
public String getNome (){
return nome;
}
public String getLetra (){
return letra;
}
public int getDuracao (){
return duracao;
}
public void setNome (String nome){
if (nome == " " || nome == null){
JOptionPane.showMessageDialog(null, "Não é possível efetivar a operação\nERRO 1");
}
else
this.nome = nome;
}
public void setLetra (String letra){
this.letra = letra;
}
public void setDuracao (int duracao){
if (duracao < 0 || duracao > 1800)
JOptionPane.showMessageDialog(null,"Duração inexistente!\nERRO 2");
else
this.duracao = duracao;
}
public void printMe (){
JOptionPane.showMessageDialog(null,"Nome da música: "+nome);
JOptionPane.showMessageDialog(null,"Letra da música: "+letra);
JOptionPane.showMessageDialog(null,"Duração da música em segundos: "+duracao);
}
}
/*Desenvolvido por: Neylor Leandro de Sousa*/
Como é que eu faço a classe executável? Me ajudem por favor!
Muito grato por quem puder perder seu precioso tempo por tentar me ajudar, e a quem não pode muito obrigado também!
Té mais!