で別のクラスのコンストラクタに一つのクラスから引数としてメソッドを渡す:のコンストラクタのための場所を指示、私はJavaのコースの特定の割り当てを持って次のように私が持っている疑問があるのjava
第二のクラスは以下の通りである:最初の位置定数と現在位置データの両方を初期化
- :
ユーザに渡すパラメータは、初期位置及び初期速度を入力すると、コンストラクタを定義し、それらを使用フィールドの値をp最初の位置のためのarameter。
- 初期速度定数と現在速度データフィールドの両方を初期速度パラメータの値に初期化します。今
最初のクラスのmainメソッド:
がメインメソッドを定義します(
表示プログラムは、ユーザーに何をするかの説明をして一定の高さのしきい値を使用して、あなたの説明)。
ユーザーからの初期位置と初期速度値を読み取るために、静的メソッド(も入力の入力と検証が必要です)を使用してください。
すべてのユーザー入力を読み込んだ後に空白行を表示します。 o初期位置と初期速度をコンストラクタの引数として読み込み、FallingItemクラスの新しいオブジェクトを作成します。
プロジェクタークラス:
public static void main(String[] args) { System.out.println("This program will calculate the position and " + "velocity \n of a falling object until it reaches " + HEIGHT_THRESHOLD + " feet above the ground."); initialPosition(); initialVelocity(); System.out.println(); System.out.println(); FallingItem I = new FallingItem(initialPosition(), initialVelocity());
....以下 方法:
'public static double initialPosition(){ Scanner input = new Scanner(System.in); boolean validated; //validator for while statements double startPosition; //variable for initialPosition System.out.println("Please enter the intial position from which" + " you intend to drop the object." + "this cannot be lower "+ "than 600 feet."); do{ startPosition = input.nextDouble(); if (startPosition > HEIGHT_THRESHOLD){ validated = true; } else{ System.out.print("error, value is too low. Try again"); validated = false; } }while (validated = false); return startPosition; } public static double initialVelocity(){ Scanner userInput = new Scanner(System.in); double startVelocity; System.out.println("\n please enter the initial velocity, in feet per" + " second. \n This value cannot be less than -500"); startVelocity = userInput.nextDouble(); if(startVelocity <= FallingItem.TERMINAL_VELOCITY){ System.out.print("error, this value cannot be less than -500 feet" + " per second. Please re-enter the value"); startVelocity = userInput.nextDouble(); } return startVelocity;'
を前に
は、これは、私は、これはこれまでに設定した方法ですあなたは尋ねる: はい、DO-whileループが必要である、と ははい、方法は、アイテムクラスのその
コンストラクタのように促すための必要:
public FallingItem(double initialPosition, double initialVelocity){
INITIAL_POSITION = initialPosition; //constant to be filled by user input
INITIAL_VELOCITY = initialVelocity; //constant to be filled by user input
currentPosition = initialPosition;
currentVelocity = initialVelocity;
}
だから、要するに、私は希望私は率直に言ってアイデアがないので、現時点で起こることであるユーザー入力のプロンプトを自分自身で重複させずに、要件を満たす方法を見つけるためにコミュニティが提供しなければならないヘルプを非常に高く評価します。
については、
Zulfe、コメントをいただきありがとうございます。しかし、私がしようとすると、netbeansは次のエラーをスローします。 "非静的変数は静的コンテキストから参照できません。" – firemagnet
'私の静的なスキャナは何でも=新しいScanner();' – Zulfe
、ありがとう。ただし、アイテムクラスのコンストラクタにメソッドを渡すことに関する推奨事項はありますか?現在実装されているように、指示に従って、私は最終的には起こらないと思われる入力のための2つのプロンプトを持つことになります。よろしくおねがいします。 – firemagnet