在使用类的静态方法时:在静态方法里只能调用同类中的其他静态成员,不能调用本类中非STATIC的成员。我有点不懂~看下面的程序:
class a
{
static void b()
{ System.out.println("");
}
void bb()
{
b();
}
}
class c{
//}
问题:这里的bb不是一个静态方法,他怎么可以调用上面的静态方法呢?既然他不是个静态的,他怎么可以调用其他的呢,希望能详细解释下~~
class a
{
static void b()
{ System.out.println("");
}
void bb()
{
b();
}
}
class c{
//}
问题:这里的bb不是一个静态方法,他怎么可以调用上面的静态方法呢?既然他不是个静态的,他怎么可以调用其他的呢,希望能详细解释下~~
(类方法只能访问类变量)实例方法既可以对当前对象进行访问,也可以对类变量进行操作!!!
类方法不可以调用实例方法!
类变量和类方法不需要生成对象,可以直接访问。
每个实例的对象对类变量的改变都会影响到其它他的实例变量!!
给你举个例子吧!!!
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?