我正在做一個家庭作業,我確定一個圓柱體的體積。課程的目標是類和對象。我有兩個班,「CylinderTest」&「Cylinder」。氣缸測試稱爲氣缸。除了獲取和設置方法之外,一切似乎都工作得很好。我試圖阻止對負數進行計算,但這不起作用,無論如何執行計算。Java getter和setter不工作
這裏是CylinderTest類
public class CylinderTest
{
public static void main(String[] args)
{
Cylinder myTest = new Cylinder(-1, -1);
myTest.getHeight();
myTest.getRadius();
System.out.println(myTest);
printHeader();
double volume = myTest.volume();
displayCylinder(volume);
}
private static void printHeader()
{
System.out.println("Cylinder");
System.out.println("________");
}
private static void displayCylinder(double volume)
{
System.out.print("Cylinder volume = ");
System.out.println(volume);
}
}
這裏是Cylinder類
public class Cylinder
{
// variables
public static final double PI = 3.14159;
private double radius, height, volume;
// constructor
public Cylinder(double radius, double height)
{
this.radius = radius;
this.height = height;
}
// Volume method to compute the volume of the cylinder
public double volume()
{
return PI * radius * radius * height;
}
// accessors and mutators (getters and setters)
public double getRadius()
{
return radius;
}
public void setRadius(double radius)
{
if (radius > 0.0)
this.radius = radius;
else
this.radius = 1.0;
}
public double getHeight()
{
return height;
}
public void setHeight(double height)
{
if (height > 0.0)
this.height = height;
else
this.height = 1.0;
}
public double getVolume()
{
return volume;
}
public void setVolume(double volume)
{
this.volume = volume;
}
}
你從來沒有打電話給你的製片人。而且,如果你不想允許負值,那麼爲什麼不在構造函數中驗證同樣的東西呢?此外,你似乎忽略了你的獲得者的回報價值。 –
謝謝Rohit Jain。我將構造函數更改爲這個公共圓柱體(雙半徑,雙高度) { \t setRadius(radius); \t setHeight(height); } – user2802785