Olá! Sou iniciante e estou tendo problemas para exibir um vetor de classe. São três as classes, a principal exibe o menu e chama o método da opção escolhida, a segunda é a classe do produto, com nome e preço e a terceira (“Carrinho”) é onde estou tendo problemas no segundo método, “atualizarProduto”. Estava tentando direto no vetor “Lista”, e estava tendo problema. Então, como havia resolvido um problema de um método anterior por meio de outro objeto, como poderão ver, tentei o mesmo por meio do objeto produto, e continua com problemas. Já tentei o println sem o vetor e funcionou.
A seguir as classes… Para fazer o teste, comece por adicionar um produto qualquer no vetor (opção 1), e depois tente a opção atualizar produtos, onde até agora só tem a exibição dos produtos adicionados, e verá o erro.
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{
//Exibição do menu
System.out.println (“1- Adicionar produto \n2- Aualizar produto”);
System.out.println (“3- Remover produto \n4- Ver carrinho \n5- Sair”);
opcao=ler.nextInt();
//Acionar opção escolhida
switch (opcao){
case 1:
Carrinho.adicionarProduto(ultimoProduto++);
ultimoProduto++;
break;
case 2:
Carrinho.atualizarProduto(ultimoProduto);
break;
}
}while(opcao!=5);
}
}
package Compras;
public class Produto {
String nome= new String();
double preco;
String getnome;
public Produto(String nome, double preco){
this.nome=nome;
this.preco=preco;
}
}
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: ");
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].nome+" foi adicionado ao carrinho.");
}
static void atualizarProduto(int ultimoProduto){
for (int x=1; x<=ultimoProduto; x++){
Produto produto = lista[x];
System.out.println (x+"- "+produto.nome+" "+produto.preco);
}
}
}