java 静态 非静态_java#静态方法与非静态方法的访问

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

//静态方法与非静态方法的访问

//调用静态对象无需创建对象,可以直接用“类名。方法名”访问;调用非静态需创建对象,使用“对象。方法名”访问

public class StaticMethod { //定义一个非静态方法

public void NonStatic_callMe2()

{

System.out.println("This is a nonstatic method");

}

public static void Static_callMe(){//定义一个静态方法

System.out.println("This is a static method");

}

public void Test(){

Static_callMe();               //正确,可以直接调用访问本类静态方法

NonStatic_callMe2();           //正确,可以直接调用访问本类非静态方法

StaticMethod.Static_callMe();  //调用静态对象无需创建对象,可以直接用“类名。方法名”访问

StaticMethod mob=new StaticMethod();

mob.NonStatic_callMe2();      //调用非静态的使用“对象。方法名”访问

}

public static void main(String[] args){

StaticMethod.Static_callMe();

//静态方法在访问本类的成员时,只允许访问静态方法,在静态方法中不能调用非静态的方法和引用非静态的成员变量

Static_callMe();     //正确,可以直接调用访问本类静态方法

//NonStatic_callMe2();

//静态方法在访问本类的成员时,只允许访问静态方法,所以不能直接访问callMe2();因为callMe2()是非静态的。

StaticMethod oa=new StaticMethod();

oa.Test();

//静态方法在访问本类的成员时,只允许访问静态方法,Test是非静态的,尽管Test内部又调用了静态的CallMe()

}

}

class  Run{

public void RunTest(){

//  callMe();          //错误

//  callMe2();         //错误

StaticMethod.Static_callMe();       //调用静态对象无需创建对象,可以直接用“类名。方法名”访问

//StaticMethod.NonStatic_callMe2();

//错误:Cannot make a static reference to the non-static method NonStatic_callMe2() from the type StaticMethod

StaticMethod ob=new StaticMethod(); //调用非静态对象要先实例化对象

ob.NonStatic_callMe2();      //调用非静态的使用“对象。方法名”访问

ob.Static_callMe();     //不建议这么调用静态方法

}

public static void Run_main(String[] args){

StaticMethod.Static_callMe();

//静态方法在访问本类的成员时,只允许访问静态方法,在静态方法中不能调用非静态的方法和引用非静态的成员变量

//StaticMethod.callMe2();

//静态方法在访问本类的成员时,只允许访问静态方法,所以不能直接访问callMe2();因为callMe2()是非静态的。

StaticMethod oa=new StaticMethod();

oa.Static_callMe();

//调用静态对象虽无需创建对象,可以直接用“类名。方法名”访问,也可以使用“对象。方法名”访问

//不建议这么调用静态方法

oa.NonStatic_callMe2();    //调用非静态的使用“对象。方法名”访问

oa.Test();

//静态方法在访问本类的成员时,只允许访问静态方法,Test是非静态的,尽管Test内部又调用了静态的CallMe()

}

}

//无注释代码,与上面一致

public class StaticMethod { //定义一个非静态方法

public void NonStatic_callMe2()

{

System.out.println("This is a nonstatic method");

}

public static void Static_callMe(){//定义一个静态方法

System.out.println("This is a static method");

}

public void Test(){

Static_callMe();

NonStatic_callMe2();

StaticMethod.Static_callMe();

StaticMethod mob=new StaticMethod();

mob.NonStatic_callMe2();

}

public static void main(String[] args){

StaticMethod.Static_callMe();

Static_callMe();

//NonStatic_callMe2();

StaticMethod oa=new StaticMethod();

oa.Test();

}

}

class  Run{

public void RunTest(){

//  callMe();

//  callMe2();

StaticMethod.Static_callMe();

//StaticMethod.NonStatic_callMe2();

StaticMethod ob=new StaticMethod();

ob.NonStatic_callMe2();

ob.Static_callMe();

}

public static void Run_main(String[] args){

StaticMethod.Static_callMe();

StaticMethod oa=new StaticMethod();

oa.Static_callMe();

oa.NonStatic_callMe2();

oa.Test();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值