静态方法和非静态方法的相互访问
class TT {
public void play() {
System.out.println("TT play");
}
}
public class MainTest {
TT t = new TT();
public void go() {
System.out.println("is going");
}
public static void main(String[] args) {
t.play();
go();
}
}
类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问;非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问。
静态成员函数或方法是在类初始化时加载完成。
静态方法加载完成后,对象可能未建立,所以为静态不能调用非静态,编译会报错。
静态方法对非静态方法发起调用时,需实例化包含非静态方法的类的对象。
静态可以调用静态 非静态既可以调用静态也可以调用非静态。