回答
静态方法与类关联,而不与类的任何实例关联。
见http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
对象是成员变量和方法需要的,但静态是应用程序变量或函数这是静态不需要对象的原因之一。
因为JVM可以调用该方法适合你(但它认为合适)。否则,兔子洞在哪里结束?他们本可以通过创建一个已知的interface
完成你的建议,本身的方法是main
。例如:
interface ApplicationStarter
{
void start(String []args);
}
但是那里有关于构造函数。存在许多类似的问题的框架,比如SPI,出于类似的原因需要默认的(无参数)构造函数。当这些框架的预先要求(例如,没有参数的构造函数,或者对于其他一些框架可能不是)以及初学者觉得这很难时,这样的框架就会失败。将应用程序的最基本部分“复杂化”并不是实现采用的好方法。
对于应用程序的开始/入口点,依赖于类似于几乎所有其他语言的已知入口点(main
)要容易得多:不要担心对象不构造或覆盖。
main()
方法是静态的,因为它们可以被运行时引擎调用,而不必实例化父类的实例。
Static
方法,这在他们的声明中的static修饰符,应该用类名来调用,而无需创建类
的一个实例,考虑这个例子,有含有母亲的家庭和三个孩子。母亲为每个孩子带来三个冰淇淋球,但三个孩子只带一个PSP。所有的孩子都使用相同的PSP,但他们有自己的冰淇淋。
这里冰淇淋是一个非静态的东西(方法/变量),PSP是静态的东西,母亲是班级,孩子是物体。
这很简单。静态属于一个类,它对于一个类的所有对象都是常见的。非静态事物是特定于对象的。
是的,你是正确的,你不需要一个实例对象来调用一个类的静态方法,因为静态方法属于一个类,而不是该类的实例。此外,您不能在静态方法内使用实例变量,因为实例变量属于该实例。
当我们执行一个java文件时,一个java编译器会自动加载并执行静态成员。
我是新来的java所以请原谅我,如果我的回答是错误的。
- 1. 为什么CustomFieldSerializer需要静态方法?
- 2. 为什么我们需要创建模拟对象?
- 3. 为什么我们需要addRequestHeader方法?
- 4. 为什么我们需要ContinueWith方法?
- 5. 为什么我们需要Buffer.isBuffer方法?
- 6. 为什么我无法为静态类创建扩展方法?
- 7. 为什么我们要声明一个静态方法
- 8. 为什么我不需要创建一个对象?
- 9. 为什么我们需要接口Java 8中的静态方法?
- 10. 为什么我的对象不需要调用.toString方法?
- 11. 为什么由单体对象创建的scala程序不需要静态主方法?
- 12. 什么是伴侣对象,为什么我们需要它?
- 13. 为什么主要方法需要是静态的?
- 14. 为什么我们需要为openstack创建localrc文件
- 15. 为什么我们需要一个明确的转换,而不是扩展方法而不是静态方法?
- 16. 为什么我需要'新'来创建一个对象?
- 17. 使用类创建对象,为什么我需要__init __(self,args):?
- 18. 为什么只有我真的需要创建两个对象?
- 19. 为什么我们需要在创建对象时额外添加'get'和'set'?
- 20. 为什么我不能在任何方法外创建对象
- 21. Ruby:为什么我们不需要`attr_accessor`?
- 22. 为类创建对象为静态
- 23. 为什么“case class”不需要“new”来创建新对象
- 24. 为什么你不需要在Java中创建对象?
- 25. 为什么我的静态构建需要共享库?
- 26. 创建新Activity时,为什么我们需要将EditText对象转换为EditText对象?
- 27. 为什么ClassCleanup属性需要在静态方法上?
- 28. 为什么需要将静态方法封装到类中?
- 29. 为什么要创建模拟对象?
- 30. 为什么这里需要静态
因为......这就是关键字'静态'意味着什么?因为标记一个方法“静态”明确指出你不希望它附加到一个特定的对象? – 2013-04-26 05:15:36
因为我们有一个类对象。 – StarPinkER 2013-04-26 05:16:10