当前位置: 首页 > 知识库问答 >
问题:

为什么静态方法被认为是方法?

南门棋
2023-03-14

根据我的理解,如果子例程不作用于类的实例(其作用仅限于显式输入/输出),则它是函数;如果子例程作用于类的实例,则它是方法(它可能会对实例产生副作用,使其不纯)。

关于这个话题,这里有一个很好的讨论。请注意,根据接受答案的定义,静态方法实际上应该是一个函数,因为实例从不隐式传递,而且它不能访问任何实例的成员。

不过,考虑到这一点,静态方法实际上不应该是函数吗?

我想确保我使用了正确的措辞。
有人能澄清一下吗?

共有1个答案

王彭薄
2023-03-14

引自8.4.3.2的这句话可能会有所帮助:

声明static的方法称为类方法。

未声明static的方法称为实例方法[...]。

    null
 类似资料:
  • 问题内容: 我正在为某门课程的一些代码编写解释,并且偶然使用了这些单词并且可以互换使用。我决定回过头来修正措辞,但在我的理解上遇到了一个漏洞。 据我了解,子例程是一个如果它不作用于一个类的实例(其作用仅限于其显式输入/输出),并且是一个如果它作用于一个类的实例(它可能带有消除导致实例不纯的副作用)。 这里有一个很好的讨论主题。请注意,根据接受的答案的定义,静态实际上应该是一个函数,因为永远不会隐式

  • 伙计们,我有一个简单但令人讨厌的问题。据我所知,基本上意味着,对于该类的每个实例,这个方法将是相同的,如果我们改变它,这将改变该类的每个实例,它也被称为类方法。那么,如果我有一个类,它实现了某种格式的方法,让我们说: 为什么不能设置为静态?因为该类的每个实例的格式都是相同的。。。?

  • 问题内容: Java main()方法的方法签名为: 此方法是否有理由是静态的? 问题答案: 该方法是静态的,因为否则会产生歧义:应调用哪个构造函数?特别是如果你的班级是这样的: JVM应该调用吗?它应该做什么x? 如果不是,JVM是否应该在不运行任何构造方法的情况下实例化?我认为不应该这样,因为这将对整个类进行特殊处理-有时你有一个尚未初始化的实例,并且必须在每个可以调用的方法中进行检查。 对于

  • 我知道在Java中,静态方法和实例方法一样是继承的,不同的是,当它们被重新声明时,父实现是隐藏的,而不是重写的。好吧,这有道理。但是,Java教程指出 接口中的静态方法从不继承。 然而,

  • 问题内容: 我是一位Java程序员,对公司领域来说是新手。最近,我已经使用Groovy和Java 开发了一个应用程序。我编写的所有代码都使用了大量的静态变量。高级技术人员要求我减少使用的静电数量。我已经在谷歌上搜索了相同的内容,并且发现许多程序员都反对使用静态变量。 我发现静态变量更易于使用。而且我认为它们也是有效的(如果我错了,请纠正我),因为如果我必须对一个类中的一个函数进行10,000次调用

  • 我能够运行以下代码: 现在我可以从类B的实例访问display()方法,那么为什么说静态方法不能继承呢。如果我在类B中声明一个方法display,那么可以说超类中的方法被隐藏,子类中的方法被调用,那么这不是重写方法时所需要的行为。