2016-04-26 13 views
-3

誰かがこのエラーで私を助けてくれますか?私は自分自身でJavaを学ぼうとしていて、何が原因でエラーが発生しているのかわからないのですか?ここでコンストラクタは未定義ですか?

/* 
* Without changing the Point class, add any arguments to the constructor 
* below so that the error goes away. 
*/ 

public Point p04Constructor() { 
    return new Point(); 
} 

は、Pointクラスです:

public class Point { 

private int _x; 
private int _y; 

public Point(int x, int y) { 
    _x = x; 
    _y = y; 
} 

public void move(int dx, int dy) { 
    _x = _x + dx; 
    _y = _y + dy; 
} 

public void flip() { 
    _x = _y; 
    _y = _x; 
} 

public void setY(int _y) { 
    _y = 2; 
} 

public int getY() { 
    return _y; 
} 

public String toString() { 
    return "(" + _x + "," + _y + ")"; 
} 

}

私はあなたが聞かせてください。私はすでにコメントに示唆されたことをやってみたが、エラーが続いている。

+1

ポイントクラスを教えてもらえますか? –

+0

エラーは "コンストラクタのPoint()は未定義です" –

+3

...コメントを見てください。割り当てのように見えますので、エラーをなくすために何かを 'Point()'に追加する必要があります。 。 – 3kings

答えて

0

コメントの他の人によると、コンストラクタの正しいパラメータを渡す必要があります。だからこのような何かをコンパイルする必要があります。

public Point p04Constructor() { 
    return new Point(0, 0); 
} 

あなたは私たちを与えたPointクラスが一つだけのコンストラクタを持っており、それに渡される2つのint変数を必要とするため2つのintパラメータを追加する必要があります。

public Point(int x, int y) { 
+0

あなたは最高です。ありがとうございました:) –

+0

オースティン、私はあなたが上記の投稿を編集したのを参照してください。しかし、それはまだいくつかの編集を使用することができます。明らかに、コードブロックにはコードが残っており、エラーは除外されていますが、コメントにはリストされています。あなたのやり方があなたの編集を完了させるのに十分であると決断した方法はわかりません。私は、あなたが質問の書式を改善しなかったと言っているわけではありません、なぜ私があなたがどこで停止したのか不思議です。 –

+0

@MatthewCliatt私は正直であるために私の答えで他に何が欲しいのか分からない。 OPは未定義のコンストラクターエラーについて具体的に質問していたので、私は彼にそれを修正する方法とコンストラクターがどのように動作するかを示しました... – Austin

1

オースティンの答えに追加するには...他の問題のカップルは、同様

あります...

のSETY(int型のy)の方法は、常に2に_yの値を設定しますメソッドパラメータyの代わりに

あなたが期待しているように、フリップ方法は機能しません。 _xが_yに設定されると、_yは_xに設定されます。これは_yに設定されただけです。

getX()メソッドはありません。

+0

さて、私の仕事はこれらのエラーを修正することです –

関連する問題