class test1
{
public static void main(String[] args)
{
test t1 = new test(10);
System.out.println("create a class!");
}
}public class test
{
int a;
public test(int a)
{
this.a = a;
System.out.println(a*a);
}
}
class文件运行时不是把public类作为主类吗?为什么我没有把main方法写在主类里也能运行??
{
public static void main(String[] args)
{
test t1 = new test(10);
System.out.println("create a class!");
}
}public class test
{
int a;
public test(int a)
{
this.a = a;
System.out.println(a*a);
}
}
class文件运行时不是把public类作为主类吗?为什么我没有把main方法写在主类里也能运行??
解决方案 »
- 100分送!JButtont 图像可以居中吗?java JButtont 图像是怎样设置的 ?
- 求解多线程问题?数据库中有成千上万数据,每天都有20万以上标记为0的新纪录不断写入
- c语言的typedef unsigned short int16u; 这个咋在java表示?
- 在单击弹出的对话框前循环播放音乐
- 如何得到運行窗口的大小尺寸﹖
- 如何控制帮助文件只打开一次?
- 在文件中写入中文的问题,和怎么在文件中插入新内容
- 命令行
- 如何使一个frame始终显示在最前面?
- 请问谁知道Class.forMame() 中的class是什么类? 他的作用是什么?有哪些方法?
- list迭代相加的问题
- 关于System.out.println问题
文件,他们是分开的....也就是说编译好的.class文件都是一个类一个文件
至于main在哪,跟这个唯一的关系是,编译器不能自动找到程序入口(也就是main)在哪,所以你要具体告诉他在哪个类里面...
LZ你这程序肯定运行不了啊,编译都不能通过啊,调用默认的构造函数是不能传参的啊
首先lz你是怎么运行的,是通过 java test1 吧!你如果java test 那么就会发现出错吧,原味就是因为test中没有main,程序不知道从哪开始。
main就是一个入口方法,你在一个源程序中定义多个类,可以为每一个类都写main方法。经过编译成一个个独立的class文件之后,你就可以去运行每一个独立的class文件(有时就用这种方法来测试类的呀)。我改了下你的例子,你看看有帮助没。
class test1
{
public static void main(String[] args)
{
test t1 = new test(10);
System.out.println("create a class! in test1");
}}public class test
{
int a; public test(int a)
{
this.a = a;
System.out.println(a*a);
}
public static void main(String[] args)
{
test t1 = new test(100);
System.out.println("create a class! in test");
test1.main(null); //调用都可以,main也只是一个方法而已
}
}
这样编译成class文件之后,你用 java test 还有 java test1 ,都是没有结果的
运行成功的朋友,帮帮我吧
java 编译时首先查找要编译的类需要的类,并将需要的类编译成class文件。
main函数只是一个类的入口,任何类只要有main函数都可以运行,但类文件不一定要有main函数,一个类完全可以为其他类提供可供调用的方法,作为辅类。
楼主所说的Public类作为主类是不是指打包成jar包时的情况。这里是不是直接运行test1类了。
上面的代码虽然是写在一个文件里面,但是我们编译的时候了会把它编译成两个class文件,也就是说一个class里面就只有一个类,而且默认为public类型,所以说我们只要找到含main的那个类就是我们可以运行的啦!!