Jump to content
Camarinha

Loja de CDs

Recommended Posts

Camarinha

Boa Tarde!

Sou iniciante em java e estou neste momento com uma duvida no desenvolvimento do seguinte projecto.

0i3k.jpg

A classe Midia é uma classe abstrata e a classe CD e DVD são as suas classes concretas.

Já criei as 3 classes

Midia

public abstract class Midia {

int codigo;
double preco;
String nome;


public Midia(int c, double p, String n){
 this.codigo=c;
 this.preco=p;
 this.nome=n;
}
public int getCodigo(){
 return this.codigo;

 }
public double getPreco(){
 return this.preco;
 }
public String getNome(){
 return this.nome;
}
public void setCodigo(int codigo){
 this.codigo=codigo;
}
public void setPreco(double preco){
 this.preco=preco;
}
public void setNome(String nome){
 this.nome=nome;
}
public abstract String getTipo();


public abstract String getDetalhes();

public void printDados(){
 getTipo();
 getDetalhes();
}


public abstract void inserirDados();

}

CD

public class CD extends Midia{
int nMusicas;
String name;
Scanner n= new Scanner(System.in);

public CD(int c, double p, String s, int m){
 super(c,p,s);
 this.nMusicas=m;
}


public int getMusicas(){
 return this.nMusicas;
}
public void setMusicas(int m){
 this.nMusicas=m;

}
public String getTipo(){
 return "CD";

		 }
public String getDetalhes(){
 return "\n"+"Codigo: "+super.codigo+"\n"+"Nome: "+super.nome+"\n"+"Preço: "+super.preco+"\n"+"Musicas: "+this.nMusicas;
}

public void inserirDados(){
 System.out.println("Inserir dados CD: ");
 System.out.println("Nome: ");
 name=n.nextLine();
 System.out.println("Código: ");
 int c=n.nextInt();
 System.out.println("Preço: ");
 double p=n.nextDouble();
 System.out.println("nº de Musicas: ");
 int m=n.nextInt();


 new CD(c,p,name,m);

 }
public boolean equals(CD c){
 return c.getMusicas()==this.getMusicas();
}

public CD Clone(){
 return new CD(super.getCodigo(),super.getPreco(), super.getNome(),this.getMusicas());
 }
public String toString(){
 StringBuilder c = new StringBuilder();

 c.append("########################CD############################" +"\n");
 c.append("Informações do CD: \n");
 c.append("Tipo: "+getTipo()+"\n");
 c.append("DETALHES "+getDetalhes()+"\n");

 return c.toString();
}

}

DVD

public class DVD extends Midia{

int nFaixas;


Scanner n= new Scanner(System.in);

public DVD(int c, double p, String s, int f){
 super(c,p,s);
 this.nFaixas=f;
}

public int getFaixas(){
 return this.nFaixas;
}
public void setFaixas(int f){
 this.nFaixas=f;

}
public String getTipo(){
 return "DVD";

		 }
public String getDetalhes(){
 return "\n"+"Codigo: "+super.codigo+"\n"+"Nome: "+super.nome+"\n"+"Preço: "+super.preco+"\n"+"Faixas: "+this.nFaixas;
}

public void inserirDados(){
 System.out.println("Inserir dados DVD: ");
 System.out.println("Nome: ");
 String nom=n.nextLine();
 System.out.println("Código: ");
 int c=n.nextInt();
 System.out.println("Preço: ");
 double p=n.nextDouble();
 System.out.println("nº de Faixas: ");
 int m=n.nextInt();

 new CD(c,p,nom,m);



}
public void definirCor(){

}
public boolean equals(DVD d){
 return d.getFaixas()==this.getFaixas();
}

public DVD Clone(){
 return new DVD(super.getCodigo(),super.getPreco(), super.getNome(),this.getFaixas());
 }

public String toString(){
 StringBuilder c = new StringBuilder();

 c.append("########################DVD############################" +"\n");
 c.append("Informações do DVD: \n");
 c.append("Tipo: "+getTipo()+"\n");
 c.append("DETALHES "+getDetalhes()+"\n");

 return c.toString();
}
}

Classe Teste

public class Teste {

public static void main(String[]args){

 CD c1;
 DVD d1;

	 Scanner m= new Scanner(System.in);	
 System.out.println("Pretende adicionar o que?");
 System.out.println("1-CD");
 System.out.println("2-DVD");
 int resp=m.nextInt();

 if(resp==1){
 c1= new CD(2,24.00,"Anjos",15);
 c1.inserirDados();
 System.out.println(c1.toString());

 }
 if(resp==2){
 d1= new DVD(3,45.00,"Natal",50);
 d1.inserirDados();
 System.out.println(d1.toString());

 }
}
}

Bem, o que queria era se possível que me indicasse quais os erros que tenho no meu código.

E que me explicassem como criar uma classe Vendas com um Arraylist<Midia> que faça a gestão dos midia registados/vendidos.

Edited by Rui Carlos
GeSHi

Share this post


Link to post
Share on other sites
Rui Carlos

Assim de repente, não percebi para que era o Scanner que aparece aí pelo meio... Adicionalmente, o clone deve ter sempre a assinatura public Object clone().

Quanto às vendas, não sei exactamente quais os problemas que estás a ter. É só definires um campo para as vendas, e adicionar elementos ao mesmo.

public class Vendas {
private ArrayList<Midia> vendas;
...

public Vendas() {
	this.vendas = new ArrayList<Midia>();
}

public void adicionaVenda(Midia m) {
	...
}

...
}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.