前提・実現したいこと
教科書の問題を解いていて、エラーが出てどうしてもわからなくなってしまいました。
サブクラスで作ったコンストラクタの条件の一つに、「スーパークラス内で定義されているangleフィールドに3を代入する。」とあるのですが、型が一致していないためエラーになってしまいます。
型変換について調べたのですが、「String←→int」や「int→long」などが多く、自分で定義した型には変換できないのでしょうか?
発生している問題・エラーメッセージ
型の不一致: Point から int には変換できません
該当のソースコード
・操作名:Triangle(x1, y1, x2, y2, x3, y3)
・引数:6つのint型データ
x1とy1...p1フィールドに代入するPoint型変数のx,y座標値
x2とy2...p2フィールドに代入するPoint型変数のx,y座標値
x3とy3...p3フィールドに代入するPoint型変数のx,y座標値
・戻り値:なし
・修飾子:public
・概要:引数で受け取ったデータを用いて、3つのPointオブジェクトを生成。
p1フィールドとp2フィールド、p3フィールドにそれぞれを代入する。
スーパークラス内で定義されているangleフィールドに3を代入する。
public class Triangle extends Polygon { private Point p1; private Point p2; private Point p3; public Triangle(int x1, int y1, int x2, int y2, int x3, int y3) { this.p1 = new Point(x1, y1); this.p2 = new Point(x2, y2); this.p3 = new Point(x3, y3); angle = p3; }
public abstract class Polygon extends Shape { protected int angle;
public class Point { private int x; private int y; public Point() { this.x = 0; this.y = 0; } public Point(int x, int y) { this.x = x; this.y = y; } public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.x = y; } }
回答2件
あなたの回答
tips
プレビュー