Java - Erros de compilação

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:

public class entrandoDados
{
private String descricao;
private int quantidade;
private double preco;
//Método construtor
public entrandoDados(){
}
public entrandoDados (String d, int q, double p)
{
desc=d;
quant=p;
pr=p;
}
//Métodos de acesso
public String getDescricao()
{
return descricao;
}
public int getQuantidade()
{
return quantidade;
}
public double getPreco()
{
return preco;
}
//Métodos operacionais
public double subTot()
{
return quantidade*preco;
}
}
import java.util.Scanner;
public class geraNotaFiscal
{
public static void main (String [] args)
{
Scanner in = new Scanner(System.in);
entrandoDados matriz [][] = new entrandoDados[][4];// não sei a quantidade de linhas
double total=0; // essa variável vai acumular o total das compras feita pela pessoa
int i=0;
String descr;
int qtd;
double precos;
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);
}}

Por favor, ao postar códigos, use a tag code.
Se ainda não sabe fazer isso, leia:
http://www.guj.com.br/posts/list/50115.java

[quote=ViniGodoy]Por favor, ao postar códigos, use a tag code.
Se ainda não sabe fazer isso, leia:
http://www.guj.com.br/posts/list/50115.java[/quote]

Valeu pela a dica, estava precisando desta informação para postar as minha dúvida quando uso o código como exemplo.

Então, 2 coisas:

  • quais foram os erros?
  • a linha abaixo:
for(i=0; matriz.lengtht;i++)

tem pelo menos 2 erros:

  • você não está informando até onde a variável i deve variar;
  • se quer saber o tamanho do array matriz, deve usar length, e não lenght;

Em resumo, ficaria assim:

for(i=0; i < matriz.length;i++)

Mas de qualquer forma, posta os erros, ok?
Boa sorte!

se não inicializar o numero de linhas E colunas na matriz tbm nao vai compilar.
essa atribuição tbm eh um pouco estranho:

matriz[i][0]=descr=in.nextLine(); 

é recomendável tbm que o nome da classe comece com letra maiúscula, mas isso não interfere na compilação, é so uma recomendação.

5 errors found:
File: N:\entrandoDados.java [line: 34]
Error: N:\entrandoDados.java:34: class, interface, or enum expected
File: N:\entrandoDados.java [line: 40]
Error: N:\entrandoDados.java:40: ‘]’ expected
File: N:\entrandoDados.java [line: 40]
Error: N:\entrandoDados.java:40: ‘;’ expected
File: N:\entrandoDados.java [line: 46]
Error: N:\entrandoDados.java:46: ‘)’ expected
File: N:\entrandoDados.java [line: 46]
Error: N:\entrandoDados.java:46: illegal start of expression

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.

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.

hmmm…por acaso você está colocando mais de uma classe pública no mesmo arquivo? Isso não é possível no java.

Como assim? Sou nova no Java, comecei há pouco tempo.

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

este codigo compilou?

[code]private String descricao;
private int quantidade;
private double preco;

public entrandoDados(String d, int q, double p) {
desc = d;
quant = p;
pr = p;
}[/code]

os nomes precisam ser iguais da forma como vc criou:

[code]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;
}[/code]

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 :wink:

Vou colocar em prática todas as dicas dadas aqui, inclusive a de estudar.
Obrigada a todos.