5thisフィールドクラスには「thisフィールド」という、作らなくても最初から存在するフィールドがあります。このthisフィールドを使ってみましょう。メソッドとフィールドを持つクラス。点以外はHasMethodAndFieldRunnerクラスと同じです。int型変数のフィールドです。dataフィールドを出力するメソッドです。thisフィールド経由でdataフィールドを使用します。このクラスを実行してください。UseThisFieldクラスの参照型変数とインスタンスを作ります。dataフィールドに数値を入れます。printData()メソッドを呼び出します。メソッドとフィールドを持つクラス。点以外はHasMethodAndFieldRunnerクラスと同じです。int型変数のフィールドです。dataフィールドを出力するメソッドです。thisフィールド経由でdataフィールドを使用します。このクラスを実行してください。UseThisFieldクラスの参照型変数とインスタンスを作ります。dataフィールドに数値を入れます。printData()メソッドを呼び出します。100}}このプログラムのUseThisFieldクラスは、前ページのHasMethodAndFieldクラスとほとんど同じです。HasMethodAndFieldクラスとの違いは、dataフィールドを、thisフィールドを経由して使用しているという点です。thisフィールド経由でdataフィールドを使用します。thisフィールド経由でdataフィールドを使用します。);thisフィールドは何もしなくても自動的に作られるという特殊なフィールドです。data;」という形で作っていましたが、thisフィールドはそんなことしなくても使うことができます。thisフィールドはどんな型で何が入っているんでしょうか。型は自クラスの参照型です。この例では、UseThisFieldクラスの中で使っているのでthisフィールドの型はUseThisFieldクラスの参照型です。HasMethodクラス内ではHasMethodクラスの参照型ですし、HasMethodAndFieldクラス内ではHasMethodAndFieldクラスの参照型になります。値はというと、それは自インスタンスの参照です。次のプログラムのようにインスタンスを作成したときに得られる参照が、thisフィールドに入れられるのです。UseThisFieldクラスの参照型変数とインスタンスを作ります。UseThisFieldクラスの参照型変数とインスタンスを作ります。UseThisField();インスタンスを作るとその参照が返されますが、同時にインスタンス内にthisフィールドが作られ、その中にも参照がコピーされます。インスタンス内のthisフィールドthisフィールドには自インスタンスの参照が入るので、ref変数とthisフィールドの両方が1つのインスタンスの参照を持っていることになります(もっとも、クラスの外からthisフィールドを使うことはできないのであまり関係ありませんが)。自インスタンスの参照が入っているということは、当然thisフィールドの型は自クラスの参照型ということになるわけです。このthisフィールドは自インスタンスへの参照を持っていますから、この参照を通してフィールドを使うことができます。dataフィールドを出力するメソッドです。thisフィールド経由でdataフィールドを使用します。dataフィールドを出力するメソッドです。thisフィールド経由でdataフィールドを使用します。);}つまり、「this.data」は「ref.data」と同じということです。メソッドからthisフィールドを使うthisフィールドで自インスタンスを参照しなおして、改めてdataフィールドを使用しているわけです。言っても、メソッド内では何も付けなくても自インスタンスのフィールドを使うことができるので、別に「this.」を付けても付けなくても変わりません。);も同じということです。なると「なんでthisフィールドなんてあるの?」と思うかもしれません。this;」としたりといったことに使います。オブジェクト指向とJavaこのページは、Java言語を用いたオブジェクト指向プログラミングのチュートリアル解説を行う「Javaのオブジェクト指向入門」の一ページです。詳しい説明は「Javaのオブジェクト指向入門」目次をご覧ください。