繁体   English   中英

Java中使用静态方法和实例方法的方式有何不同?

[英]What is the difference in the way static methods and instance methods are used in Java.

在读一本书时,我遇到了这样的说法:


对象的方法定义其行为。 这些方法称为实例方法。 重要的是要注意,这些方法与类的每个对象有关。 这不应与该类的所有实例共享的方法的实现混淆。


我知道什么是实例方法,我知道什么是静态方法(即由该类的所有实例共享)。 上面的陈述似乎表明所有实例都共享方法的实现。 这到底是什么意思? 听起来好像不是在引用静态方法。

这意味着您不会在类的每个实例旁边获得额外的代码本身副本。 该行为与该类的实例相关联,因此它具有该上下文 ,但是对于实例方法在内存等方面没有额外的“每实例”代价。

关于static一个简短的注意点:我不喜欢将其描述为“由类的所有实例共享”,因为这表明如果没有任何实例,则它是不可用的。 我更喜欢说它与类本身相关联,而不是与类的特定实例相关联。

实例共享实现,但是实现作用于单个实例。

  • “这些方法与类的每个对象有关” -方法作用于单个实例。
  • “由所有实例共享的方法的实现” -该方法只有一种实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM