静态方法和非静态方法的相互访问
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(); } }
类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问;非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问。
静态方法对非静态方法发起调用时,需实例化包含非静态方法的类的对象。
静态成员函数或方法是在类初始化时加载完成。
静态方法加载完成后,对象可能未建立,所以为静态不能调用非静态,编译会报错。
静态可以调用静态 非静态既可以调用静态也可以调用非静态。