2013-04-26 70 views
5

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

任何人都可以解释一下吗?

+1

因为......这就是关键字'静态'意味着什么?因为标记一个方法“静态”明确指出你不希望它附加到一个特定的对象? – 2013-04-26 05:15:36

+1

因为我们有一个类对象。 – StarPinkER 2013-04-26 05:16:10

回答

0

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

0

因为JVM可以调用该方法适合你(但它认为合适)。否则,兔子洞在哪里结束?他们本可以通过创建一个已知的interface完成你的建议,本身的方法是main。例如:

interface ApplicationStarter 
{ 
    void start(String []args); 
} 

但是那里有关于构造函数。存在许多类似的问题的框架,比如SPI,出于类似的原因需要默认的(无参数)构造函数。当这些框架的预先要求(例如,没有参数的构造函数,或者对于其他一些框架可能不是)以及初学者觉得这很难时,这样的框架就会失败。将应用程序的最基本部分“复杂化”并不是实现采用的好方法。

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

0

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

Static方法,这在他们的声明中的static修饰符,应该用类名来调用,而无需创建类

4

的一个实例,考虑这个例子,有含有母亲的家庭和三个孩子。母亲为每个孩子带来三个冰淇淋球,但三个孩子只带一个PSP。所有的孩子都使用相同的PSP,但他们有自己的冰淇淋。

这里冰淇淋是一个非静态的东西(方法/变量),PSP是静态的东西,母亲是班级,孩子是物体。

这很简单。静态属于一个类,它对于一个类的所有对象都是常见的。非静态事物是特定于对象的。

0

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

0

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

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

相关问题