以下の Ball クラスを作成せよ。
インスタンス変数として、double 型の x, y, dx, dy を持たせよ。すべて private
である。それぞれ、ボールの x 座標、y 座標、x 方向の速度、y 方向の速度である。
上記(x,y,dx,dy)以外のメンバ変数は必要に応じて自由に作成して良い(たとえば、
Random 型のインスタンス)。
引数なしコンストラクタを作成し、以下の様なインスタンス変数の初期化をさせよ。
それ以外の動作も必要に応じて記述してよい。
・x に 0.0 を代入する。
・y に 0.0 を代入する。
・dx に -200 以上 200 以下の乱数を代入する。
・dy に 200 以上 400 以下の乱数を代入する。
インスタンス変数 x の getter を作成せよ。
すなわち、double getX()を作成し、その戻り値は インスタンス変数 x の値である。
インスタンス変数 y の getter を作成せよ。
setter は作成せず,内部変数は外部からの書き込みから守られている状況とせよ。
public メソッドである next を作成せよ。引数なし、戻り値は void である。
動作は、以下の様にインスタンス変数の値を更新するもとせよ。
・x に dx の値を加える。
・y に dy の値を加える。
・dy から 9.8 を引く
・もし y の値が 0 未満になっていたら、コンストラクタと同じ 4 個の初期化をせよ。
以下の Parabola クラスを作成せよ。
main メソッドを作成し、中身は以下の通りとせよ。
Ball クラスのインスタンス ball を作成する。
以下の行動を多数回(たとえば 1000 回)繰り返す。
ball の x、タブ、ball の y、改行を画面に表示する。
ball に対して next()を呼び出し、インスタンス変数の値を更新する。
ヒント
表示例 162.0 201.0
プログラム例 System.out.println(x+"¥t"+y);
という内容のもので
mport java.util.Random;
class Ball
{
private double x;
private double y;
private double dx;
private double dy;
public Ball(){//コンストラクタ x=0.0; y=0.0; dx=rand.nextInt(401)-200;//乱数生成 dy=rand.nextInt(401)-200;//乱数生成 } double getX(){ return x;//戻り値 } double getY(){ return y;//戻り値 } public static void next(){ x+=dx; y+=dy; dy-=9.8; if(dy<0){ Ball(); } }
}
class Parabola
{
public static void main(String[] args){
Ball ball;
int count=1000;
for (int i=0;i<count;i++){
System.out.println(ball.getX()+" "+ball.getY());
ball.next();
}
}
}
こんな感じなのですがエラーが出てしまいます。どこがどう間違っているのか教えてもらえると嬉しいです。
また初心者でこのサイトもあまり使ったことがないので失礼があったらごめんなさい。
あなたの回答
tips
プレビュー