Problemas ao armazenar no vetor. ( ArrayList )

Bom dia pessoal.
Estou com problemas nesse programa, quero armazenar o que o usuário digitar dentro de um vetor e não substituir pelo produto cadastrado anteriormente.


import javax.swing.*;  
import java.util.*;  

public class Produto {
    private String nomeProduto;
    private int precoProduto;
    
    
    public static void main (String[] args) {
        int menu = 0; 
        Produto objeto = new Produto();
        
        while (menu < 3) {
               
        menu = Integer.parseInt(JOptionPane.showInputDialog("1- Cadastrar produto " + 
                "\n2- Listar produto "));
        
        switch (menu) {
            case 1: {
                objeto.cadProduto(); break;
                }
            case 2: {
                objeto.impProduto(); break;
            }
        }
                
         
          
        }
    }
    
    public void cadProduto() {
        
        int x = 0;
        ArrayList nome = new ArrayList();
        ArrayList preco = new ArrayList();
        
        nomeProduto = JOptionPane.showInputDialog("Digite o nome do produto");
        nome.add(nomeProduto);
        precoProduto = Integer.parseInt(JOptionPane.showInputDialog(
                "Digite o preço do produto"));
        preco.add(precoProduto);
        
        
    }
    
    public void impProduto() {
        
        JOptionPane.showMessageDialog(null, "Nome do produto: " + nomeProduto +
                "\nPreço do produto: " + precoProduto);
       
    }
    
    
    
    
}

Seria interessante você utilizar melhor os conceitos de OO…

No lugar de criar uma lista pra nome e outra pra produto, criar uma lista apenas que guarda um objeto produto… o objeto produto tem com atributo nome e valor…
ai é só ir dando “add” de objetos de produto…

A dica parece ser boa, mas eu não sei fazer isso não.
Poderia me explicar?

Produto é um objeto… então vamos criar uma classe para ele:

Produto

public class Produto {
	
	public String nome;
	public int valor;

}

Agora vamos criar uma classe que irá ter o método main e adicionar produtos em uma lista, bem toscamente:

import java.util.ArrayList;
import java.util.List;

public class ProcessaProduto {

	public static void main(String[] args) {
		
		// Defino uma lista que vai receber o tipo Produto
		List<Produto> lista = new ArrayList<Produto>();
		
		// Instancio um objeto do tipo Produto e setor os valores.
		Produto p1 = new Produto();
		p1.nome = "Feijão";
		p1.valor = 5;
		
		// Adiciono este objeto na lista
		lista.add(p1);
		
		// Imprimo todos objetos do tipo Produto dentro da lista "lista"
		for (Produto p : lista) {
			System.out.println(p.nome + " - " +p.valor);
		}

	}

}

Isso é só um exemplo bem besta de como fazer… acho que com isso já dá pra ter uma idéia, certo?

O exemplo ficou ótimo, consegui entender um pouco!
É que sou um iniciante em OO, aí me atrapalho um pouco.
Mas muito obrigado pela força.