在使用类的静态方法时:在静态方法里只能调用同类中的其他静态成员,不能调用本类中非STATIC的成员。我有点不懂~看下面的程序:
class a
 {
   static void b()
   {     System.out.println("");
  
    }
  void bb()
   {
   b();
  }
}
class c{
//}
问题:这里的bb不是一个静态方法,他怎么可以调用上面的静态方法呢?既然他不是个静态的,他怎么可以调用其他的呢,希望能详细解释下~~

解决方案 »

  1.   

    在静态方法里只能调用同类中的其他静态成员,不能调用本类中非STATIC的成员意思是指:静态方法里,只能调用同类中类变量,不能调用实例变量!!
    (类方法只能访问类变量)实例方法既可以对当前对象进行访问,也可以对类变量进行操作!!!
    类方法不可以调用实例方法!
    类变量和类方法不需要生成对象,可以直接访问。
    每个实例的对象对类变量的改变都会影响到其它他的实例变量!!
    给你举个例子吧!!!
    public class Test{
    static int k=20;   //新建一个类变量
    public static void main(String[] args){//主方法入口StaB();  //类方法,可以直接调用
    Test T=new Test();   //新建一个T实例对象
    T.ObjB();//调用实例方法ObjB}
    static void StaB()  //新建一个类方法StaB
       {
         k=50;  //同类中,类方法可以直接调用和改变类方法
         System.out.println(k);
         System.out.println("静态方法StaticB()");
     //  ObjB();  类方法不可以调用实例方法
        }
     void ObjB()  //新建一个实例方法
       {
       System.out.println("调用实例方法时:");
       StaB();//实例方法在同类中,可以直接调用类方法
       k=30;//实例方法可以改变类成员的值
       System.out.println(k);
      }
    } 这些都限定在同类中!!!!
    OK?
      

  2.   

    在静态方法里只能调用同类中的其他静态成员,不能调用本类中非STATIC的成员