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

“静态”方法的词源是什么?[重复]

姬坚成
2023-03-14

在许多语言中,例如Java和JavaScript,静态关键字指的是类方法或类变量。

  • 为什么叫'静态'方法?为什么不叫'蓝色'方法?或者'全局'方法?
  • 关键字从何而来?那个面额的来源是什么?
  • 和编译器有关吗?

共有1个答案

景星华
2023-03-14

为了回答第一个和第二个问题,静态方法属于类本身,所以静态方法也被称为类方法。例如,main()方法必须是静态的,这样Java虚拟机就可以在不创建类实例的情况下调用它来运行Java程序。
由于静态方法不依赖于类对象,即在Java中谈论继承的实例,因此方法总是由引用调用,而不管它指向的实例Object。

为了回答我们的第三个问题
当编译器编译该类时,它会在编译时决定为每个静态方法调用调用哪个确切方法(这与非静态方法调用有很大区别:在这些情况下,要调用的确切方法仅在运行时决定)。只需将编译版本中的静态最终值直接保存在类本身中(如果它们是编译时初始化的原语),添加到Java中的静态方法。

 类似资料:
  • 问题内容: 什么是静态工厂方法? 问题答案: 我们避免直接访问数据库连接,因为它们占用大量资源。因此,如果我们低于限制,我们将使用静态工厂方法来创建连接。否则,它将尝试提供“备用”连接,如果不存在则失败,并显示异常。

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

  • 根据我的理解,如果子例程不作用于类的实例(其作用仅限于显式输入/输出),则它是;如果子例程作用于类的实例,则它是(它可能会对实例产生副作用,使其不纯)。 关于这个话题,这里有一个很好的讨论。请注意,根据接受答案的定义,静态实际上应该是一个函数,因为实例从不隐式传递,而且它不能访问任何实例的成员。 不过,考虑到这一点,静态实际上不应该是函数吗? 我想确保我使用了正确的措辞。 有人能澄清一下吗?

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

  • 问题内容: 我开始用Java编程。 一本书说,在这种情况下,我应该使用static,但没有明确说明为什么应该使用静态方法或含义。 你能澄清一下吗? 问题答案: 的概念与某物是类的一部分还是对象(实例)有关。 对于声明为的方法,它表示该方法是一个类方法- 该方法是类的一部分,而不是对象的一部分。这意味着另一个类可以通过引用来调用另一个类的类方法。例如,调用的run方法可以通过以下方式完成: 另一方面

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