(1)クラス
(2)パケット
(3)モジュール:Java9を導入した後
外部クラスの場合:公共のみデフォルトで使用することができ、両方の
-
-
その結果、ユーザできるメソッド内の制御ロジックに追加することができる所定の方法により予めのみアクセスデータ、メンバー変数へのアクセスに不合理な制限。
-
データは、オブジェクト情報の整合性を確保するためであろう、確認することができます。
-
簡単に変更し、コードの保守性を向上させます。
インスタンス変数の前にローカル変数と同じ名前のインスタンス変数(非静的メンバ変数)は、インクリメントされたときに「この」。
多くの(2)の分類と組織の管理
(3)は、メンバーまたは可視範囲のいくつかのタイプを制御することができます。
(2)ソースファイルは、パッケージの宣言文を持つことができます
仕様:すべての単語は、各単語の間の分割を使用して、小文字です。
java.util.Dateとjava.sql.Date:2つの異なるクラスには、例えば、同じ名前でパッケージ化すると。完全な名前を使用し、単純な名前を使用します
パブリッククラス学生{
プライベート文字列名=「小明」。
}
//初期化するために使用される変数は、より複雑です
[修飾]クラスのクラス名{
静的{
静的初期化
}
}
[修飾] {クラスのクラス名
{
インスタンス初期化ブロック
}
}
初期化ブロックの例としては:自動的に一度実行されるオブジェクトの毎回新しいインスタンス、各新規のオブジェクトを、実行します。
[修飾]コンストラクタ名(){
//初期化コードのインスタンス
}
[]コンストラクタ修飾子名(パラメータリスト){
//インスタンス初期化子
}
-
-
それはノーリターンタイプので、でも無効にする必要がない、値を返しません。
-
あなたはコンストラクタを提供しない場合、システムはデフォルトコンストラクタのパラメータ、およびクラス修飾子の同じ修飾子のデフォルトコンストラクタを与えないだろう
-
あなたはコンストラクタを提供する場合は、ユーザーが定義しない限り、システムはもはや、引数なしのコンストラクタを提供しないでしょう。
-
コンストラクタはオーバーロードされたパラメータが定義されない場合があり、いずれかの定義されたパラメータを。
-
コンストラクタ修飾子は、特権修飾子は他のどの変更することはできませんすることができ
分析:
実際には、Javaクラス、処理を行うためのクラス・コードをコンパイルするJavaコンパイラは、静的変数コンパイラの明示的な割り当ては、Javaクラスの静的初期設定ステートメントは、に組み込まれます。<clinit>
結論:
(1)は、明示的に例の初期化ブロックを初期化しますが、彼らはそれによって、インスタンスコンストラクタ作成するかどうか、実行されますが
(2)実施例明示的な割り当て、初期化ブロックの実行順序
(3)最後のコードが実行されるコンストラクタに対応
分析:
実際には、JavaクラスをコンパイルするJavaコンパイラ、インスタンス変数とインスタンスコンパイラの明示的な割り当てを処理して行われるクラスコードが一つに組み立てられたJavaクラスのコンストラクタ文の初期化されますの<init>をクラスは、任意のコンストラクタを宣言していない場合は(...)インスタンスの初期化方法は、あなたがいくつかのコンストラクタを宣言し、最終的に初期化メソッドを対応するいくつかの例がある、そのまた、対応引数なしのデフォルトコンストラクタがあります一例として、初期化メソッドは、パラメータを持っていません。
同じ初期化コード、およびこれらの必要性がないパラメータの初期化コードを受信した場合である各コンストラクタは、ブロック内で定義された非静的コードでそれらを置くことができます。非静的ブロックを定義するように構成されたコード抽出部の同じ複数の、より良好なアプリケーション全体の保守性を改善するために、最初のコードの再利用性を向上させることができます。
(1)と、特定のクラスは、パブリックでなければなりません、
(3)メンバ変数の民営化、およびメンバー変数動作を提供set
し、get
方法を。