O que há e errado nesse código?

6 respostas
vetormetodosjava
T

Olá pessoal. Estou começando agora… O netbeans está acusando erro na linha 13 da classe “Principal” e na linha 8 da classe carrinho, que se lerá a seguir. O método ''Produto" contém apenas dois estados (“nome” e “preco”) e, ao que parece, está certo.
Aqui estão as duas classes para quem puder e quiser me ajudar:

package Compras;

import java.util.Scanner;

public class Principal {

public static void main (String[] args){

Scanner ler=new Scanner (<a href="http://System.in">System.in</a>);

int opcao, ultimoProduto=0;

do{

System.out.println (1- Adicionar produto \n2- Aualizar produto);

System.out.println (3- Remover produto \n4-Ver carrinho \n5- Sair);

opcao=ler.nextInt();

switch (opcao){

case 1:

Carrinho.adicionarProduto(ultimoProduto);

ultimoProduto++;

}

}while(opcao!=5);

}

}
package Compras;

import java.util.Scanner;

public class Carrinho {

static Produto[] lista= new Produto[50];

static Scanner ler=new Scanner(<a href="http://System.in">System.in</a>);

static void adicionarProduto(int ultimoProduto) {

System.out.println ("Nome: ");

lista[ultimoProduto].nome=ler.nextLine();

System.out.println (Preco: );

lista[ultimoProduto].preco=ler.nextDouble();

System.out.println (lista[ultimoProduto].nome+ foi adicionado ao carrinho.);

}

}

6 Respostas

S

Que erros?

Não há nenhum método chamado Produto nos códigos que você postou.
E métodos não possuem estados.
Será que você confundiu método com classe? São coisas bem distintas.

Nem dá pra compilar a classe Carrinho pois está faltando a classe Produto que ela referencia.

E

Bom dia, Trump e staroski, esse último que peço licença pra quebrar o galho do rapaz.

Primeiro, Trump, tente formatar o código em seus próximos post pra melhorar a vizualização das pessoas que pretendem te ajudar. Segundo, staroski, vc está certíssimo!

Vou adiantar a vida do rapaz de uma forma que, talvez não seja a melhor, mas é só ler o código, entender e fazer o que estiver faltando:

//Classe Principal
import java.util.Scanner;

public class Principal {

public static void main(String[] args) {
	Scanner ler = new Scanner(System.in);
	int opcao, ultimoProduto = 0;
	
	do {
		
		System.out.println("1- Adicionar produto \n"
				         + "2- Atualizar produto \n" 
				         + "3- Remover produto   \n"
				         + "4- Ver carrinho       \n" 
				         + "5- Sair");
		System.out.println();
		
		opcao = ler.nextInt();
		
		switch (opcao) {
			case 1:
				
				Carrinho.adicionarProduto(ultimoProduto);
				ultimoProduto++;
				break;
			case 2:
				
				//implemente
				System.exit(0);
				break;
			case 3:
				
				//implemente
				System.exit(0);
				break;
			case 4:
				
				Carrinho.verCarrinho();
				break;
			case 5:
				
				System.out.println("Systema encerrado.");
				System.exit(0);
				break;
		}
	} 
	while (opcao != 5);
}

}

//Classe Carrinho
import java.util.Scanner;

public class Carrinho {

static Produto[] lista = new Produto[50];
static Scanner ler = new Scanner(System.in);

static void adicionarProduto(int ultimoProduto) {
			
	System.out.println("Nome: ");
	String nome = ler.nextLine();
	System.out.println("Preco: ");
	Double preco = Double.parseDouble(ler.nextLine());
	Produto produto = new Produto(nome, preco);
	lista[ultimoProduto] = produto;
	System.out.println(lista[ultimoProduto].getNome() + " foi adicionado ao carrinho.");
	System.out.println();
}

static void verCarrinho() {
	
	for(int i = 0; i < lista.length; i++) {
		
		Produto p = lista[i];
		
		if(p != null) 
			System.out.println(p.toString());
	}
	
	System.out.println();
}

}

//Classe Produto
public class Produto {

private String nome;
private Double preco;

public Produto(String nome, Double preco) {
	// TODO Auto-generated constructor stub
	this.nome = nome;
	this.preco = preco;
}

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

public Double getPreco() {
	return preco;
}

public void setPreco(Double preco) {
	this.preco = preco;
}

@Override
public String toString() {
	return "Produto [nome=" + nome + ", preco=" + preco + "]";
}

}

T

Opa… Desculpa, me equivoquei, “Produto” é uma classe mesmo, que tem dois atributos: “nome” e “preço”, e estou querendo criar um vetor pertencente a essa classe na classe “Carrinho”. Não coloquei, pois achei desnecessário, mas aqui está:

package Compras;

public class Produto {

String nome= new String();

double preco;

}

PS: Ainda não sei formatar o código neste fórum.

T

Resolveu, vou procurar entender as mudanças. Obrigado.

S

É só selecionar o código e clicar no botão </>

E

Disponha!

Criado 28 de dezembro de 2017
Ultima resposta 28 de dez. de 2017
Respostas 6
Participantes 3