问题:静态方法和非静态方法的区别

ni_hao_100 2009-12-30 09:37:39
两个类,A类和B类 ,A类调用B类中的方法。

1、我把B类中方法全部定义成静态方法,然后在A类中调用。
2、B类中定义成非静态类方法,在A类中定义B类实例对象,再进行调用。

1和2有什么区别啊?
...全文
95 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dinghun8leech 2009-12-30
  • 打赏
  • 举报
回复
主要区别是:静态方法使用时无需实例化所属的类,非静态化的则需要。
更深层的区别就需要楼主日后体会了。
记得某本书上说过:当你的程序中充斥着大量静态方法时,或许你需要改变一下设计了。
面向对象特性中抽象产生了抽象类和接口,进而产生类之间的上下相互继承关系,进而产生方法的重写和重载等多态特性,静态方法没有重写概念,个人认为他基本与面向对象无关系。
APOLLO_TS 2009-12-30
  • 打赏
  • 举报
回复
如下只是一个JVM管理程序的大体概况:
-----------------------
用户栈
-----------------------
共享区间[如果使用静态方法,就在这区间有引用了]
-----------------------
程序堆[使用new就在这个区间有实例对象了]
-----------------------
IO资源区
-----------------------
只读代码段
-----------------------
其它区间
-----------------------
ni_hao_100 2009-12-30
  • 打赏
  • 举报
回复
谢谢大家
pangns 2009-12-30
  • 打赏
  • 举报
回复
静态方法和非静态方法相比不占用内存
真哥哥 2009-12-30
  • 打赏
  • 举报
回复
静态方法是类方法,调用时不需要创建类实例,静态方法是静态绑定到子类,不是被继承。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧