java 中静态方法与非静态方法的访问

java 中静态方法与非静态方法的访问

public class StaticMethod {
 //定义一个非静态方法
 public void callMe2()
 {
  System.out.println("This is a nonstatic method");
 }
 //定义一个静态方法
 public static void callMe()  //静态方法
 {
  System.out.println("This is a static method");
 }
 public void Test(){
  callMe();         //正确,可以直接调用访问本类静态方法
  callMe2();        //正确,可以直接调用访问本类非静态方法 
  StaticMethod.callMe();  //调用静态对象无需创建对象,可以直接用“类名。方法名”访问
  StaticMethod mob=new StaticMethod();
  mob.callMe2();      //调用非静态的使用“对象。方法名”访问
 }
 public static void main(String[] args){
  StaticMethod.callMe();     //静态方法在访问本类的成员时,只允许访问静态方法,在静态方法中不能调用非静态的方法和引用非静态的成员变量
  callMe();   //正确,可以直接调用访问本类静态方法                
  //callMe2(); //静态方法在访问本类的成员时,只允许访问静态方法,所以不能直接访问callMe2();因为callMe2()是非静态的。  
  StaticMethod oa=new StaticMethod();
  oa.Test(); //静态方法在访问本类的成员时,只允许访问静态方法,Test是非静态的,尽管Test内部又调用了静态的CallMe()
 }  

}

class  Run{
 public void RunTest(){
//  callMe();          //错误
//  callMe2();         //错误
  StaticMethod.callMe();       //调用静态对象无需创建对象,可以直接用“类名。方法名”访问
  //StaticMethod.callMe2();    //错误
  StaticMethod ob=new StaticMethod();//调用非静态对象要先实例化对象
  ob.callMe2();       //调用非静态的使用“对象。方法名”访问
 }
 public static void Run_main(String[] args){
  StaticMethod.callMe();      //静态方法在访问本类的成员时,只允许访问静态方法,在静态方法中不能调用非静态的方法和引用非静态的成员变量
  //StaticMethod.callMe2();    //静态方法在访问本类的成员时,只允许访问静态方法,所以不能直接访问callMe2();因为callMe2()是非静态的。
  StaticMethod oa=new StaticMethod();
  oa.callMe();                //调用静态对象无需创建对象,可以直接用“类名。方法名”访问,也可以使用“对象。方法名”访问
  oa.callMe2();     //调用非静态的使用“对象。方法名”访问
  oa.Test();      //静态方法在访问本类的成员时,只允许访问静态方法,Test是非静态的,尽管Test内部又调用了静态的CallMe()
 }  
}

posted @ 2016-12-03 15:39  天涯海角路  阅读(262)  评论(0)    收藏  举报