我不太確定如何將標題字也沒有,但我會盡量做到儘可能具體。我創建了一個包含構造函數的類,該構造函數允許我創建「Circle」類型的對象,並且此圓圈具有參數半徑。這裏是這個類:聲明一個私有的實例變量,並引用它在不同的類
public class Circle {
private double radius;
public Circle(double radius) {
this.radius = radius; // this.radius refers to the instance variable above
}
public Circle() {
}
public double getArea() {
double area = radius * radius * Math.PI;
return area;
}
public double getCircumference() {
double circumference = 2 * Math.PI * radius;
return circumference;
}
}
我認爲這個代碼中包含的方法是直截了當的。我創建一個給定半徑的對象,並計算周長和麪積。
我還有另一個類CircleTester,其中我創建了兩個Circle類型對象c1和c2,它們的半徑分別爲5和10。
public class CircleTester {
public static void main (String[] args) {
Circle c1 = new Circle(5);
double circumference1 = c1.getCircumference();
double area1 = c1.getArea();
System.out.println("Radius of c1: " + c1.radius);
System.out.printf("The circle c1 with circumference %.3f has area %.3f%n", circumference1, area1);
Circle c2 = new Circle(10);
double area2 = c2.getArea(); //objectReference.methodName()
double circumference2 = c2.getCircumference(); //objectReference.methodName()
System.out.println("Radius of c2: " + c2.radius);
System.out.printf("The circle c2 with circumference %.3f has area %.3f%n", circumference2, area2);
}
}
我有錯誤,有以下2行:
System.out.println("Radius of c2: " + c2.radius);
System.out.println("Radius of c2: " + c2.radius);
該項目未能作爲實例變量「半徑」被聲明爲Circle類的私人識別c2.radius。
我的問題是有沒有辦法讓CircleTester程序讀取每個對象的半徑值,而不需要將實例變量從private改爲public? c1.radius和c2.radius不起作用 - 錯誤是「Circle.radius不可見」(因爲它是私人的)**
我不想讓它公開的原因是因爲我我的導師告訴我,宣佈一個實例變量是公開的,可以被看作是糟糕的編程,我們可能會在考試中受到懲罰。
對不起,如果這是模糊或愚蠢 - 解釋從來就不是我的強項。我對Java也很新,所以我不能100%確定是否正確使用我的所有術語。
啊,所以我沒有聲明所有使用的方法干將? – user3186023
我其實很喜歡這種方法,並試圖實施它,工作一種享受,謝謝:) – user3186023
很好。將其標記爲答案?還是你需要別的東西? – ErstwhileIII