ファイナル -
ファイナルは、クラスがサブクラスを導出できないことを示すために使用されます。
ファイナルは、メソッドをサブクラスで書き換えることができないことを示すために使用されます。
ファイナルは、C/C ++のconstキーワードと同様に、変数の場合の定数を表すために使用されます。
ファイナルは、メンバー変数が定数であり、変数が定義されているときに値を割り当てる必要があることを示すために、メンバー変数に使用されます。
ファイナルは、ローカル変数が定数であり、変数が定義されているときに値を割り当てることができないことを示すために使用されます。
静的 - -
静的は、変数のコピーが1つしかないことを示すために使用されます。つまり、staticメンバー変数はクラスに属しますが、すべてのクラスインスタンスオブジェクトがこの静的メンバー変数を共有し、静的にアクセスする場合です。メンバー変数、対応するクラス名が完了します。静的変数は、定義されているかどうかを初期化できます。
静的はメソッドに使用されるため、クラスをインスタンス化することなく静的メソッドをクラス名で呼び出すことができます。参照。
静的はクラスに使用されます。クラスはここでの内部クラスを指します。そのため、他の場所で外側のクラス名を介してこの静的なインナークラスを参照できます。
Staticは、Class Code Blockを使用して、クラスのメンバーに依存しますJVMはクラスをロードすると、これらの静的コードブロックが複数ある場合、JVMはクラスに表示される順序でそれらを実行し、各コードブロックは1回だけ実行されます。
クラスアクセス許可(y/n)
||キーワード||
|
|
|デフォルト|
|プライベート|
3つのキーワード、保護された、プライベートは、クラス(内部クラス)、メンバー変数、およびメンバーの機能に使用できます。関数、最低アクセス許可を選択します。
インターフェイス/実装/拡張/クラス -
インターフェイスは、インターフェイスのメソッドを宣言するために使用されます。
インターフェイスの実装には実装が使用され、インターフェイス内のすべてのメソッドが複数のインターフェイスを同時に実装するには必要です。
extendsは、親クラスを継承する場合、C ++の多産とは異なり、インターフェイスの継承をサポートするために使用されます。
クラスは、アクセス許可を公開またはデフォルトのアクセス許可にするために使用できます。また、抽象または最終的なアクセス許可を指定できます。
抽象的な-
要約は、このクラスが抽象クラスであり、インスタンス化できないことを表すために使用されます。
要約は、この方法を抽象化したものであることを表明します。
これとスーパーの使用に焦点を当てましょう:
これ
Javaキーワードこれはメソッド本体でのみ使用できます。オブジェクトが作成されると、Java仮想マシン(JVM)は、それ自体を参照するオブジェクトにポインターを割り当て、このポインターの名前はこれです。したがって、これはクラスの非静的な方法でのみ使用できます。そして、これはクラスではなく特定のオブジェクトにのみ関連付けられており、同じクラスの異なるオブジェクトにはこれが異なります。これを使用して、問題を説明する包括的な例です。
パッケージleizhimin; private int numberのユーザー名x = 100; = n;} public test6(int i、string username、string password){//メンバー変数は同じ名前で、メンバー変数はブロックされ、メンバー変数は「this。member変数の方法でアクセスされます。 "。this.username= username; this。password = password;} //パラメーターのないデフォルトのコンストラクターpublic test6(){this(0、" nown "、" empty "); (String name){this 1、 "empty"); guest "); t1.outinfo(t1); t2.outinfo(t2);} private void outinfo(test6 t){system.out.println(" ------------------------------------------------------------- - "); system.out.println(t.number); system.out.println(t.username); system.out.println(t.password); f(); //これは次のように書くことができます。 this.f(); private void f(){//メンバー変数はブロックされ、メンバー変数は「this x = this.X ++;
操作結果は次のとおりです。
-------------------------------------------------------------- -------------------------------------------------------------- -------------------------------------------------------------- -------------------------------------------------------------- -------------------------------------------------------------- ------
上記の例を見ると、これがどのような状況で必要かを説明します。
まず、これを通じて別のコンストラクターを呼び出します。これは、これがクラスコンストラクターでのみ使用され、他の場所では使用できません。
第二に、関数の関数パラメーターまたはローカル変数がメンバー変数と同じ名前を持つ場合、メンバー変数はメンバー変数にアクセスするために、「this。メンバー変数」を使用する必要があります。メンバー変数を参照してください。もちろん、同じ名前がなければ、これではなくメンバー変数の名前を直接使用できます。それを使用するのは間違っていません。
第三に、関数では、関数が属するクラスの現在のオブジェクトを参照する必要がある場合、これを直接使用します。
実際、これらの使用の要約は、「これはオブジェクト自体へのポインターです」という文章をより深く理解しています。
素晴らしい
Superの鍵はこれに似ています。これは、ブロックされたメンバー変数またはメンバーメソッドが表示されるか、ブロックされたメンバー変数とメンバーメンバーメソッドを参照するために使用されることです。
ただし、Superは、直接親クラス(つまり、クラスの上の最新のスーパークラス)であることに注意してください。以下は、2つのクラスを使用して、父親のクラスのサブクラスを包みます。
パッケージorg.leizhimin; public class father {public string x = "public member variable x !!!";呼び出されます! ");} public父親(string v){this.v =" father classのパラメーターコンストラクターメソッド! ); public static void main(// todoはメソッドスタブを自動的に生成します}} leizhimin; public class son {public string v = "son"; ; //スーパークラスコンストラクターメソッドは、最初の行に配置できますコンストラクターボディの前void outinfo(){system.out.println( "son's outinfo()メソッドは")} string v = "hahahaha!"; system.out.println( "---------"); (Subclass)変数v System.out.println(super.v); println(x); - "); outinfo(); // outinfo()subclass this.outinfo()の呼び出しoutinfo()メソッドを呼び出すsuper.outinfo(); //親クラス} public static void main(string [] args){new Son()。test()};
サブクラスの息子は結果を実行します:
父親のコンストラクターは呼ばれます! -------------------------------------------------------------- -------------------------------------------------------------- -------------------------------------------------------------- -------------------------------------------------------------- X !!! -------------------------------------------------------------- -------------------------------------------------------------- -------------------------------------------------------------- -------------------------------------------------------------- --------