Java静态java调用非静态方法问题

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()
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 java静态和非静态 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信