O que há e errado nesse código?

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 (System.in);
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(System.in);
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.”);
}
}

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.

1 curtida

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 + "]";
}

}

2 curtidas

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.

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

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

1 curtida

Disponha!