黑马程序员技术交流社区

标题: main方法为什么必须被声明为public static [打印本页]

作者: 心ヤ0°一下    时间: 2014-7-13 17:07
标题: main方法为什么必须被声明为public static
写程序一直用 public static void main(String[] args){
                 }
但是一直没有深究这个main方法为什么必须被声明为pubic static
声明为public是为了这个方法可以被外部调用
static是为了将某个成员变量/方法关联到类(class)而非实例(instance)
这样解释可对?

作者: 韩天雷    时间: 2014-7-13 17:13
主函数

        public static void main(String[] args)
                主函数是一个特殊的函数,作为程序的入口,可以被jvm调用.

        public:代表着该函数访问权限是最大的.
        static:代表主函数随着类的加载就已经存在了.
        void:主函数没有具体的返回值
        main:不是关键字,但是是一个特殊的单词,可以被jvm识别
        (String[] args):函数的参数,参数类型是一个数组,该数组中的元素是字符串.字符串类型的数组.

        主函数可以重载 但重载的函数不会被jvm调用

        唯一可变的地方
                public static void main(String[] x)
                args        是由arguments简化 可以改为变量名.
       
        经验证:
        jvm在调用主函数时,传入的是new String[0];
       
        向程序中传人值:
        java MainDemo myargs
        System.out.println(args[0]);

作者: 郑飞    时间: 2014-7-13 21:00
没研究过的我 理解和你差不多 坐等高人 深入浅出的讲解
作者: 心ヤ0°一下    时间: 2014-7-13 22:27
韩天雷 发表于 2014-7-13 17:13
主函数

        public static void main(String[] args)

给赞~~:)
作者: 咖啡苏克    时间: 2014-7-13 22:56
记住就行,何必刨根问底...最重要的就是开心嘛!
作者: doubandddk    时间: 2014-7-13 23:38
这个就是为了JVM掉用main方法时不用通过该类的对象调用,而直接调用 类名.main 就可以了;
声明为static后,可以通过类名直接访问了就是
作者: 心ヤ0°一下    时间: 2014-7-14 10:34
咖啡苏克 发表于 2014-7-13 22:56
记住就行,何必刨根问底...最重要的就是开心嘛!

哈哈~你倒是想的开:lol
作者: 为爱编程    时间: 2014-7-14 11:04
2楼解释的很好嘛
作者: IT初学者    时间: 2014-7-14 11:57
2楼正解。。。。
作者: 南柯一梦    时间: 2014-7-14 12:36
main函数是程序的主函数,作为程序的入口,当类被加载时,会寻找类中是否有main函数,如果有则调用main函数,然后一步步执行main函数语句,如果没有,这个类就不可以独立运行,只能通过创建类对象方式调用,即main函数不是随着对象而存在的,而是随着类加载而存在的,所以main必须是静态的与public修饰
作者: 崔MQ    时间: 2014-7-14 12:45
static是属于类的,不属于某个实例的,
作者: 李亚西    时间: 2014-7-14 12:49
二楼说的不错,看下毕老师的课程也就理解了
作者: nsunshine    时间: 2014-7-14 13:27
是吗?有区别?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2