A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭学文 黑马帝   /  2011-11-7 16:14  /  5503 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


什么情况下将一个方法定义为static?

7 个回复

倒序浏览
如果你不想创建实例去调用这个方法,就把这个方法定义为static,
Static是静态的,公共的,为所有对象所共有的

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
如果你的这个静态方法经常性的被调用,那么你使用静态的话就会一直放在内存中,虽然会占用一点内存空间,但是你不用每次使用对象来进行调用,可能你创建对象已经就需要额外的开销,当然如果你的对象的静态公用的或者单例的那不会有影响,而且你调用非静态方法的时候方法每次创建和销毁已经形参的压栈和出栈也是需要一定的运行时间.
回复 使用道具 举报
Static是静态的,公共的,为所有对象所共有的,不需要建立类实例就可以引用的成员或方法应该定义成static.
回复 使用道具 举报
内存中可以分为栈,堆,和方法区。
栈中存放的是对象的引用,堆中存放着对象,方法区存放的是共享的数据和对象的方法。
当数据需要被多个对象所共享使用时就用static修饰,存放在方法区。
当功能内部没有访问到非静态数据时,就可以定义为静态的。
工具类里的方法一般定义为静态的,方便其它对象的调用。
回复 使用道具 举报
当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的
回复 使用道具 举报
张翼 黑马帝 2011-11-9 08:38:10
7#
本帖最后由 张翼 于 2011-11-9 08:38 编辑

     static 是类级别的,当需要不创建对象就要调用方法时,static就变得
有用了。
      还有类方法不可以被重写,也就是说当需要对一个方法设置权限时,当一个方法不可被重写时候,可设置为static。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马