当前位置: 代码迷 >> Java相关 >> 请教关于类与main()方法问题
  详细解决方案

请教关于类与main()方法问题

热度:183   发布时间:2010-12-16 16:11:58.0
请教关于类与main()方法问题
在看《21天学通JAVA》第三版,其中第五天课程的5.4里提到JAVA应用程序由一个或多个类构成。要让JAVA应用程序能够运行,只需一个用作程序入口的类即可。要成为应用程序的入口类,只需包含main()方法即可。应用程序运行时,首先执行方法main()中的代码。
然后在下面又提到了助手类。但是对助手类这一概念似乎并没有如何诠释。只提到虽然助手类可以包含main()方法,但程序运行时,它们将被忽略。

在这里我有一些疑问,就是如果一个程序里有多个类,并且其中有不止一个类包含main()方法,那么计算机它是如何辨别哪个是程序入口,而哪个类是助手类的?是从上往下以找到的第一个main()方法为入口?还是如何?
搜索更多相关的解决方案: main  

----------------解决方案--------------------------------------------------------
多个类中必须有一个public class, 这个公共类的main()方法就是程序入口
----------------解决方案--------------------------------------------------------
回复 2楼 lampeter123
那么可以用到其他的public类吗?如果其他的public类含有main()方法呢?
----------------解决方案--------------------------------------------------------
以下是引用洛云在2010-12-16 16:41:09的发言:

那么可以用到其他的public类吗?如果其他的public类含有main()方法呢?
public 类只能有一个, 通常这个公共类的作用是包含main()方法
public class 的名称必须与源文件名相同
----------------解决方案--------------------------------------------------------
回复 4楼 lampeter123
public类只有一个应该是在一个文件里。如果用到了其他文件的类呢?
----------------解决方案--------------------------------------------------------
回复 4楼 lampeter123
貌似对答案有些浅浅的思路了.还望继续点拨.
----------------解决方案--------------------------------------------------------
回复 4楼 lampeter123
是不是可以这样认为?
在运行程序时,是先运行某个类文件的,这个类文件有一个公共类,里面有main方法.而在这个类里可能还用到了其他类或其他文件的类,被用到了这些都是作者所说的助手类,而这些类的main方法也都会被忽略.
不知这样说通不通?
----------------解决方案--------------------------------------------------------
程序代码:
public class A
{
    public static void main(String[] args)
    {
        System.out.println("A.main()");
    }
}

class B
{
    public static void main(String[] args)
    {
        System.out.println("B.main()");
    }
}

你可以自己编写一个A.java文件,然后编译:javac A.java
系统会生成A.class 和B.class
java A 运行A的main()方法
java B 运行B的main()方法

----------------解决方案--------------------------------------------------------
回复 8楼 lampeter123
原来是这样子啊.明白了.谢谢版主.
就是说在一个java源文件里含有的类,在编译时会生成各自的类文件.

[ 本帖最后由 洛云 于 2010-12-16 17:07 编辑 ]
----------------解决方案--------------------------------------------------------
回复 8楼 lampeter123
那可否在里面运行B的内容?
----------------解决方案--------------------------------------------------------
  相关解决方案