戻り値が0になってしまう
この3つのメソッドの関係は AnotherShape(親)← AnotherRectangle(子) ← AnotherSquqre(孫)です。
これを実行すると、なぜか矩形と正方形の面積が0になってしまいました。
ずっと眺めていましたが、原因がわからないままです。
どなたかアドバイスをくれればありがたいです。
public class Main { public static void main(String[] args) { Main m = new Main(); m.start(); } public void start() { AnotherRectangle r = new AnotherRectangle(); r.setX(10); r.setY(20); r.setWidth(30); r.setHeight(20); r.move(30, 40); r.scaleX(1.5); r.scaleY(2.5); System.out.println("矩形の座標は(" + r.getX() + ", " + r.getY() + ")"); System.out.println("矩形の幅は" + r.getWidth() + "、高さは" + r.getHeight()); System.out.println("矩形の面積は" + r.getArea()); AnotherSquare q = new AnotherSquare(); q.setX(10); q.setY(20); q.setSide(10); q.scale(2.0); System.out.println("正方形の座標は(" + q.getX() + ", " + q.getY() + ")"); System.out.println("正方形の辺の長さは" + q.getSide()); System.out.println("正方形の面積は" + q.getArea()); } }
public abstract class AnotherShape { private int x = 0; private int y = 0; private int width; private int height; public void setX(int xx){ x = xx; } public int getX(){ return x; } public void setY(int yy){ y = yy; } public int getY(){ return y; } public void setWidth(int w){ width = w; } public int getWidth(){ return width; } public void setHeight(int h){ height = h; } public int getHeight(){ return height; } public void move(int dx, int dy){ x = x + dx; y = y + dy; } public void scaleX(double radio){ width = (int)(width * radio); } public void scaleY(double radio){ height = (int)(height * radio); } public abstract double getArea(); }
public class AnotherRectangle extends AnotherShape{ public double getArea(){ return (getWidth() * getHeight()); } }
public class AnotherSquare extends AnotherRectangle{ public void setSide(int s){ super.setWidth(s); } public int getSide(){ return super.getWidth(); } public void scale(double radio){ super.scaleX(radio); } public void setWidth(int w){ super.setWidth(w); } public void setHeight(int h){ super.setHeight(h); } public void scaleX(double radio){ super.scaleX(radio); } public void scaleY(double radio){ super.scaleY(radio); } }
質問する前にデバッグ実行とかやったんすか?
回答1件
あなたの回答
tips
プレビュー