将对象添加到对象数组中

时间:2013-01-20 19:47:58

标签: java oop object

我正在建立一个模拟潜水比赛的计划。我有一个类Athlete,它本质上试图访问另一个类中的数组元素。有谁知道我如何访问数据?

以下是Athlete类:

public class Athlete {

    public static String[] name = { "Art Class", "Dan Druff", "Jen Tull" };
    public static String[] country = { "Canada", "Germany", "USA" };
    Performance[] performance = new Performance[2];

    public Athlete(String[] name, String[] country) {
        this.name = name;
        this.country = country;
        // this.event = event;
    }

    public void perform() {
        Dive mydive = new Dive(Dive.diveName, Dive.difficulty);
        Performance event = new Performance(event.dive, Performance.judgeScores);
        performance[0] = event(event.dive.diveNames[0], event.judgeScores); // here
        performance[1] = event; // Here
        performance[2] = event; // Here
    }

    public void printResults() {
    }
}

用“// Here”表示我试图访问下面显示的类中的数据,我想知道我该怎么做?

性能:

public class Performance {

    Dive dive = new Dive(Dive.diveName, Dive.difficulty);
    public static float[] judgeScores = new float[7];

    public Performance(Dive dive, float[] judgeScores) {
        this.dive = dive;
        // this.dive=difficulty;
        this.judgeScores = judgeScores;
        // this.judgeScores = judgeScores;
    }
}

潜水:

import java.util.Random;

public class Dive {
    public static String diveName;
    public static int difficulty;

    public static final String[] diveNames = { "reverse pike", "forward pike",
            "reverse armstand with double somersault", "reverse triple twist",
            "double forward with triple somersault", "cannon ball" };
    public static final int[] diveDifficulties = { 3, 2, 2, 4, 4, 1 };

    public static Dive chosenRandomly() {
        Random rand = new Random();
        int num = rand.nextInt(6) + 1;
        String diveName = diveNames[num];
        int difficulty = diveDifficulties[num];

        Dive dive = new Dive(diveName, difficulty);
        return dive;
    }

    public Dive(String diveName, int difficulty) {
        this.diveName = diveName;
        this.difficulty = difficulty;
    }
}

我的构造函数都错了吗?

PS: 这是功课,所以有些人可能找不到我的方法来解决问题,但请记住我正在关注说明。

提前感谢任何输入!

2 个答案:

答案 0 :(得分:1)

通常,从其他类(甚至是公共类)访问字段不是一个好主意。您应该为数组字段创建getters并访问它们。

答案 1 :(得分:1)

假设您正在一个名为Javadir的目录中工作,并且您创建了四个文件,其内容如下所示。

档案1

package ListPkg;
public class List { ... }
class ListNode {...}

文件2

package ListPkg;
public class NoNextItemException { ... }

文件3

public class Test { ... }
class Utils { ... }

档案4

class Test2 { ... }

以下是您必须使用的目录和文件名:

文件1必须位于名为List.java的文件中名为ListPkg的子目录中。

文件2也必须位于ListPkg子目录中,名为NoNextItemException.java的文件中。

文件3必须位于名为Test.java的文件中(在Javadir目录中)。

文件4可以在任何.java文件中(在Javadir目录中)。

有关更多指南,请参阅此notes on java packages