微信二维码
微博二维码
qq号二维码

Java中的static关键词用法

王伟平 2020-09-18 JAVA 392人浏览

在Java中,是否可以从一个static方法内部发出对非static方法的调用?如果不可以,请说明.

4个回答
胡寒

不可以,因为非静态方法的使用是需要实例化对象,在对象上进行调用.

而静态方法可以直接通过类名加静态方法名调用.

如果静态方法中可以调用非静态方法,那么在外部调用静态方法的时候,非静态方法所依赖的对象是不确定的,逻辑上就不成立.

 

  2020-09-18
杨磊

不可以,静态方法只能访问静态成员,因为非静态方法的调用要先创建对象,在调用静态方法时可能对象并没有被初始化,因为非static方法是要与对象关联在一起的,必须创建一个对象后,才能在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用.也就是说当一个static方法被调用时可能还没有闯进任何实例对象,所以从一个static方法中发出对非static方法的调用,那个非static方法关联到那个对象上的呢?这个逻辑无法成立

回答已被采纳   2020-09-21
赵瑞

不可以调用

  2020-09-24
赵瑞

因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法关联到那个对象上的呢?这个逻辑无法成立,所以,一个static方法内部不能发出对非static方法的调用。

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

  2020-09-24
分享到: