静的:(静的修飾子)オブジェクト指向オブジェクトの静的修飾のコンテンツはクラスに属し、オブジェクトに直接関係するものではないため、静的によって変更されるメンバー変数はクラスメンバー変数と呼ばれ、静的修正の方法は一般にクラスメソッドと呼ばれます。
分類:
1。静的変数またはクラス変数とも呼ばれます。別のタイプは、インスタンス変数と呼ばれる静的で変更されていない変数です。
2。静的メソッドまたはクラスメソッドとも呼ばれる静的メソッドは、静的メソッドの静的変数を定義できず、インスタンスメソッドはできません。
3.静的コードブロック、静的ブロックでは、静的変数にアクセスして静的メソッドを呼び出すことができます。
注:
1.静的がオブジェクトに依存しない場合、この方法はありません。
2.静的方法は非静的な方法を呼び出すことはできませんが、非静的な方法は静的方法を呼び出すことができます。
3。静的によって変更された方法または変数は、アクセスのためにオブジェクトに依存する必要はありません。クラスがロードされている限り、クラス名からアクセスできます。
4.静的メソッドは書き換えられません。サブクラスと親クラスに同じ静的メソッドがある場合、デフォルトの呼び出しは親クラスの静的方法であり、サブクラスの静的メソッドが非表示になります。
5.静的ブロックは、通常、クラスの静的変数を初期化するために使用されます。静的修正の内容に基づいて、最初の定義と最初の実行の原則に従います。
6.変数またはメソッドがよく呼ばれる場合は、静的修正を使用します。それ以外の場合は、メモリの漏れを避けるために使用しません。
静的変数のコードの例:
パブリッククラステスト{static int a = 1; //静的変数int b = 2; //インスタンス変数public static void main(string [] args){system.out.println(test.a); //system.out.print(a);system.out.println(b); //直接出力変数bはエラーテストt = new test()を報告します。 //インスタンスオブジェクトSystem.out.Println(TB)を作成します。 //オブジェクトコール変数}}静的メソッドのコードの例:
パブリッククラステスト{static int a = 1; //静的変数int b = 2; // instance variable static void a(){// static method b(); //エラーが報告されていますが、静的メソッドは非静的メソッドsystem.out.println(test.a)を呼び出すことはできません。 //system.out.print(a);} void b(){// non-static method test.a(); // a();非静的な方法は、静的メソッドsystem.out.println(b)を呼び出すことができます。 System.out.println(test.a); //system.out.print(a);} public static void main(string [] args){test.a(); // a(); b(); //エラーが報告されます。非静的な方法は、インスタンスオブジェクトテストt = new test(); tb();}}/**class staticsonを拡張することができます。厳密に言えば、サブクラスの方法は、親クラスの静的な方法ではありません}}静的ブロックコードの例:
パブリッククラステスト{int c = 3; static int a = 1; static int b = 2; static {a = 10; b = 20; c = 30; //エラーを報告する、静的ブロックの変数は静的変数system.out.println(a+b);} public static void main(string [] args){test t = new test(); system.out.println(tc); //最初に静的変数を実行してから、インスタンス変数を実行}}最終:不変だと理解してください。
注:
1.最終と静的はよく一緒に使用されます。
2。最終的に変更された変数は、1回しか割り当てられません。
3.最終的な方法は書き直すことはできませんが、過負荷になります。
4.最終クラスを継承することはできません。
5. 2つのキーワードの最終と要約は反対であり、同時にクラスを変更することは不可能です。ファイナルを書き直すことはできず、抽象を書き直す必要があるためです。
6.最終的なキーワードは、例外処理に使用される最終キーワードとは異なります。
7。ほとんどの場合、最終的な方法は、スケーラブルではないため、メソッドとクラスを変更するために使用されません。
8。最終的な環境で最終を使用して、プログラムの実行パフォーマンスを改善し、プログラムの構造を最適化できます。
最終変数と最終クラスのコードの例:
パブリックファイナルクラステスト{final static int a = 1; static {a = 10; //エラーを報告すると、1つの割り当て操作のみを実行できます}}クラスファイナルソン拡張テスト{//エラーを報告します、最終クラスは継承できません}最終方法の例の例:
public class test {final static int a = 1; final void a(){// final method system.out.println(a);}} class finaltestはextends test {//エラーが報告されます。最終的な方法は報告できません。