Java,堆叠类

时间:2014-05-17 15:48:15

标签: java arrays class

什么是最好/最有效的方法来创建一个包含其他类的类,并将它自己添加到数组中?

基本上,我希望上课能够拥有' name',' val1'和' val2'所以我猜想最好的方法就是:

public class SubClass {

private String name;
private double val1;
private double val2;

public SubClass(String name, double val1, double val2) {
    this.setName(name);
    this.setVal1(val1);
            this.setVal2(val2);
}

随着所有'设置'和'得到'其中的方法。所以我可以把它作为Array SubClass []。 但我也想要一个' UpperClass'我可以添加多个' SubClass'与UpperClass.add(SubClass1);一起但我也希望UpperClass有自己的名字'并将其全部保存为和Array UpperClass []一样。我希望它作为Array来对不同的列进行求和,因此我可以将其显示为:

UpperClassName   25    56
Sub1             10    20
Sub2             15    36    

我想我可以创建SubClass(String UpperClassName),然后使用setVal我将在此UpperClass中添加所有其他SubClass的Val1,然后将其全部作为数组放置,这听起来有点混乱。< / p>

最后我希望将相同的UpperClass添加到SuperClass中,但仅作为UpperClass的第一行。但我认为只是对UpperClass进行了一些小修改? 得到:

UpperClassName 25 56
UpperCLassName 30 87
UpperClassName 20 78

有没有简单(干净)的方法呢?

1 个答案:

答案 0 :(得分:3)

好的,所以你想拥有包含汽车的火车,包含人物。而且你希望能够知道每个人有多少钱,以及每辆车和每列火车有多少钱。

所以你需要

public class Person {
    private double money;

    public double getMoney()
        return money;
    }
    ...
}

public class Car {
    private List<Person> persons;

    public double getMoney {
        double result = 0.0;
        for (Person person: persons) {
            result += person.getMoney();
        }
        return result;
    }
    ...
}

public class Train {
    private List<Car> cars;

    public double getMoney() {
        double result = 0.0;
        for (Car car : cars) {
            result += car.getMoney();
        }
        return result;
    }
    ...
}

就这么简单。就像真实对象一样,Java对象可以包含其他对象。