java中大部分的类都没有main函数,你看java说明文档中的类都没有定义main函数,大部分的有main函数的类只不过要执行一个application,而一个程序的执行只不过必须从main函数开始执行,static修饰的变量或方法在内存中是公开的,可以用类名直接调用。(我的一点点感悟,不一定说的对啊!)

解决方案 »

  1.   

    因为 Java 是纯面向对象的语言,所以作为程序入口的 main()方法也被封装再一个类里面。其实 static 本身是违反面向对象规则的,为了体现某些特殊方法和变量的公开性才有必要使用
      

  2.   

    在Java中,万物皆对象,所有的东西 都是封装在类里面的
    所以main方法也不例外
    main是一个入口方法,程序将从这里执行
      

  3.   

    在Java中,万物皆对象,所有的东西 都是封装在类里面的
    所以main方法也不例外
    main是一个入口方法,程序将从这里执行
      

  4.   

    献丑说两句:任何程序都需要入口点吧,要不然怎么执行?就像C/C++的main函数还有Windows下的WinMain,都是约定的程序入口,要编C/C++程序,需要提供main,要用C编Win32应用,需要写WinMain,同样,要编可执行的Java程序,就需要public static void main(String[] args),这些都是约定,我想没什么好多说的。Java相较C++而言是一种更"纯"的面向对象的设计语言,语法上更严格,所有东西都是对象,所以main这个入口方法也需要包含在类中。Java中不像C/C++有全局变量,也不像C++中先写类结构,再写实现,可以分开来,Java中类声明和实现是写在一起的,说起来这应该是语言差异。这个main对于"java"命令而言是必需的,执行"java"命令时,必须让它能够看到main,所以一定是public的;必须让它能够独立于对象实体存在,所以一定是static的。最后说说我的感觉:Java中main这个方法的执行是过程化的而非对象化的,模拟了程序主线程的运行流程,道理很简单,OOP虽好,但不能代替程序运行的全部,因为程序总需要由启动到终止的过程化流程,而流程开始前是没有对象存在的。
      

  5.   

    我觉得static有点类似于c++中的全局变量.
    你觉的呢,楼主.
      

  6.   

    i agree with sean_gao:-)
      

  7.   

    sean_gao(大胃) 说的不错,呵呵