Javaキーワード-this、super、static、final


1つ、このキーワード

1.この概要

  これはJava言語のキーワードです。次の図は、このメモリ図を示しています。

ここに画像の説明を挿入
  これは変数と見なすことができ、Java仮想マシンに格納されている参照です。ヒープメモリオブジェクト内で、この参照はそれ自体を指す現在のオブジェクトのメモリアドレスを保存します。ヒープメモリ内のJavaオブジェクトにはthisがあります。つまり、100個のJavaオブジェクトを作成するとそれぞれ100thisに対応します。

  これは現在のオブジェクトを参照し、インスタンスメソッドと構築メソッドで使用できます。構文形式はそれぞれthis。和this(…)

  静的なメソッドは、オブジェクトの作成前にクラスのロードとともにロードされるため、これは静的なメソッドには表示されません。インスタンスメソッドに表示され、現在のオブジェクトを表します。ほとんどの場合、これは省略できます。また、インスタンスメソッドのローカル変数とメンバー変数が同じ名前の場合にのみ省略できません。

2.これは工法で使用されます

 これには別の使用法があり、コンストラクターの最初の行で使用されます(ルールは最初の行にのみ表示されます)。現在のコンストラクターを介して、このクラスの他のコンストラクターを呼び出します、その目的はコードの再利用です。
通話形式:

これ(実際のパラメータリスト)

例えば:

//无参构造
 public Date(){
    
    
            this.year=1997;
            this.month=12;
            this.day=24;
        }
 //有参构造  
 public Date(int year,int month,int day){
    
    
            this.year=year;
            this.month=month;
            this.day=day;
            
        }

 パラメータなしの構築方法のコードは、パラメータ化された構築方法のコードと同じであることがわかります。コードは再利用されません。このとき、パラメータなしの構築でこれ(実際のパラメータリスト)を使用して、を呼び出すことができます。パラメータ化された構築方法、コードを再利用させます。

   public Date(){
    
    
   //注意this()语法只能出现在构造方法的第一行!!
            this(1997,12,24);
        }
        public Date(int year,int month,int day){
    
    
            this.year=year;
            this.month=month;
            this.day=day;

        }

2、スーパーキーワード

1.スーパー概要

実際、superは参照ではなく、キーワードです。Superは、親クラスから継承された現在のオブジェクトの一部を表します

  • superとthisの両方をインスタンスメソッドで使用できます
  • superは現在のオブジェクトのスーパータイプの特性を表すため、静的メソッドでは使用できません。これは静的メソッドには存在しないため、superは使用できません。
  • サブクラスは、親クラスと同じ名前のインスタンス変数またはインスタンスメソッドを再定義します。サブクラスの親クラスのインスタンス変数にアクセスする場合、superはそれを保存できません。

2.工法にはスーパーを使用

スーパー(実際のパラメータリスト)

サブクラス構築メソッドの実行中に親クラスの構築メソッドが呼び出されることを示します。
これとこれ(実際のパラメーターリスト)はコンストラクターの最初の行にのみ表示できるため、これらの2行のコードは共存できません。
super()またはsuper(引数リスト)がサブクラス構築メソッドに表示されない場合、super()がデフォルトになります。

3.これとスーパーの本質的な違い

これは現在のオブジェクトを指し、superは厳密な意味でのオブジェクトを指すのではなく、現在のオブジェクトの親クラスの特性を表すだけです。

3つの静的キーワード

1.静的な概要

 Staticは、Java言語のキーワードであり、変数、メソッド、およびコードブロックを変更できます変更された変数は静的変数と呼ばれ、変更されたメソッドは静的メソッドと呼ばれ、変更されたコードブロックは静的コードブロックと呼ばれます。

 Java言語でstaticによって変更されたものはすべて、クラスに関連しています。オブジェクトを作成する必要はありません。「クラス名」から直接アクセスできます。「参照」を使用してアクセスしても、オブジェクトとは関係ありません。実行時にヒープメモリ内。

2.静的変数

 Javaの変数は、ローカル変数とメンバー変数に分けられます。メンバー変数は、静的変数(静的によって変更される)とインスタンス変数(静的によって変更されない)に分けられます。3人の状況と連絡先については、他のブログで詳しい説明があります。ローカル変数、静的変数、インスタンス変数

3.静的コードブロック

  1. 構文形式:
{
    
    
		//静态代码块
		static{
    
    
				java语句;
		}
}
  1. 使用するシーン

静的コードブロックは、クラスがロードされたときに1回だけ実行されます静的コードブロックは、実際にはJava言語によってプログラマーのために準備された特別な瞬間です。この瞬間はクラスのロードの瞬間です。クラスのロード時にコードの一部を実行する場合は、静的コードブロックを使用できます。

4.静的メソッド

 まず、メソッドが実際には動作アクションであることを明確にします。アクションがトリガーされたときにオブジェクトの参加が必要であると考える場合、このメソッドはインスタンスメソッドとして定義する必要があります

 ときにアクションが対象の参加なしにトリガされ、我々はとしてそれを定義することができ、静的メソッド呼び出しに便利です。あなたがオブジェクトを作成する必要はありません、あなたはクラス名を使用して直接アクセスすることができます。実際の開発では、「ツールクラス」のメソッドは一般的に静的メソッドとして定義されています。

Four.finalキーワード

使用法:

(1)変更クラス(外部クラスと内部クラスを含む)

このクラスは継承できず、サブクラスがないことを示します

安全性を向上させ、プログラムの可読性を向上させます。

(2)修正方法

このメソッドをオーバーライドできないことを示します

(3)変更された変数(メンバー変数(クラス変数、インスタンス変数)、ローカル変数)

これは定数と呼ばれ、この変数の値は変更できないことを意味します

(4)参照データ型を変更して、アドレス値を変更できないことを示します。

注:メンバー変数をfinalで変更する場合は、手動で割り当てる必要があります。値を割り当てると、変更することはできません。つまり、setメソッドはありません。

おすすめ

転載: blog.csdn.net/m0_46988935/article/details/110223193