java调用静态方法会创建对象吗
2016-11-25 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
在java中是不可以不实例化对象去调用非静态方法的。
静态方法跟非静态方法主要的区别在于生命周期。
静态方法的生命周期从进程被创建就开始了,直到进程结束,所以说静态方法是全局的,贯穿整个进程。
非静态方法的生命周期,从类实例化对象开始,直到实例对象被注销回收之后结束。
所以可知,非静态方法的生命周期要短于静态方法,这也是非静态方法中不能调用静态方法的原因。
你给的例子中的语句:new Person().eat(new Apple());已经实例化对象了,new Person()就是在实例化对象,否则不能调用非静态的eat()方法。
当然也可以这么写,你就会非常熟悉。
Person person = new Person();
person.eat(new Apple());
静态方法跟非静态方法主要的区别在于生命周期。
静态方法的生命周期从进程被创建就开始了,直到进程结束,所以说静态方法是全局的,贯穿整个进程。
非静态方法的生命周期,从类实例化对象开始,直到实例对象被注销回收之后结束。
所以可知,非静态方法的生命周期要短于静态方法,这也是非静态方法中不能调用静态方法的原因。
你给的例子中的语句:new Person().eat(new Apple());已经实例化对象了,new Person()就是在实例化对象,否则不能调用非静态的eat()方法。
当然也可以这么写,你就会非常熟悉。
Person person = new Person();
person.eat(new Apple());
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询