我有一个类Cliente,它有一个ArrayList,它存储Jamon、Cereal等类。这个类(Jamon、Cereal等)是从一个名为Producto的超类中扩展的。我需要的是一个数组(除了数组列表),它只存储每个类的precios(double)。这是为了将它们与for循环一起添加。这是我的密码
类Cliente的代码:
import java.util.List;
import java.util.ArrayList;
public class Cliente extends Persona{
public List<Producto>products=new ArrayList<Producto>();
public void echarAlCarrito(Producto p){
products.add(p);
}
}类Producto的代码:
public abstract class Producto{
protected double precio;
public void setPrecio(double precio){
this.precio=precio;
}
public double getPrecio(){
return precio;
}
abstract void comprar(Cliente c);
}Jamon类的代码
public class Jamon extends Producto implements Refrigerable{
protected String marca;
public Jamon(String marca, Double precio){
this.marca=marca;
this.precio=precio;
}
public void setMarca(String marca){
this.marca=marca;
}
public String getMarca(){
return marca;
}
public void comprar(Cliente c){
System.out.println("El cliente ha comprado el jamon");
}
}我主要的代码是:
public class PruebaSupermercado{
double suma;
public static void verCarrito() {
Cliente zoo = new Cliente();
zoo.echarAlCarrito(new Jamon("Fud",15.3));
zoo.echarAlCarrito(new Ropa("GAP",457.5));
zoo.echarAlCarrito(new Cereal("Nestle",36.2));
Cliente hola = new Cliente();
for (Producto a:zoo.products){
a.comprar(hola);
}
}
public static void main(String[] args) {
verCarrito();
}
}谷物类和罗巴类看上去和Jamon完全一样(除了名字之类的)。
所以是的..。我的问题是“如何在只包含每个Jamon、Cereal、Ropa类的precios的Cliente中创建和排列?”
谢谢
发布于 2014-01-15 18:31:34
试试这个:
ArrayList<Double> precios = new ArrayList<Double>();
for (Producto p: products) {
precios.add(p.getPrecio());
}或者这个,如果你真的需要一个数组:
double[] precios = new double[products.size()];
for (int i = 0; i < products.size(); i++) {
precios[i] = products.get(i).getPrecio();
}发布于 2014-01-15 18:37:45
您可以使用实现列表接口的每个类,但是由于不能存储Double (基本类型),所以必须使用double。它很简单,使用double类的Double.valueof(双d)方法从Double获得一个Double。
如果您真的想坚持双原语类型,就必须使用基元数组。
https://stackoverflow.com/questions/21145424
复制相似问题