A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴华二 中级黑马   /  2012-3-22 15:02  /  1939 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        A:static public void main(String[] args){}
        B:public static final void main(String[] args){}
        C:static final public void main(String[] args){}
        D:static public abstract void main(String[] args){}
        E:public static void main(String[] args) {}
这几种描述main方法名正确的是哪些,有两个我觉得对,但是其他就不知道了。哪个知道原理的帮忙说下.

6 个回复

倒序浏览
本帖最后由 Destiny 于 2012-3-22 20:44 编辑

在java中,main()方法是java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是public static void类型的,方法必须是接受一个字符串数组的参数等。
  因为main()方法是由Java虚拟机调用的,所以必须是public,虚拟机调用的main()方法的时候,不需要产生任何对象,所以main()方法声明为static,且不需要返回值,所以必须声明为void,最终格式如下所示:    public  static void main(String[] args)
mian()函数必须是固定格式,不然不会被JVM识别。  不知道答案是什么
回复 使用道具 举报
除了D项外都是正确的。和修饰符的顺序没有关系。
D项不正确的原因是:abstract和static不能同时存在。
static是静态的,编译时已经确定的。abstract是没有实现的方法。它们是矛盾的,不能同时存在。
回复 使用道具 举报
main方法也是方法,先看看方法的各种修饰符及其作用:
public 可以从所有类访问   
protected 可以被同一包中的所有类访问可以被所有子类访问 子类没有在同一包中也可以访问
private 只能够被当前类的方法访问   
缺省无访问修饰符 可以被同一包中的所有类访问 如果子类没有在同一个包中,也不能访问
static 静态方法(又称为类方法,其它的称为实例方法)
final 防止任何子类重载该方法
abstract 抽象方法,类中已声明而没有实现的方法
synchronized 多线程的支持
且这些修饰符不分先后顺序
基于此可以判断D是错的,其他都对。
因为,abstract 的声明就只为了让子类继承重写这些方法,因此不能跟final和static在一起。
回复 使用道具 举报
本帖最后由 朱俊 于 2012-5-16 14:59 编辑
  1. ~~~~~~~~~~~
复制代码
回复 使用道具 举报
A:static public void main(String[] args){} 正确
B:public static final void main(String[] args){} 正确
C:static final public void main(String[] args){} 正确
D:static public abstract void main(String[] args){} 不正确  static和abstract不相容
E:public static void main(String[] args) {}正确
static、public、final都是修饰符三者位置可以相换,main也是一方法当然可以被它三者修饰。虚拟机只识别的带String[]参数的main方法,至于args也只是数组名称可以改为其它
这些都可以自己验证一下的
回复 使用道具 举报
D不正确,不能有abstract,编译不过,即使能调用也没有意义,
static, public, void,这三个必须有,final 可有可无,
顺序 :static  public final 这三个在前,顺序无要求,
       void在后,最后是main(String[] args)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马