" private static double readDouble(String prompt){
 String numStr = JOptionPane.showInputDialog(prompt);
 return Double.parseDouble(numStr);
 }
//---这个地方我不太理解,为什么要写成Static的形式?另外,这里的prompt定义为String类型,但是如何变为数字存储在numStr里呢?
这也是我不理解关于class method 与 instance method 区别的地方。可能是我对有些概念还是比较糊涂。
"---用static来修饰方法的原因很多,一是使用方便(不用生命实例),二是此方法不应该依赖于实例...其他的暂时没想到,想到再说
   prompt是String类型的,numStr还是String类型的,
   String numStr = JOptionPane.showInputDialog(prompt);
   这一句做了什么事情,你可以暂时不用管它,你只要明白JOptionPane.showInputDialog接受了一个String类型并且返回了一个String类型,并且showInputDialog是一个static方法,因为它没有声明实例就可以用
   同样Double.parseDouble也是一个static方法,作用是接受一个String类型的数据并返回一个double类型的数据"
private Circle inner; ----// 这里,为什么会这样写?
private Circle outer; ----// 这里,为什么会这样写?
"
---inner和outer都是Circle类型的变量,当然可以这样写,这就是常说的类的实例,inner就是Circle的一个实例(instance )
"
public void setInner(double inRadius){
inner = new Circle(inRadius);
}-----//这里也不太明白,为什么这么写呢? 这样可以吗? Circle inner = new Circle(outRadius); 有什么区别吗?"---前面已经声明了 “private Circle inner” 所以,inner是该类的类变量,在所有的方法里都有效
  你如果换成Circle inner = new Circle(outRadius);那么inner的就是方法setInner的局部变量,此时,两个inner就不是同一个变量了"
 public Circle(){} --- //这里,是什么意思?
"
---这是类的不带参数的构造方法,所以它没有返回值

解决方案 »

  1.   

    static 的用途在这里应该是可以方便调用,不需要实例化,可以当全局函数用。return Double.parseDouble(numStr);这是一个包装类的用法。
      

  2.   

    "
    private Circle inner; ----// 这里,为什么会这样写?
    private Circle outer; ----// 这里,为什么会这样写?
    "
    ---inner和outer都是Circle类型的变量,当然可以这样写,这就是常说的类的实例,inner就是Circle的一个实例(instance )应该是一个引用,并没有真正的实例化
      

  3.   

    文件不是有出错信息,而是显示的:“"\nThe weight of"+ quantity + "washers is " + batchWeight + " grams"中的batchWeight 是空值,不知道为什么?
      

  4.   

    方法readDouble等声明为静态的,一个重要原因是要在main中调用,而且main是静态的它只能调用静态的方法。至于其他的问题问别人总是很难问明白的(我以为)!
      

  5.   

    你的问题nc201(Bricklayer) 回答的很清楚透彻。
      我觉得你对类方法和实例方法以及默认构造函数等知识还比较模糊,说不你的基本功还不算扎实,建议你看看核心技术或候捷编程思想!