关于静态方法和非静态方法之间的调用

 

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关键字

 

posted @ 2014-03-04 10:02  流风清音  阅读(2348)  评论(0编辑  收藏  举报