デフォルトパッケージから他のクラスにアクセスしようとすると?
結論、コンパイルエラーになります。
デフォルトパッケージ(無名パッケージ)に属するクラスは、同じ無名パッケージに属するクラスからしかアクセスできない。
以下の例ではデフォルトパッケージに属したSubClass.javaとex6というパッケージに属したMain.javaを例にします。
//パッケージ宣言されていない = デフォルトパッケージ(デフォルトパッケージ)
public class SubClass {
protected int num = 10;
}
//ex6パッケージに属している
package ex6;
public class Main extends SubClass {
public static void main(String[] args) {
System.out.println(num);
}
}
このまま実行するとコンパイルエラーとなります。
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
非 static フィールド num を static 参照できません
at Main.main(Main.java:5)
まとめ
無名パッケージどおしでしかアクセスできないのは、名前がついていないから指定のしようが無いから?かと解釈中です。
エラーや例外の種類についても、また復習しないといけないです。
参考記事・資料