Вся проблема в том, что вы используете статические переменные:
private static String Name;
private static double Price;
Они принадлежат классу, а не объекту, который вы создаете. Когда вы создаете последний объект - он переопределяет другие.
Итак, правильный способ выполнения вашей задачи - изменить класс продукта (пожалуйста, используйте заглавные буквы, так как это кодовое обозначение для классов имен)
class Product {
private String name;
private double price;
public static List<Product> List_product = new ArrayList<>();
public Product(String name, double price) {
this.name = name;
this.price = price;
}
//...other code is fine
}