Estou compilando um programa no DrJava e erros estão aparecendo, mas não consigo solucioná-los, alguém poderia me ajudar?
Aqui vai o enunciado:
Crie uma simulação de entrada de produtos, como em um supermercado, onde conste a descrição do produtos, quantidade e o preço do produto. Gere um aplicativo que simule uma nota fiscal. Pense na classe que deve ser criada apartir da descrição do problema. Crie o aplicativo para executar chamado geraNotaFiscal.
Aqui vai o código:
publicclassentrandoDados{privateStringdescricao;privateintquantidade;privatedoublepreco;//Método construtorpublicentrandoDados(){}publicentrandoDados(Stringd,intq,doublep){desc=d;quant=p;pr=p;}//Métodos de acessopublicStringgetDescricao(){returndescricao;}publicintgetQuantidade(){returnquantidade;}publicdoublegetPreco(){returnpreco;}//Métodos operacionaispublicdoublesubTot(){returnquantidade*preco;}}importjava.util.Scanner;publicclassgeraNotaFiscal{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);entrandoDadosmatriz[][]=newentrandoDados[][4];// não sei a quantidade de linhasdoubletotal=0;// essa variável vai acumular o total das compras feita pela pessoainti=0;Stringdescr;intqtd;doubleprecos;for(i=0;matriz.lengtht;i++;){System.out.println("\nDescrição:");matriz[i][0]=descr=in.nextLine();System.out.println("\nQuantidade:");matriz[i][1]=qtd=in.nextInt();System.out.println("\nPreço:");matriz[i][2]=precos=in.nextDouble();matriz[i][3]=matriz[i][3].subTot();total=total+matriz[i][3];}System.out.println("\nSupermercado ABC\nProduto\tQuantidade\tPreço\tSubtotal\n Total:"+matriz[i][0]+matriz[i][1]+matriz[i][2]+matriz[i][3]+total);}}
eu tinha visto que escrevi o método legnth errado ai fui tentar corrigir por aqui mesmo e acabou ficando mais errado ainda, mas no compilador escrevi certo depois.
Lady21
Eu não incializei os números de linhas e colunas porque só sabia o de colunas(que eram quatro: descrição, quantidade, preço e subtotal) então pra saber o de linhas usei o length.
Eu nunca tinha feito essa atribuição mas foi a idéia que tive de preenchimento da matriz.
Rodrigo_Vieira_Pinto
hmmm…por acaso você está colocando mais de uma classe pública no mesmo arquivo? Isso não é possível no java.
Lady21
Como assim? Sou nova no Java, comecei há pouco tempo.
robsonsm
la nas atribuiçoes da matriz vc esta tentando inserir um tipo string
matriz[i][0]=descr=in.nextLine();
mas a matriz é de entrandoDados
entao acho que 1o vc precisa instanciar cada uma primeiro depois setar os atributos
ex:
matriz[i][0] = new entrandoDados();
matriz[i][0].setDescricao(in.nextLine());
detalhe: vc so criou getters no entrandoDados, crie tbm os setters
robsonsm
este codigo compilou?
private String descricao;
private int quantidade;
private double preco;
public entrandoDados(String d, int q, double p) {
desc = d;
quant = p;
pr = p;
}
os nomes precisam ser iguais da forma como vc criou:
private String descricao;
private int quantidade;
private double preco;
public entrandoDados(String d, int q, double p) {
this.descricao= d;
this.quantidade= q;
this.preco= p;
}
Rodrigo_Vieira_Pinto
se você estiver colocando todo esse código num único arquivo não vai funcionar. Nem se não houvesse mais nenhum erro de compilação.
Isso ocorre porque o java não aceita mais de uma classe pública num mesmo arquivo .java.
Traduzindo: coloque as classes
entrandoDados (de preferência como EntrandoDados, como já disseram) num arquivo .java;
e a classe GeraNotaFiscal num outro arquivo;
Os nomes dos arquivos devem ser os mesmos nomes das classes.
…e estude java menina!!
Boa sorte
Lady21
Vou colocar em prática todas as dicas dadas aqui, inclusive a de estudar.
Obrigada a todos.