アプリ版:「スタンプのみでお礼する」機能のリリースについて

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の引数で見てきたのが実数や文字だったので、引数がオブジェクト(?)なのにちょっと違和感がありまして・・・
回答していただけたらうれしいですよろしくお願いいたします!!!

A 回答 (4件)

>「thisはSample2のインスタンスである」


>で正しいのでしょうか?

質問に書いてある

>LinearLayout ll = new LinearLayout(this);



>TextView tv = new TextView(this);

においては正しいです。

私としては、クラスやインスタンス、オブジェクトが、それぞれが何の事で、どう異なるかは、安易に理解した気にならずに悩むだけ悩んで理解した方がよいかと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございました!!
ときどき理解したと思っても忘れることがあるので定着できるようがんばります!

お礼日時:2014/03/22 23:21

>そして継承関係よりこのオブジェクトはContextクラス(?)も含んでいるため、



「このインスタンスは、Contextクラスのインスタンスでもあるため、」ではないかなぁ。

>LinearLayout ll = new LinearLayout(this);

上記のthisがSample2だということになると

LinearLayout ll = new LinearLayout(ya.Sample.Sample2.class);

と書くこともできることになっちゃいますけど。

この回答への補足

ご指摘ありがとうございます!!
結局Thisが指しているのは何なんでしょうか?
「thisはSample2のインスタンスである」
で正しいのでしょうか?

補足日時:2014/03/22 20:05
    • good
    • 0

Jave では、引数として合法なのは Object のサブクラスのインスタンスか、


Object のサブクラスのインスタンスの配列です。
String は当然、Object のサブクラスですし、
数も自動的に、Box 化された、Integer などの、Object です。
最初の認識が間違っているので、違和感を感じるのでは、と思います。
    • good
    • 0
この回答へのお礼

なるほど!!最初の認識から違っていましたありがとうございます!!

お礼日時:2014/03/22 20:28

> 今までJavaの引数で見てきたのが実数や文字だったので、引数がオブジェクト(?)なのにちょっと違和感がありまして・・・




その文字列(String)ですが
Stringクラスのインスタンスであり、Stringクラスを雛形として作られたObjectを引数に渡しています。


あと、もしかしたらオブジェクトという概念と、 Objectクラスとを混同していませんか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます!!参考になりました!!

お礼日時:2014/03/22 20:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!