import java.awt.Color;
class TeaPot {
private static int numOfTP = 0;
private Color myColor_;
public TeaPot(Color c) { 
myColor_ = c;  
numOfTP++; 
}
public static int howManyTeaPots() 
{ return numOfTP; } // error :
public static Color getColor() 
{ return myColor_; }
}这个为什么不能这么写啊?

解决方案 »

  1.   

    类静态方法不能存取实例变量myColor_
      

  2.   

    静态方法中不能调用非静态变量和非静态变量方法
    private static Color myColor_;
      

  3.   

    public static Color getColor() 
    { return myColor_; }类方法中不能用实例成员数据,如果用也得有对象生成,"对象.成员数据"
      

  4.   

    static(类) 方法中不能直接使用 non-static(实例) 成员数据和成员方法,如果非要使用,必须先生成对象,然后用“对象.成员数据 ” “对象.成员方法”的格式使用即可。
      

  5.   

    建议楼主看看这篇文章:http://www.graphics.net.cn/article/java/java_static.asp