java实例调用静态方法_Java中的静态方法和实例方法的调用的理解(不同的类下的方法调用)...

public class MethodCall { public static void main(String[] args) { Test.sayStatic(); Test test = new Test(); test.sayInstance(); } } class Test { public static void sayStatic() { System.out.println("这是一个静态方法。"); } public void sayInstance() { System.out.println("这是一个实例方法。"); } }

我的理解:

public class Authorization { public static final int MANAGER = 1; public int manager;

public static void main(String[] args) {

Authorization A=new Authorization();

A.manager=1;

Test B=new Test();

System.out.println(B.canAccess(A.manager)+"不同类下非静态的实例方法");

//非静态方法必须通过实例调用,方法是Test类下的方法,所以用Test属性的实例来调用

System.out.println(Test.Access(A.MANAGER)+"不同类下静态的实例方法");

//静态的方法可以不需要实例来调用,可以直接用方法名调用,这里的Access方法不在Authorization类下,所以要写上类名注明来处

System.out.println(A.couldAccess(A.manager)+"同一个类下非静态的实例方法");

//这里的couldAccess方法在Authorization类下且为非静态的,所以要用Authorization属性的实例来调用

System.out.println(weAccess(A.manager)+"同一个类下静态的实例方法");

/*这里的weAccess方法也在Authorization类下且为静态,故不需要创建实例来调用,并且可以省略掉类名。

加上Authorization或者实例来调用也可以,最好是加上类名,以便使格式保持一致*/

//这里的大写的MANAGER这些变量可以看做是实例的属性,也可以直接作为常量使用,最好是直接作为常量使用

}

public boolean couldAccess(int access) {

if (access == Authorization.MANAGER)

{

return true;

} else

{

return false;

}

}

public static boolean weAccess(int access) {

if (access == Authorization.MANAGER)

{

return true;

} else

{

return false;

}

}

}

另一个类Test: public class Test { public boolean canAccess(int access) { if (access == Authorization.MANAGER) { return true; } else { return false; } }

public static boolean Access(int access) {

if (access == Authorization.MANAGER)

{

return true;

} else

{

return false;

}

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值