2014-11-26 2 views
3

코드에 문제가 있습니다. 그래서 저는 GeoFig 객체와 GeoFig를 확장하는 Circle을 가지고 있습니다. GeoFig에는 면적, 반지름 및 둘레와 같은 비공개 필드가 포함됩니다. GeoFig에는 이러한 필드를 설정하고 가져 오는 메소드도 있습니다. Circle 객체를 만들고 get 메서드를 인스턴스화하려고 시도했지만 작동하지 않습니다. 어떤 충고? 다음은 내 코드입니다.다형성 - Java에서 메소드 인쇄시 문제가 발생했습니다.

abstract public class GeoFig { 

    private double radius; 
    private double area; 
    private double circumference; 

    public void setRadius(double radius){ 
     this.radius = radius; 
    } 

    public double getRadius(){ 
     return this.radius; 
    } 

    public void setCircArea(double radius){ 
     this.area = Math.pow(radius, 2) * Math.PI; 
    } 

    public double getCircArea(){ 
     return this.area; 
    } 

    public void setCircumference(double radius){ 
     circumference = 2*this.radius * Math.PI; 
    } 

    public double getCircumference(){ 
     return this.circumference; 
    } 

    abstract String getMetrics(); 

    public static void main(String[] args){ 
     Circle circ = new Circle(2); 
     circ.getRadius(); 
    } 
} 

public class Circle extends GeoFig { 

    public Circle(double radius) { 
     setRadius(radius); 
     setCircArea(radius); 
     setCircumference(radius); 
    } 

    @Override 
    public String getMetrics() { 
     return "Object of class Circle " + 
      "\nRadius:" + getRadius() + 
      "\nArea: " + getCircArea() + 
      "\nCircumference: " + getCircumference(); 
    } 
} 
+0

으로 작동하지 않습니다. 프로그램을 실행하려고하면 아무 것도 표시되지 않습니다. – noobforce

+5

'System.out.println' 문이 없습니다. – rgettman

+0

잠깐, 내가 할 때 cir.getRadius(); 그게 System.out.println() 안에 있을까요? – noobforce

답변

0

괜찮 았던 것 같습니다. 그것은 인쇄합니다 2.0

abstract class GeoFig { 

private double radius; 
private double area; 
private double circumference; 

    public void setRadius(double radius){ 
     this.radius = radius; 
    } 
    public double getRadius(){ 
     return this.radius; 
    } 

    public void setCircArea(double radius){ 
     this.area = Math.pow(radius, 2) * Math.PI; 
    } 
    public double getCircArea(){ 
    return this.area; 
    } 

    public void setCircumference(double radius){ 
     circumference = 2*this.radius * Math.PI; 
    } 
    public double getCircumference(){ 
     return this.circumference; 
    } 

    abstract String getMetrics(); 


    public static void main(String[] args){ 
     test circ = new test(2); 
     System.out.println(circ.getRadius()); } 
    } 






public class test extends GeoFig { 

public test(double radius){ 
    setRadius(radius); 
    setCircArea(radius); 
    setCircumference(radius); 
} 

@Override 
public String getMetrics(){ 
    return "Object of class Circle " + 
      "\nRadius:" + getRadius() + 
      "\nArea: " + getCircArea() + 
      "\nCircumference: " + getCircumference(); 
} 

} 
0

예를 들어 생성하려는 객체의 내용을 표시하는 방법을 제안하는 것이 좋습니다. ToSTRING 메서드를 만들어 개체의 내용을 봅니다.

공공 무효 표시() {

double radius = getRadius() ; 
double area= getArea() ; 
double circumference= getCircumference() ; 
System.out.println("Radius" + radius + "Area" + area + "Circumference" + circumference) ; 

} 당신의 윈도우 컨트롤 + 고도의 당신이 toString 메소드를 만들 수있는 것보다 이클립스를 사용하는 경우. Mac Command + alt + s. 당신이 결과를 인쇄하려면,

System.out.println(circ.getRadius()); 

대신

circ.getRadius(); 

의 현재 무엇을하고 있는지에 대한 문제하려고 그

0

도움이되기를 바랍니다는 반경을 얻을 수 있지만 않는다는 것입니다 그 값을 가진 것은 아무것도 아닙니다 - 그것을 얻은 후에 반지름의 값을 인쇄하도록 지시해야합니다.

관련 문제