2016-05-02 21 views
-2

繰り返しの質問があります。 しかし、私はこの答えに明確な答えが必要です。 私はとても混乱しています。クラスと内部クラスのアクセス修飾子

EGの場合: 私は時間を表示するクラスを持っています。

import java.util.Date; 

**public** class DateDisplay { 

    public static void main(String[] args) { 
     Date today = new Date(); 
     System.out.println(today); 
    } 
} 

このパッケージを拡張するクラスはありません。 私はプライベートでクラスを宣言できないのはなぜですか?

なぜJAVAではクラスをプライベートとして宣言できないのですか?これの背後にある理由は何ですか?

私の2番目の質問は、どこで内部クラスを使うべきですか? 内部クラスの目的は何ですか?

+2

プライベート(トップレベル)クラスではどうしますか?どこからでもアクセスすることはできません。 – Danilo

+0

** 1つの**質問ごとに。 –

+0

https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html – d4rty

答えて

0

最初の質問に答えるには:これを行うには、プライベートクラスを持つpublic/protectedクラスを定義します。その結果、プライベートクラスはそのクラス内でのみアクセスできます。

ここ
Example: 
public class x 
{ 
    private class y 
    { 
    } 
} 

クラスyはクラスでのみアクセス可能であるX

私は、これがまた がクラスの
https://docs.oracle.com/javase/tutorial/java/javaOO/innerclasses.html

0

アクセス修飾子のみ場所を指定していない詳細情報を参照、2番目の質問に答えると思いますあなたはクラスを拡張することができます。クラスの使用場所も指定します。

privateは、クラス自体の内部でのみアクセス可能であることを意味します。トップクラスのクラスがprivateであることは意味がありません。これは、クラスをまったく使用できないことを意味するため、他のクラスでは使用できません。

あなたがパッケージ外のクラスにクラスにアクセスできないようにしたい場合は、(すべてでアクセス修飾子を指定しない)デフォルトのアクセスレベルを使用します、しかし

// Only accessible within the same package 
class DateDisplay { 
    // ... 
} 

注意をそのクラスでmainメソッドはpublicである必要があります。

関連する問題