免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3350 | 回复: 1
打印 上一主题 下一主题

public static void main() 在类中占据一个什么样的地位?一个比较少见的例子 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-24 21:52 |只看该作者 |倒序浏览
定义一个JAVA文件,文件名为Test
class person
{
  private int age;
  void shout()
  {
    System.out.println("my age is "+age);
  }
  public static void main(String []args)
  {
    person p1=new person();
    person p2=new person ();
    p1.age=-30;
    p1.shout();
    p2.shout();
  }
}
class a
{
int aa;
void show()
{
   System.out.println("show us!");
}
}
可以通过编译,解析
javac Test.java
java person
输出:my age is -30
      my age is 0
问题1:一般来说,我们通常都是定义一个启动类做为这个JAVA文件的入口,而这个类通常是权限定义为public,而里面的有一个函数作为整个程序的入口,这个函数被定义为public static void main(String []args),当类多于一个的时候,不是入口函数的类(person)的权限必须定义为public才可以运行的吗?
问题2:请问person类中的public static void main(String []args)算是person类中的成员函数吗?如果是的话p1.age=-30,p1直接在函数中被修改就解析的通,如果不是的话,那public static void main(String []args)和person类是怎样的关系呢?
问题3:本题JAVA源文件的文件名为Test,也就是和person类名不相同,一般我们定义的public类的类名和JAVA源文件的文件名是相同的,请问JAVA源文件是不是只是将那么多的类包含在其中而已?JAVA源文件的文件名和里面的类名并没有什么联系?就如上例,我们编译时,编译的是JAVA的源文件(javac Test.java),而解析时,则解析的是这个源文件里面的一个包含有public static void main(String []args)函数的类(java person)?

万分感谢你的执教!

[ 本帖最后由 shining3g 于 2006-4-24 22:02 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-04-24 22:05 |只看该作者
1)一般是定义为public,但不是public也可行,不过打包了之后同包权限的类是否可以直接用java来解释没有试,感觉上恐怕不行

2)main方法是静态方法,静态方法先于实例对象而存在,在类装载时及可用,这也是为什么main方法需要被表识为static的

3)基本上是这样,但不过java源文件主名一定要和文件中的public类同名,否则编译不过
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP