※ ChatGPTを利用し、要約された質問です(原文:以下のサンプルでのthisが指すものについて・・・)
thisとはSample2のインスタンスである
このQ&Aのポイント
thisはSample2クラスから生成されたオブジェクトを指すものです。
引数thisはSample2を指すもので、この場合はSample2クラスのインスタンスを指します。
thisは特定のインスタンスを指すもので、この場合はSample2のオブジェクトを指します。
以下のサンプルでのthisが指すものについて・・・
package ya.Sample;
import android.app.*;
import android.os.*;
import android.widget.*;
public class Sample2 extends Activity
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
LinearLayout ll = new LinearLayout(this);
setContentView(ll);
TextView tv = new TextView(this);
tv.setText("ようこそアンドロイドへ!");
ll.addView(tv);
}
}
このサンプルにおいてLinearLayout ll = new LinearLayout(this)のthisの指すものについて質問があります。私がこのthisはSample2を指すんですよねと質問したところ
引数thisは Sample2 を指しますよね
大雑把な理解だなぁ。
Sample2は「型」なのだから、例えば「整数」や「文字列」のような概念だ。
thisは特定のインスタンスを指すのだから、1024とか"abc"とか、そのクラスに属するもののうち、特定の具象を指すものだ。
27や47が整数である、というのと同じ意味で、thisはSample2ではあるのだが、こういう場合は普通「thisはSample2のインスタンスである」と表現する
とある方に回答をいただいたのですが
「thisはSample2のインスタンスである」と表現する
の部分のインスタンスが理解できません・・・
インスタンスとはClassから製造されたObjectであるはずですからこの場合
Sample2クラスを雛型として作られたObjectをThisは指すとかってに再解釈してしまい、
この引数Thisはオブジェクトのことでありnew LinearLayout(this)において、LinearLayoutは引数にオブジェクトを持っているということでしょうか?そして継承関係よりこのオブジェクトはContextクラス(?)も含んでいるため、LinearLayoutクラスのLinearLayout(Context context)は呼び出しに成功するということなのでしょうか?
今までJavaの引数で見てきたのが実数や文字だったので、引数がオブジェクト(?)なのにちょっと違和感がありまして・・・
回答していただけたらうれしいですよろしくお願いいたします!!!
お礼
回答ありがとうございました!! ときどき理解したと思っても忘れることがあるので定着できるようがんばります!