java为什么需要从其他静态空洞调用静态空洞?
我在高中有一门计算机编程-K课程,我们使用Java作为我们的语言。我注意到你似乎需要在每个脚本的开头加上public *static* void main(String[] args)
。我们的主要结构是:
public class
( void main()
void input()
void process()
void output() )
我们必须使所有void方法都是静态的,以便能够相互调用,因为我们不能使用非静态的main。为什么?静态在Java中意味着什么
# 1 楼答案
首先,被宣布为
public static void
的main
是由Java Language Specification规定的:事情就是这样;没有它,Java将无法执行您的脚本,因为缺少主方法
也不重要, >你放它——它可以在中间,在顶部,在底部,或者在完全不同的文件中——只要你的程序有一个^ {CD1>}它实际运行的方法。
至于
static
的含义,这取决于上下文如果对字段(即类中包含的变量)使用
static
,则会出现only ever be one instance of that field如果在方法(如
main
或其他方法)上使用static
,则这是一个class method,不需要对象的实例来调用和使用它。这些特定的方法不应该依赖于调用它们的类的内部状态例如,你将在稍后的某个时间讨论
Integer.parseInt
;这是一个静态方法,与Integer
绑定,不需要Integer
的实例来调用接下来,不要认为
static
方法的声明对于代码来说是司空见惯的。坦率地说,这代表了纯粹的过程编程(也就是说,定义方法来做这些特定的事情,而不考虑状态,而不是一个面向对象的设计,可能也可能不考虑状态)你唯一一次被迫声明某个东西是静态的,就是你自己在静态上下文中使用它。由于没有创建类的实例(通过
new
关键字),因此将无法使用在其中声明的任何方法这不会编译,因为
main
没有方法引用该方法下面的将编译,因为
main
确实有直接调用该方法的方法: