문제가 있습니다. 테스트 프로그램을 사용하여 직사각형과 원을 그린다고 가정하십시오. 하지만 난 그것을 실행, 그것은 아무 값을 인쇄합니다. 각 도형마다 값을 설정해야하는지 궁금합니다. 이것에 대한 도움이 필요해. 직사각형 및 원형 쉐이프 클래스를 사용한 다형성
이
이 내 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