一个.java源文件中可以有多个类吗?(内部类除外)有什么条件?带着这个疑惑,动手建几个测试类,
揭开心中的疑惑。以下是解开疑惑过程:
package test; /** * 一个.java源文件中可以有多个类吗?(内部类除外)有什么条件? * 可以的 *但是只能有一个public类, 而且如果有public类的话,这个文件的名字要和这个类的名字一样。 *如果都没有public类,名字可以不和这个类一样。 */ public class MultiClass { int i = 0; } class B { String str = "b"; } class C { String str = "c"; }
/*源文件javac出多个class文件出来!是怎么回事?
1. 你在一个文件里定义了几个类的时候,会出现这种情况,比如
public class A {}
class B {}
class C {}
这样每个 class 会是一个 .class 文件
2. 你定义了内部类的时候会出现这种情况,如
public class A {
class B {
}
}
这会产生两个 class 文件,一个 A.class,一个 A$B.class
3. 使用了匿名类的时候出出现这种情况,如
public class A {
void xxx() {
button.addActionLisener(new ActionListener() {...});
}
}
这也会产生多个 class,一个 A.class,一个 A$1.class
}
*/