問題が発生しています。私は、テストプログラムを使って長方形と円の形を描くとします。しかし私はそれを実行します、それは値を印刷しません。私は各形状の値を設定すべきなのだろうかと思います。私はこれについて助けが必要です。 長方形と円のシェイプクラスを使用した抽象の多形
この
は、これは私のRectangleクラスである。図クラスpublic abstract class Figure{
private int X, Y; // the center of the object.
private String name;
private static int numberOfShapes=0;
public Figure(){
X = 0;
Y = 0;
name = "none";
}
public Figure(int a, int b, String n){
setX(a);
setY(b);
setName(n);
numberOfShapes++;
}
public void setX(int a){X = a;}
public void setY(int b){Y = b;}
public void setName(String n){name = n;}
public int getX(){return X;}
public int getY(){return Y;}
public String getName(){return name;}
public static int getNumberOfShapes(){return numberOfShapes;}
public abstract void erase();
public abstract void draw();
public void center(){
System.out.println("\nIn Figure. Centering at ("+getX()+","+getY()+")");
}
ある
public class Rectangle extends Figure {
int length, height;
public Rectangle(){
super(0,0,"none");
//setLength(0);
//setHeight(0);
}
public Rectangle(String n,int a, int b, int h,int l){
super(a,b,n);
setLength(l);
setHeight(h);
}
public String toString() {
return "In Rectangle Drawing " + getName() + " centered at (" + getX() + "," + getY() + ") Length " + getLength() + " height " + getHeight();
}
public void erase(){
System.out.println("In Rectangle erasing");
}
public void draw(){
center();
erase();
System.out.println(""+this);
}
public void setLength(int l){length = l;}
public void setHeight(int h){height = h;}
public int getLength(){return length;}
public int getHeight(){return height;}
}
マイサークルクラスこれは私のテストクラスである
public class Circle extends Figure {
private double Radius;
public Circle(){
super(0,0,"none");
}
public Circle(String n, int a, int b){
super(a,b,n);
}
public double getArea() {
return Math.PI * Radius * Radius;
}
public void setRadius(double r){
Radius = r;
}
public String toString(){
return "In Circle Drawing "+getName()+" centered at ("+getX()+","+getY()+") Area "+getArea();
}
public void erase(){
System.out.println("In Circle erasing");
}
public void draw(){
erase();
System.out.println(""+this);
}
public void setRadius(int r){Radius = r;}
public double getRadius(){return Radius;}
}
import java.util.*;
public class Testshape{
public static void main(String[] args){
//Scanner s = new Scanner(System.in);
Rectangle r = new Rectangle();
//Rectangle ry = new Rectangle();
System.out.println("In Rectangle erasing");
System.out.println(r);
}
}
このようにすると仮定
MY出力形式:
テストクラスの中で 'draw()'しようとしましたか? –
コンストラクタ以外のメソッドを呼び出すことは決してありません。なぜあなたはそれが何かを印刷すると思いますか? – mvd
@RamisWachtler私の 'draw()'は無効なので、私の値は返されません。私は 'System.out.println(r.toString());')を実行して、私の返すものを確認しようとしました。 – krillavilla