1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Java】デフォルトパッケージからのアクセス

Posted at

デフォルトパッケージから他のクラスにアクセスしようとすると?

結論、コンパイルエラーになります。

デフォルトパッケージ(無名パッケージ)に属するクラスは、同じ無名パッケージに属するクラスからしかアクセスできない。

以下の例ではデフォルトパッケージに属した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)

まとめ

無名パッケージどおしでしかアクセスできないのは、名前がついていないから指定のしようが無いから?かと解釈中です。

エラーや例外の種類についても、また復習しないといけないです。

参考記事・資料

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?