Java - Erros de compilação

12 respostas
Lady21

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);

}}

12 Respostas

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

vsousa

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

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

Rodrigo_Vieira_Pinto

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!

robsonsm

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.

Lady21

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.

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

Lady21

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

Criado 30 de setembro de 2010
Ultima resposta 30 de set. de 2010
Respostas 12
Participantes 5