質問: Java初学者です。 thisの使い方で質問です。 下記だとthisでエラーが出ます。thisを使用できない理由は何でしょうか? obj.nameだとうまくいくのは理解できていました。 ``` public class Test2{ String name="haha"; public static void main(String[] args){ String name="titi"; Test2 obj=new Test2(); System.out.println(this.name); //←このようにthisを付けられない理由? } } ```
回答: > > thisを使用できない理由は何でしょうか? > > > staticメソッドの中で使用しようとしているからです。 staticメソッドはクラス固有の(各インスタンスに共有される)ものであり、特定のインスタンスのものではありません。 その中で使おうとしている**thisは自分自身のインスタンスを指し示す**ものなので、特定のインスタンスにひも紐づかないstaticメソッドからすると「どのインスタンス?」ってなるので、staticメソッド内では利用できないのです。