2014-05-02 44 views
0

這是我的代碼:我正在做的是在輸出中我有彩色顯示爲圓1但不是在圓2,我不知道爲什麼。有人可以幫我弄這個嗎?使用getters和setter來顯示顏色

這是我的第一組碼:

public class Circle 
{ 
private double radius; 
private String color; 

public Circle() 
{ 
    radius = 1.0; 
    color = "red"; 
} 

public Circle(double newRadius) 
{ 
    radius = newRadius; 
} 

public double getRadius() 
{ 
    return radius; 
} 

public double getArea() 
{ double ar = Math.PI * radius * radius; 

    // round the area up to two decimals 
    ar = Math.round(ar * 100.0)/100.0; 

    return ar; 
} 
public Circle (String newColor){ 
    color = newColor; 
} 
public String getColor(){ 

    return color; 
} 
} 

這裏是第二部分與主方法:

public class TestCircle 
    { 
public static void main(String[] args) 
{ 
    Circle cir1 = new Circle(); 

    System.out.println("Details of circle 1:"); 
    System.out.println("Radius: " + cir1.getRadius()); 
    System.out.println("Area: " + cir1.getArea()); 
    System.out.println("Color: " + cir1.getColor()); 

    Circle cir2 = new Circle(5); 
    System.out.println("******************************"); 
    System.out.println("Details of circle 2:"); 
    System.out.println("Radius: " + cir2.getRadius()); 
    System.out.println("Area: " + cir2.getArea()); 
    System.out.println("Color: " + cir2.getColor()); 

} 
} 

這裏是輸出:圓1的

詳細說明:

半徑:1.0

面積:3.14

顏色:紅色


圈2的詳細信息:

半徑:5.0

面積:78.54

顏色:空

回答

0

發生這種情況是因爲您只在一個構造函數中設置顏色。因此,當您使用第二個構造函數創建諸如cir2之類的對象時,顏色不會被設置。

要解決此問題,請在第二個構造函數中添加一行以設置顏色。也許它可能是這樣的。

public Circle(double newRadius) 
{ 
    radius = newRadius; 
    color = "blue"; 
} 
1

你第二個圓圈使用構造函數

public Circle(double newRadius) 
{ 
    radius = newRadius; 
} 

它不分配顏色。

我不確定您是否打算讓您的newColor方法成爲構造函數。你可能想要顏色的制定者:在地方

public void setColor(String newColor) { 
    this.color = newColor 
} 

有了這個,你可以沿着線做些事情:

Circle cir2 = new Circle(5); 
cir2.setColor("red") 
System.out.println("Color: " + cir2.getColor()); 

或者,如果你想讓它像cir1工作,加色分配雙重構造函數也是如此。

0

您圓下方構造2層的用途和它沒有提及設置一個顏色....這裏默認構造函數。

public Circle(double newRadius) 
{ 
    radius = newRadius; 
} 

在我看來,您可以在此構造函數中添加另一個參數,以根據用戶的偏好獲取顏色值。