publicstaticvoidmain(Stringargs[]){Invoicenumero=newInvoice("01");Invoicedescricao=newInvoice("4");Invoicequantidade=newInvoice("5");Invoicepreco=newInvoice(900.00);Scannerinput=newScanner(System.in);StringitemNumero;StringitemDescricao;intitemQuantidade;doubleitemPreco;System.out.print("Digite o numero do produto: ");itemNumero=input.nextLine();System.out.print("Digite a descricao do produto: ");itemDescricao=input.nextLine();System.out.print("Digite a quantidade: ");itemQuantidade=input.nextInt();System.out.print("Digite o preco do produto: ");itemPreco=input.nextDouble();System.out.printf("\nO numero do produto e: %s\n",numero.getItemNumero());System.out.printf("\nA descricao do produto e: %s\n",descricao.getItemDescricao());System.out.printf("\nO numero do produto e: %i\n",quantidade.getItemQuantidade());System.out.printf("\nO numero do produto e: %f\n",preco.getItemPreco());}
O erro ocorreu porque você inseriu um número de ponto flutuante usando o ponto como separador decimal. Embora seja o certo usá-lo como separador decimal no código fonte, em tempo de execução deve ser usada a vírgula. Sendo assim, ao aparecer a mensagem "Digite o preco do produto: ", ao invés de digitar 80.00, digite 80,00.
P.S.: Observei que você estava dentro do diretório bin do JDK, no entanto isto não é necessário para executar o comando java. Basta você configurar a variável de ambiente PATH que você poderá executar este, e outros comandos, como o javac, estando em qualquer diretório no Prompt de Comando.
Se possível coloque a linha 29 da classe InvoiceTest, ou até mesmo ela toda, assim dá pra identificar melhor o erro. E em relação ao outro problema, acho que você não conseguiu usar o comando javac no diretório C:\Documents and Settings\MaNDo porque provavelmente o arquivo Invoice.java não está neste diretório ou não existe.
publicstaticvoidmain(Stringargs[]){Invoiceinvoice=newInvoice("01","4",5,900.00);Scannerinput=newScanner(System.in);StringitemNumero;StringitemDescricao;intitemQuantidade;doubleitemPreco;System.out.print("Digite o numero do produto: ");itemNumero=input.nextLine();System.out.print("Digite a descricao do produto: ");itemDescricao=input.nextLine();System.out.print("Digite a quantidade: ");itemQuantidade=input.nextInt();System.out.print("Digite o preco do produto: ");itemPreco=input.nextDouble();System.out.printf("\nO numero do produto e: %s\n",invoice.getItemNumero());System.out.printf("\nA descricao do produto e: %s\n",invoice.getItemDescricao());System.out.printf("\nO numero do produto e: %i\n",invoice.getItemQuantidade());System.out.printf("\nO numero do produto e: %f\n",invoice.getItemPreco());}
}
E
elomarnsPJ
“mando82”:
obrigado, ai vai a classe InvoiceTest:
import java.util.Scanner;
public class InvoiceTest
{
private String numero; // Campo não utilizado
private String descricao; // Campo não utilizado
private int quantidade; // Campo não utilizado
private double preco; // Campo não utilizado
publicstaticvoidmain(Stringargs[]){Invoiceinvoice=newInvoice("01","4",5,900.00);Scannerinput=newScanner(System.in);StringitemNumero;StringitemDescricao;intitemQuantidade;doubleitemPreco;System.out.print("Digite o numero do produto: ");itemNumero=input.nextLine();System.out.print("Digite a descricao do produto: ");itemDescricao=input.nextLine();System.out.print("Digite a quantidade: ");itemQuantidade=input.nextInt();System.out.print("Digite o preco do produto: ");itemPreco=input.nextDouble();System.out.printf("\nO numero do produto e: %s\n",invoice.getItemNumero());System.out.printf("\nA descricao do produto e: %s\n",invoice.getItemDescricao());System.out.printf("\nO numero do produto e: %i\n",invoice.getItemQuantidade());System.out.printf("\nO numero do produto e: %f\n",invoice.getItemPreco());}
}
Esta classe está meio estranha. Existem campos que não estão sendo utilizados, você solicita a entrada dos dados, mas não atribui os dados recebidos aos campos do objeto criado, e utiliza o especificador de formato %i, que até onde eu sei não existe. De qualquer forma eu testei aqui a parte que está dando problema com você e funcionou normalmente. Tem certeza que você usou a virgula como separador decimal após a mensagem "Digite o preco do produto: ". Exemplo:
Digite o numero do produto: “02”
Digite a descricao do produto: “azul”
Digite a quantidade: 1
Digite o preco do produto: 80,00
M
mando82PJ
Eu vou explicar melhor o problema:
preciso criar uma classe “Invoice” para representar a fatura de uma loja de informática. Devo criar quatro variáveis de instancia - o número (tipo String), a descrição (tipo String), a quantidade comprada de um item (tipo int) e o preço por item (tipo double). Porém não consigo criar um construtor que inicialize as 4 variáveis de instância. Alem disso, o problema pede que forneça um metodo set e um get para cada variável de instancia e um metodo (getInvoiceAmount) que calcula o valor da fatura (multiplica a quantidade pelo preço por item) e depois retorna o valor como double. Se o valor não for positivo, ele deve ser configurado como 0. Se o preço por item não for positivo, ele deve ser configurado como 0.0. E tambem criar um aplicativo de teste “InvoiceTest” para demonstrar as capacidades da classe “Invoice”.
Eu criei elas e colei no início do tópico.