ホームページ  >  記事  >  Java  >  JavaでのThisの使い方を詳しく解説

JavaでのThisの使い方を詳しく解説

黄舟
黄舟オリジナル
2017-09-08 09:44:542760ブラウズ

この記事では、Java での This の詳細な使用例とともに関連情報を主に紹介します。この記事を通じて、このキーワードの使用法をすべての人が理解して習得できることを願っています。

の詳細な使用例。これはJavaでは

クラス名で変数を定義する場合、定義されたものは参照のみであり、外部の世界はこの参照を通じてこのクラスのプロパティとメソッドにアクセスできます。

クラス内に独自のプロパティやメソッドにアクセスするための参照が十分にありますか、または必要ですか?

笑、Java は非常に優れた機能を提供しています。それは、クラス内でこのクラスのプロパティとメソッドを参照できる this オブジェクトです。まずは簡単な例を見てみましょう:


public class ThisDemo { 
  String name="Mick";
  public void print(String name){
    System.out.println("类中的属性 name="+this.name);
    System.out.println("局部传参的属性="+name);
  }  
  public static void main(String[] args) {
    ThisDemo tt=new ThisDemo();
    tt.print("Orson");
  }
}

クラス自体への参照を返すことに関しては、「Java で考える」に古典的な例があります。

this キーワードを使用してオブジェクト自体を返し、1 つのステートメントで複数の操作を実装するか、それをポストします。


public class ThisDemo { 
  int number;
  ThisDemo increment(){
     number++;
     return this;
  } 
 private void print(){
     System.out.println("number="+number);
  }
  public static void main(String[] args) {
    ThisDemo tt=new ThisDemo();
     tt.increment().increment().increment().print();
  }
}

クラス内で 2 つのコンストラクターを定義し、この参照を通じて 1 つのコンストラクター内でもう一方のコンストラクターを呼び出すことは可能です。

このような実装メカニズムは、実際のアプリケーション開発においてどのような用途があるのでしょうか?以下に書かれたコードを投稿してください:


public class ThisDemo { 
  String name;
  int age;
  public ThisDemo (){ 
    this.age=21;
  }   
  public ThisDemo(String name,int age){
    this();
    this.name="Mick";
  }   
 private void print(){
     System.out.println("最终名字="+this.name);
     System.out.println("最终的年龄="+this.age);
  }
  public static void main(String[] args) {
    ThisDemo tt=new ThisDemo("",0); //随便传进去的参数
    tt.print();
  }
}

上記のコードは非常に短いですが、名前はパラメーター付きのコンストラクターで割り当てられ、age 属性はパラメーターなしで割り当てられていることが理解できるようです。コンストラクタ。

しかし、個人的には、クラスをインスタンス化するときに、オブジェクト ThisDemo にメモリを割り当て、最初にコンストラクター ThisDemo(String name, int age) を呼び出す必要があると思います。

最初の行を実行するとき、ThisDemo() コンストラクターを呼び出します。これは、2 つのメモリ スペースが必要であることを意味します。1 つは ThisDemo(String name, int age) に割り当てられたメモリ スペースで、もう 1 つは ThisDemo() 実行スペースです。

同じオブジェクト内の 2 つの属性 name と age が、最終的な印刷結果でインスタンス化されるのはなぜですか?教えてください!

要約すると:

1) this キーワードはクラス内のそれ自体への参照であり、これによりクラス内のメソッドが自身のプロパティにアクセスしやすくなります。

2) オブジェクト自体のクラスへの参照を返すことができます。 、同時にコンストラクター内から別のコンストラクターを呼び出すことができます。

以上がJavaでのThisの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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