栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java:何时使用静态方法?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java:何时使用静态方法?

一个经验法则:问自己“即使尚未构建Obj,调用此方法是否有意义?” 如果是这样,那肯定是静态的。

因此,在一个类中,Car你可能有一个

double convertMpgToKpl(double mpg)
静态的方法,因为即使没有人制造过汽车,也可能想知道35mpg转换为什么。但是
void setMileage(double mpg)
(设置一辆特定Car的效率)不能是静态的,因为在构造任何Car之前都无法调用该方法。

(顺便说一句,情况并非总是如此:你有时可能有一个涉及两个Car对象的方法,但仍然希望它是静态的。例如

Car theMoreEfficientOf( Car c1, Car c2 )
。尽管可以将其转换为非静态版本,但有人会争论说,既然不是哪个Car更为重要的“特权”选择,你不应该强迫调用者选择一个Car作为要在其上调用该方法的对象。这种情况在所有静态方法中所占的比例很小.

仅在以下情况下定义静态方法:

  1. 如果你正在编写实用程序类,则不应更改它们。
  2. 如果该方法未使用任何实例变量。
  3. 如果有任何操作不依赖于实例创建。
  4. 如果某些代码可以被所有实例方法轻松共享,则将该代码提取到静态方法中。
  5. 如果你确定该方法的定义永远不会更改或覆盖。由于静态方法不能被覆盖。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/370812.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号