1、如果在非静态方法里调用非静态方法,则可以用this调用。
如:this.Hao(String args[]) ,也可以省略this,直接调用Hao(String args[])。
2、如果在静态方法里调用静态方法,则可以直接使用“类名.方法名”调用。
如:若被调用的静态方法m1在类Hao1里,则调用方法是
1 //静态方法里调用静态方法,使用“类名.方法名”调用。 2 3 public static void m() 4 { 5 Hao1.m1(); 6 }
3、如果在静态方法里调用非静态方法,则必须先new一个对象,通过对象调用。
如:若被调用的非静态方法m2在类Hao2里,则调用方法是
1 //静态方法里调用非静态方法,先new一个对象,通过对象调用。 2 3 public static void m() 4 { 5 Hao2 a=new Hao2(); 6 a.m2(); 7 8 //new Hao2().m2(); 9 }
注意:
1.静态变量在内存中只有一个拷贝,在类的所有实例中共享
2.静态方法不能直接访问非静态方法和非静态变量
3.非静态方法可以访问类的所有成员变量(包括静态成员变量和非静态成员变量)
4.静态方法和静态变量都可以通过类名直接被访问
5.静态方法中不能使用this,super关键字
关于静态方法和非静态方法之间的调用,布布扣,bubuko.com
原文:http://www.cnblogs.com/haojian138/p/3579768.html