2017-11-02 1 views
-1

삼각형의 색상과 삼각형의 너비와 높이를 사용자가 입력해야하지만 출력물을 표시 할 수 없습니다. 어떤 팁이나 포인터도 크게 향상 될 것입니다. 지금은 학교에서 추상적 인 수업을 배우는 중입니다. 고맙습니다.추상 클래스로 사용자 입력을 반환하는 데 문제가 발생했습니다

삼각형 클래스 :

input 무엇
public abstract class GeometricObject { 
private String color = "white"; 
private boolean filled; 
private java.util.Date dateCreated; 

    /** Construct a default geometric object */ 
    protected GeometricObject() { 
    dateCreated = new java.util.Date(); 
    } 

    /** Construct a geometric object with color and filled value */ 
    protected GeometricObject(String color, boolean filled) { 
    dateCreated = new java.util.Date(); 
    this.color = color; 
    this.filled = filled; 
    } 



    /** Set a new color */ 
    public void setColor(String color) { 
    this.color = color; 
    } 


public boolean isFilled() { 
return filled; 
} 

/** Set a new filled */ 
public void setFilled(boolean filled) { 
this.filled = filled; 
} 

    /** Get dateCreated */ 
public java.util.Date getDateCreated() { 
    return dateCreated; 
    } 

    @Override 
    public String toString() { 
    return "created on " + dateCreated + "\ncolor: " + color + 
    " and filled: " + filled; 
    } 

    /** Abstract method getArea */ 
    public abstract double getArea(); 

    /** Abstract method getPerimeter */ 
public abstract double getPerimeter(); 
} 

답변

0

: 여기

import java.util.Scanner; 

public class Triangle extends GeometricObject { 
private double base; 
private double height; 
private int color; 

public Triangle() { 
} 

public static void main(String[] args) { 
System.out.println("Enter a width for triangle:"); 
double base = Integer.parseInt(input.nextInt()); 


System.out.println("Enter height for triangle:"); 

double height = Integer.parseInt(input.nextInt()); 
} 

public Triangle(double base, double height) { 
this.base = base; 
this.height = height; 
this.color = color; 
} 



public double getBase() { 
return base; 
} 


public void setWidth(double width) { 
this.base = base; 
} 


public double getHeight() { 
    return height; 
} 

public int getColor(){ 
    return color; 
} 

public void setHeight(double height) { 
this.height = height; 
} 
public void setColor(int color){ 
this.color = color; 
} 
@Override 
public double getArea() { 
return 0.5* base * height; 
} 

@Override 
public double getPerimeter() { 
return 2 * (base + height); 
} 
} 

는 GeometricClass입니까? 선언 된 곳은 어디입니까?

System.in을 가리키는 Scanner 개체를 만들어야합니다. 그렇게하면 사용자에게 입력을 요청할 수 있습니다.

1) Scanner input = new Scanner(System.in);가없는 :

Scanner sc = new Scanner(System.in); 
    while (sc.hasNext()) { 
     System.out.println('Enter color'); 
     int color = Integer.parseInt(sc.nextLine()); 


    } 
1

당신은 당신의 코드에 결함이 많이 있습니다. 컴파일 오류가 발생해야합니다.

2)는 Integer.parseIntString 파라미터 걸린다.

3) 왜 doubleint를 할당한다. 대신 Double.parseDouble을 사용하십시오. 두 개의 매개 변수와 아직도 당신이 this.color = color;을 쓰고있다 Triangle(double base, double height)

4) 귀하의 생성자입니다. 왜?

5) int color; 왜 색상이 int입니까? String이어야합니다.

6) color은 상위 클래스에 있습니다. 왜 자식 클래스에 다른 클래스를 추가할까요?

이러한 사항을 반드시 따라야합니다.

몇 가지 기본적인 변경 사항 남겨 둡니다. 수정 된 코드는 다음과 같습니다.

public class Triangle extends GeometricObject { 
    private double base; 
    private double height; 
    private int color; 

    public Triangle() { 
    } 

    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     System.out.println("Enter a width for triangle:"); 
     double base = Double.parseDouble("" + input.nextInt()); 

     System.out.println("Enter height for triangle:"); 

     double height = Double.parseDouble("" + input.nextInt()); 

     GeometricObject triangle = new Triangle(base, height); 

     System.out.println("Area of triangle " + triangle.getArea()); 
     System.out.println("Perimeter of triangle " + triangle.getPerimeter()); 
    } 

    public Triangle(double base, double height) { 
     this.base = base; 
     this.height = height; 
    } 

    public double getBase() { 
     return base; 
    } 

    public void setWidth(double width) { 
     this.base = base; 
    } 

    public double getHeight() { 
     return height; 
    } 

    public int getColor() { 
     return color; 
    } 

    public void setHeight(double height) { 
     this.height = height; 
    } 

    public void setColor(int color) { 
     this.color = color; 
    } 

    @Override 
    public double getArea() { 
     return 0.5 * base * height; 
    } 

    @Override 
    public double getPerimeter() { 
     return 2 * (base + height); 
    } 
} 

위 코드를 읽으면 스스로를 탐색해야합니다.

GeometricObject triangle = new Triangle(base, height); 
: I 옵션 아래에 사용했던 이유처럼
관련 문제