在java中为什么不全部使用static方法?

2022-09-08
42 阅读

如果全部使用了static方法,那么静态的方法只能访问静态的成员。

那么整个类都只有静态成员和静态方法,这就意味着对象消失了。

就不存在继承和多态了,也就颠覆了整个面向对象程序设计的世界。

static修饰的静态成员变量和静态成员方法,都是存在数据共享区的,即data内存中,而非static修饰的对象是建立的heap堆内存中的,这样面向对象的数据封装也就不存在了,藉此面向对象的封装,继承和多态三大核心全部被打破。

这也就意味着你由面向对象编程退化回了面向过程编程。

这样你扭出来的对象是不能复用的。

所以你要思考什么时候使用static修饰成员,什么时候使用static修饰方法,这样做才不至于脱裤子放屁。

当属于同一类的所有对象出现共享数据时,就需要将存储这个共享数据的成员用static修饰。

当功能内部没有访问到非静态成员时,需要访问对象特有的数据,那么该功能才定义为静态,这时候才使用static。

补充一句,Java在有了spring之后,配置类能够解决共享数据的问题,再没有使用过static方法,貌似忘了这个关键字也没有解决不了的问题。

分享至:
管理员

小草

专注人工智能、前沿科技领域报道,致力于为读者带来最新、最深度的科技资讯。

评论 (0)

当前用户头像