Java 为什么我们不需要为静态方法创建对象?

Java 为什么我们不需要为静态方法创建对象?,java,Java,我知道为什么主要方法是静态的。如果它是静态的,则不需要通过JVM实例化该类。如果没有对象,我们可以称之为。但为什么不需要对象来调用静态方法呢 有人能解释一下吗?成员变量和方法需要对象,但静态是应用程序变量或函数,这就是静态不需要对象的原因之一。静态方法与类相关联,而不是与类的任何实例相关联 请参见,因为JVM可以为您调用该方法(不管它认为合适与否)。否则,兔子洞会在哪里结束?他们可以通过创建一个已知的接口,使用main方法,完全按照您的建议进行操作。例如: interface Applicati

我知道为什么主要方法是静态的。如果它是静态的,则不需要通过JVM实例化该类。如果没有对象,我们可以称之为。但为什么不需要对象来调用静态方法呢


有人能解释一下吗?

成员变量和方法需要对象,但静态是应用程序变量或函数,这就是静态不需要对象的原因之一。

静态方法与类相关联,而不是与类的任何实例相关联


请参见

,因为JVM可以为您调用该方法(不管它认为合适与否)。否则,兔子洞会在哪里结束?他们可以通过创建一个已知的
接口
,使用
main
方法,完全按照您的建议进行操作。例如:

interface ApplicationStarter
{
    void start(String []args);
}
但是还有一些与构造函数相关的问题。存在许多遇到类似问题的框架,例如SPI,出于类似的原因,它需要一个默认(无arg)构造函数。当这些框架的已知需求(例如,对于某些其他框架,没有arg构造函数或者可能不是可序列化的)时,它们就会失败,初学者会发现这很困难。使应用程序的最基本部分变得“复杂”并不是实现采用的好方法

对于应用程序的起始点/入口点,依赖一个与几乎所有其他语言类似的已知入口点(
main
)要容易得多:不必担心对象没有构造或重写。

the
main()
方法是静态的,因为运行时引擎可以调用它们,而不必实例化父类的实例


Static
方法在其声明中具有Static修饰符,应使用类名调用,而无需创建类的实例

考虑此示例,有一个族包含一个母亲和三个子女。妈妈给每个孩子带了三个冰激凌筒,但三个孩子只带了一台PSP。所有的孩子都使用相同的PSP,但他们有自己的冰淇淋

这里的冰淇淋不是静态的(方法/变量),PSP是静态的,母亲是类,孩子是对象


这很简单。静态属于一个类,它对于一个类的所有对象都是通用的。不是静态的东西是对象特定的。

是的,您不需要实例对象来调用类的静态方法,这是正确的,因为静态方法属于类,而不属于该类的实例。此外,不能在静态方法中使用实例变量,因为实例变量属于实例。

当我们执行java文件时,java编译器会自动加载并执行静态成员


我是java新手,所以如果我的答案是错误的,请原谅我。

因为……这就是关键字
static
的意思?因为标记一个方法
static
明确表示您不希望它附加到一个特定的对象?因为我们有一个类对象。