1

ダイビング競技をシミュレートするプログラムを作成しています。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:これは宿題なので、私の方法が問題に取り組む適切な方法であると思わない人もいるかもしれませんが、私は指示に従っていることを覚えておいてください。

ご入力いただきありがとうございます!

4

2 に答える 2

1

通常、これは別のクラス(パブリックであっても)のフィールドにアクセスすることはお勧めできません。配列フィールドのゲッターを作成してアクセスする必要があります。

于 2013-01-20T19:54:50.860 に答える
1

Javadirというディレクトリで作業していて、以下に内容を示す4つのファイルを作成するとします。

ファイル1

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

ファイル2

package ListPkg;
public class NoNextItemException { ... }

ファイル3

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

ファイル4

class Test2 { ... }

使用する必要のあるディレクトリとファイル名は次のとおりです。

ファイル1は、ListPkgという名前のサブディレクトリの。という名前のファイルにある必要がありますList.java

ファイル2は、ListPkgサブディレクトリの。という名前のファイルにも存在する必要がありますNoNextItemException.java

ファイル3は、Test.java(Javadirディレクトリ内の)という名前のファイルに含まれている必要があります。

ファイル4は、任意の.javaファイル(Javadirディレクトリー内)に置くことができます。

その他のガイドラインについては、Javaパッケージに関するこのメモを参照してください

于 2013-01-20T19:56:35.193 に答える