Java 如果一个方法依赖于实例的创建,我们为什么不声明它是静态的呢?

Java 如果一个方法依赖于实例的创建,我们为什么不声明它是静态的呢?,java,static,static-methods,Java,Static,Static Methods,我读过关于什么时候应该使用静态函数的文章,但我不明白。有人能举例说明一下吗 无论何时,都应该使用静态方法 方法中的代码不依赖于实例创建,也不使用任何实例变量 来源:静态方法不同于非静态方法,因为它们不与任何特定对象关联,因此不允许您在它们内部引用此。其中包括对该的隐式引用。方法通常是非静态的,因为大多数方法定义对象的行为,而这种行为要求类的实例具有任何意义。例如,一个List类将具有一个非静态方法,该方法将某些内容附加到List中。该方法需要一个列表的实际实例来解释——如果您只是说“将5追加到列

我读过关于什么时候应该使用静态函数的文章,但我不明白。有人能举例说明一下吗

无论何时,都应该使用静态方法

方法中的代码不依赖于实例创建,也不使用任何实例变量


来源:

静态方法不同于非静态方法,因为它们不与任何特定对象关联,因此不允许您在它们内部引用此。其中包括对该的隐式引用。方法通常是非静态的,因为大多数方法定义对象的行为,而这种行为要求类的实例具有任何意义。例如,一个List类将具有一个非静态方法,该方法将某些内容附加到List中。该方法需要一个列表的实际实例来解释——如果您只是说“将5追加到列表”,那么响应将是“哪个列表?”。它的语法看起来像
myList.push(5),通过在点之前放置对对象的引用来指定要附加到的列表。但是,如果您有一个不需要类实例的操作,那么需要构造一个实例来调用函数将是愚蠢的。例如,平方根函数不依赖于需要构造的某个数学对象,它只对单个数字进行运算。因此,为了避免让你做类似
newmath().sqrt(5),它们生成一个静态方法,您可以调用它,如
Math.sqrt(5)

任何人都可以提出任何主张,无论是对是错。在你的问题中加上你的索赔来自哪里,这将是很有用的。无论是一本书,还是一篇文章/网络帖子,等等。不清楚“不依赖于实例创建”这一说法的真正含义是什么,知道该说法的来源也有助于添加此类上下文。欧文,“不依赖于实例创建”的意思是,这是一种应该能够完成其工作的方法,即使尚未创建类的实例。如果你问我的话,哈希特所引用的建议与其说是有用的,不如说是重复的。在他的问题中引用这些建议似乎是合理的,因为(a)显然是正确的,(b)有必要理解他所问的问题。如果他把它拿出来,那么他需要解释它来解释他的问题是什么,他需要理解它来有效地解释它。我编辑了描述并添加了来源。