2017-10-06 8 views
0

私はJavaを学ぼうとしていますが、私は数日間理解しようとしているImしかし、私はちょうどそれを取得しませんここでチェックしたytのビデオを検索しましたが、私が理解できる正しい説明を見つけてください。Javaの使用法と内部クラスのポイント

私の質問は、私は何人かの人々はそれはそれはです意味し、それはカプセル化のために良いことだと言って聞いた

...内部クラスと分類内部の各タイプが使用され何の説明のポイントは内部ローカル匿名の、のような、あるものですクラスにアクセスするのは簡単ではありませんし、同じ名前の通常のクラスを作成したい場合は名前空間が残っていますか?私は他のクラスのクラスの単一使用を必要とする場合、私はちょうど内側を作成する?私はそれをもっと必要とするときに普通のクラスをやるべきですか?一般的に、私はそれをいつ使うべきか分かりません。構文や、それがポイントではないと思うすべてが得られます。

+0

[documentation](https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html)の対象としないものは何ですか?または、[内部クラスの目的は何ですか](https://stackoverflow.com/questions/11398122/what-are-the-purposes-of-inner-classes)のようなこのサイトのその他の質問ですか? – csmckelvey

答えて

0

この質問は、個人的な意見や好みに少し依存します。個人的には、ローカルの内部クラスはまったく使用しないでください。

あなたのプログラマー、はあなたのアーキテクチャをどのようにデザインしているのか、まったく同じです。アクセシビリティを除き、直接プロまたはコンシューマはありません。


は私が無名クラスのポイントはすぐには、あなたのコード内の単一の場所で単純な実装を提供にあると言うでしょう。あなたは再利用匿名クラスに必要か複雑な匿名クラスの作成を開始した場合、私が代わりに通常のクラスを作成することをお勧めします。

ローカル内部クラスと同様のことが言えます。たとえば、複数の投稿者など、大きなプロジェクトがある場合に便利です。現在のクラスを実装するには、補助クラスが必要です。 補助クラス他人か、後で再びそれを必要とする場合に有用であることができればしかし、あなたの代わりに通常のクラスを使用する必要があります。しかし、それが当てはまらない場合、そのクラスの純粋に補助クラスです。ローカル内部クラスとして実際に作成することができます。匿名クラスのための


一般的に使用される例 :

WindowAdapter adapter = new WindowAdapter() { 
    @Override 
    public void windowCloses(WindowEvent e) { 
     doSomething(); 
    } 
} 

あなただけのウィンドウのシャットダウン時にメソッドを呼び出したい場合は、新しい定期的なクラスを作成する必要はありません。

+0

おそらくあなたは内部クラスの使用のプログラム例を持っていますか? – renekton

+0

何も共通していません。通常私はいくつかの小さなコンテナ/ラッパークラスを参照してください。ちょうどいくつかの値を格納する目的のために。例えば、Java APIは 'Map'の内部に' Entry'クラスを持っています。また、 'LinkedList'には' Entry'クラスもあります。また、内部にはいくつかの特別な 'Iterator'クラスがあります。しかし、その場合は、 'LinkedList'のパッケージを作成してそこにあるすべてのクラスを正規のクラスとして保存したいと思います。しかし、私は彼らがすべてのコンパクトで明確なものを保つことを望んでいたと思うので、 'java.util'を実行してから、サブパッケージを持たないすべてのクラスを直接作成します。 – Zabuza

関連する問題