当前位置: 技术问答>java相关
main()函数前为何要加static?
来源: 互联网 发布时间:2017-04-06
本文导语: main()函数前为何要加static? static 函数只能调用static成员,而main()函数可以调用non-static成员。 这不是互相矛盾了吗? | 1.main函数前面可以没有static。不信你编译看看,但是运行不通过,因...
main()函数前为何要加static?
static 函数只能调用static成员,而main()函数可以调用non-static成员。
这不是互相矛盾了吗?
static 函数只能调用static成员,而main()函数可以调用non-static成员。
这不是互相矛盾了吗?
|
1.main函数前面可以没有static。不信你编译看看,但是运行不通过,因为对于一个java的application而言,static void main(String args[])这样的写法是必须的,以保证main函数合法且先执行。事实上该函数可以超载。
2.调用非staic函数的前提是必须对包含该函数的类进行实例化,如果不实例化,当然不行。因为main函数的运行在类实例化之前。(就是说可以认为staic main函数独立于类之外)
3.这是java中最基本也是最迷惑人的地方-----一切staic的函数和变量,都先于类之前初始化或执行。
以上共同借鉴。
2.调用非staic函数的前提是必须对包含该函数的类进行实例化,如果不实例化,当然不行。因为main函数的运行在类实例化之前。(就是说可以认为staic main函数独立于类之外)
3.这是java中最基本也是最迷惑人的地方-----一切staic的函数和变量,都先于类之前初始化或执行。
以上共同借鉴。
|
当我们用java xxx来调用java程序的时候,编译器自动寻找main成员,当然编译器不会自己生成非静态成员的实例,所以必须定义为static
|
不是吧
main 里面一般也就是 new 一个(当前)类
static 函数不用实例化就可以直接调用
main 里面一般也就是 new 一个(当前)类
static 函数不用实例化就可以直接调用
|
不可以的,不信你在main函数中设置该类的成员变量试试,会报错的!