一个static方法内可以调用非static方法吗?

不可以。
因为非 static 方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而 static 方法调用时不需要创建对象,可以直接调用。

也就是说,当一个 static 方法被调用时,可能还没有创建任何实例对象,如果从一个 static 方法中发出对非 static 方法的调用,那个非 static 方法关联到那个对象上的呢?这个逻辑无法成立,所以,一个 static 方法内部不能发出对非 static 方法的调用。

static 方法是静态方法,是属于类的方法,非 static 方法是属于对象的方法,所以在 static 方法中想要调用非 static 方法,要先新创建一个对象,再有这个对象来调用非 static 方法。

本质是 jvm 加载顺序约定的,加载 static 方法的时候非静态方法还没初始化,当然不能调用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiangyuenacha

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值