ホームページ  >  記事  >  Java  >  Javaでのこのキーワードの使用法は何ですか

Javaでのこのキーワードの使用法は何ですか

王林
王林オリジナル
2020-10-19 15:03:0933561ブラウズ

Java でのこのキーワードの使用法: 1. このクラスの属性、つまりクラスのメンバー変数を呼び出します; 2. このクラスの他のメソッドを呼び出します; 3. このクラスの他のコンストラクターを呼び出します。呼び出されたときにコンストラクターの最初の行に配置する必要があります。

Javaでのこのキーワードの使用法は何ですか

このキーワードには 3 つの主な用途があります。

これは、このクラスの属性 (クラスのメンバー変数) を呼び出します。

これはこのクラスの他のメソッドを呼び出します;

これはこのクラスの他のコンストラクターを呼び出します。呼び出しはコンストラクターの最初の行に置く必要があります。

メンバー変数の呼び出し

(推奨チュートリアル: java コース)

コードと組み合わせると、より具体的になります。次のコードを参照してください:

public class Student{
    String name;
    private void SetName(String name){
        this.name = name;
    }
}

このコードでは、メンバー変数名とメンバー メソッド SetName (文字列名) を使用して、クラス Student が作成されます。メソッドはメンバーと同じです 変数は同じで、両方とも名前なので、ここで this キーワードを使用して、このクラスのメンバー変数を呼び出すことができます。その機能は次のように簡単に理解できます。 this キーワードは、このクラスのメンバー変数を呼び出すことです。

しかし、そのような単純な理解は正確ではありません。これは実際には、現在のクラス オブジェクトへの参照です。オブジェクトのメンバー変数には、このクラスによってインスタンス化されたオブジェクトへの参照を通じてアクセスされます。

注:

このキーワードは、クラスのメンバ変数およびメンバ関数にアクセスする際のアクセス権限制御の対象ではありません。プライベート メンバ変数を含む、このクラス内のすべてのメンバ変数およびメソッドにアクセスできます。 . とメソッド。このクラスの静的メンバーにも this 経由でアクセスできますが、静的メンバーはクラス名で直接アクセスできるため、これ経由でアクセスすると「静的フィールド ××× は a でアクセスする必要があります」という警告メッセージが表示されます。静的な方法」。これは、クラスの静的メンバー内または静的ブロック内では使用できません。

メンバー メソッドの呼び出し

次のコードを参照できます:

package Test;

public class ThisTest {
    String name;

    private void setName(String name) {
        this.name = name;
        System.out.println("setName: " + this.name);
    }

    private void thisTest(String name) {
        this.setName(name);
        System.out.println("thisTest: " + this.name);
    }

    public static void main(String[] args) {
        ThisTest tt = new ThisTest();

        tt.setName("Yida");
        tt.thisTest("Jenny");

    }
}

このコードでは、最初に Test クラスが作成されます。このクラスは前のクラスと変わりません。メンバー メソッド thisTest() を除き、このメンバー メソッドでは、前のメンバー関数 setName() が this キーワードを通じて呼び出されます。プログラムの実行結果は次のとおりです:

setName: Yida
setName: Jenny
thisTest: Jenny

コンストラクターを呼び出す

Construction メソッドは、クラスのオブジェクトが new キーワードによって作成されるときに自動的に呼び出されます。プログラム内の他のメソッドのように、メソッド名 (つまりクラス名) によって呼び出すことはできません。ただし、クラスに複数のコンストラクターがある場合は、1 つのコンストラクターでこれ (paras...) を介して他のコンストラクターを呼び出すことができます。

this を使用して他のコンストラクターを呼び出すには、次の制約があります。

他のコンストラクターを呼び出すことができるのは、コンストラクター内で this を介してのみ可能であり、通常のメソッドで使用することはできません。

コンストラクターは this を通じて再帰的に呼び出すことはできません。つまり、コンストラクター内の this を通じてコン​​ストラクター自体を直接的または間接的に呼び出すことはできません。

これを通じて他のコンストラクターを呼び出す場合は、コンストラクターの最初の行で実行する必要があります。

super 呼び出しは親クラスのコンストラクターもコンストラクターの最初の行で実行する必要があるため、this と super を介してコンストラクターを呼び出すことは、同じコンストラクター内で同時に使用できません。 1 つのコンストラクターで異なるコンストラクターを複数回呼び出すことはできません。

次のコードは、this キーワードによって再帰呼び出しが形成されるため、間違っています:

//错误的示例!!!
class test {
    test() {
        this(1);
    }
    test(int a){
        this();
    }
    tes int b) {
        this(1, 2);
    }
}

正しい使用法は次のとおりです:

public class Student { //定义一个类,类的名字为student。 
    public Student() { //定义一个方法,名字与类相同故为构造方法
        this(“Hello!”);
    }
    public Student(String name) { //定义一个带形式参数的构造方法
    }
}

オブジェクトの値を返す

このキーワードは、変数またはメンバー メソッドの参照に加えて、クラスへの参照を返すという重要な役割もあります。たとえば、コード内で return this を使用して、特定のクラスへの参照を返すことができます。このとき、thisキーワードはクラス名を表します。コードが上記の学生クラスにある場合、コードは帰国生を表します。 this キーワードは、変数やメンバーメソッドの参照以外にも、クラスの戻り値としても使用できることがわかりますが、これが this キーワードの最も注目すべき部分です。

関連する推奨事項:Java の使用を開始する

以上がJavaでのこのキーワードの使用法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。