一個.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
}
*/