| 
 
| 有下面一个很基本的代码,提问是:为什么第一,二次的显示结果是一样的呢? 源代码如下:
 public class TestCircle3
 {
 public static void main(String[] args)
 {
 Circle3 myCircle = new Circle3(5.0);
 System.out.println("The area of the radius "+myCircle.getRadius()+" is "+myCircle.getArea());
 
 myCircle.setRadius(myCircle.getRadius() * 1.1);
 System.out.println("The area of the radius "+myCircle.getRadius()+" is "+myCircle.getArea());
 
 System.out.println("The number of objects creased is "+Circle3.getNumberOfObjects());
 }
 }
 class Circle3
 {
 private double radius = 1.0;
 
 private static int numberOfObjects;
 
 public Circle3()
 {
 numberOfObjects++;
 }
 
 public Circle3(double newRadius)
 {
 radius = newRadius;
 numberOfObjects++;
 }
 
 public double getRadius()
 {
 return radius;
 }
 
 public void setRadius(double newRadius)
 {
 radius = (newRadius > 0) ? radius : 0;
 }
 
 public static int getNumberOfObjects()
 {
 return numberOfObjects;
 }
 
 public double getArea()
 {
 return radius * radius * Math.PI;
 }
 }
 
 运行结果如下:
 The area of the radius 5.0 is 78.53981633974483
 The area of the radius 5.0 is 78.53981633974483
 The number of objects creased is 1
 
 
 | 
 |