回答編集履歴

5 追記

LouiS0616

LouiS0616 score 29740

2017/09/09 14:56  投稿

JFrameクラスを指しているのではなく、JFrameのインスタンスを指しています。
```Java
public class MyClass {
   private int value_;
   public MyClass(int value) {
       this.value_ = value;
   }
   public void print() {
       System.out.println(this.value_);
   }
   static public void sayHello() {
       // エラー!静的でないフィールドを参照することは出来ない。
       // System.out.println(this.value_);
       System.out.println("hello");
   }
}
```
```Java
public class Main{
   public static void main(String[] args){
       MyClass instance1 = new MyClass(5);
       MyClass instance2 = new MyClass(3);
       instance1.print();
       instance2.print();
       MyClass.sayHello();
   }
}
```
```
// 実行結果
5
3
hello
```
上記の例では`MyClass`をひな型に、インスタンス`instance1` `instance2`を生成しています。
mainメソッドからは呼び分けられるのですが、『一人称』も欲しいところです。それがthisです。
`this.value_`は、『オイラのvalue_だよ』と言っているのです。
---
superとthisの挙動が同じように見えるのは、  
サブクラスで、ここではcalculatorでメソッドをオーバーライドしていないからです。  
```Java  
public class MyBase {  
   public MyBase() {  
   }  
   public void greet() {  
       System.out.println("Hello!");  
   }  
}  
```  
 
```Java  
public class MyChild extends MyBase {  
   public MyChild() {  
   }  
   @Override  
   public void greet() {  
       System.out.println("Hi!");  
   }  
 
   public void saySomething() {  
       this.greet();  // 出力されるのは: Hi!  
       super.greet(); // 出力されるのは: Hello!  
   }  
}  
```  
 
---  
thisは省略可能である場合も多いです。
質問者様のコードもその一つですが、可読性を高めるために明記しているのかと。
以下の質問が参考になるかもしれません。
[https://teratail.com/questions/86708](https://teratail.com/questions/86708)
4 成形

LouiS0616

LouiS0616 score 29740

2017/09/09 14:44  投稿

JFrameクラスを指しているのではなく、JFrameのインスタンスを指しています。
```Java
public class MyClass {
   private int value_;
   public MyClass(int value) {
       this.value_ = value;
   }
   public void print() {
       System.out.println(this.value_);
   }
   static public void sayHello() {
       // エラー!静的でないフィールドを参照することは出来ない。
       // System.out.println(this.value_);
       System.out.println("hello");
   }
}
```
```Java
public class Main{
   public static void main(String[] args){
       MyClass instance1 = new MyClass(5);
       MyClass instance2 = new MyClass(3);
       instance1.print();
       instance2.print();
       MyClass.sayHello();
   }
}
```
```
// 実行結果
5
3
hello
```
上記の例では`MyClass`をひな型に、インスタンス`instance1` `instance2`を生成しています。
mainメソッドからはそれぞれをその名前で呼び分ければいいのですが、
インスタンスの『一人称』も欲しいところです。それがthisです。
mainメソッドからは呼び分けられるのですが、『一人称』も欲しいところです。それがthisです。
`this.value_`は、『オイラのvalue_だよ』と言っているのです。
---
thisは省略可能である場合も多いです。
質問者様のコードもその一つですが、可読性を高めるために明記しているのかと。
以下の質問が参考になるかもしれません。
[https://teratail.com/questions/86708](https://teratail.com/questions/86708)
3 追記

LouiS0616

LouiS0616 score 29740

2017/09/09 14:40  投稿

JFrameクラスを指しているのではなく、JFrameのインスタンスを指しています。
```Java
public class MyClass {
   private int value_;
   public MyClass(int value) {
       this.value_ = value;
   }
   public void print() {
       System.out.println(this.value_);
   }
   static public void sayHello() {
       // エラー!静的でないフィールドを参照することは出来ない。
       // System.out.println(this.value_);
       System.out.println("hello");
   }
}
```
```Java
public class Main{
   public static void main(String[] args){
       MyClass class1 = new MyClass(5);
       MyClass class2 = new MyClass(3);
       MyClass instance1 = new MyClass(5);
       MyClass instance2 = new MyClass(3);
       class1.print();
       class2.print();
       instance1.print();
       instance2.print();
       MyClass.sayHello();
   }
}
```
```
// 実行結果
5
3
hello
```
上記の例では`MyClass`をひな型に、インスタンス`instance1` `instance2`を生成しています。  
mainメソッドからはそれぞれをその名前で呼び分ければいいのですが、  
インスタンスの『一人称』も欲しいところです。それがthisです。  
`this.value_`は、『オイラのvalue_だよ』と言っているのです。  
 
---
thisは省略可能である場合も多いです。
質問者様のコードもその一つですが、可読性を高めるために明記しているのかと。
以下の質問が参考になるかもしれません。
[https://teratail.com/questions/86708](https://teratail.com/questions/86708)
2 追記

LouiS0616

LouiS0616 score 29740

2017/09/09 14:30  投稿

JFrameクラスを指しているのではなく、JFrameのインスタンスを指しています。
```Java
public class MyClass {
   private int value_;
   public MyClass(int value) {
       this.value_ = value;
   }
   public void print() {
       System.out.println(this.value_);
   }
   static public void sayHello() {
       // エラー!静的でないフィールドを参照することは出来ない。
       // System.out.println(this.value_);
       System.out.println("hello");
   }
}
```
```Java
public class Main{
   public static void main(String[] args){
       MyClass class1 = new MyClass(5);
       MyClass class2 = new MyClass(3);
       class1.print();
       class2.print();
       MyClass.sayHello();
   }
}
```
```
// 実行結果
5
3
hello
```
---
thisは省略可能である場合も多いです。
質問者様のコードもその一つですが、可読性を高めるために明記しているのかと。
以下の質問が参考になるかもしれません。
[https://teratail.com/questions/86708](https://teratail.com/questions/86708)
1 追記

LouiS0616

LouiS0616 score 29740

2017/09/09 14:20  投稿

JFrameクラスを指しているのではなく、JFrameのインスタンスを指しています。
```Java
public class MyClass {
   private int value_;
   public MyClass(int value) {
       this.value_ = value;
   }
   public void print() {
       System.out.println(this.value_);
   }  
   static public void sayHello() {  
       // エラー!静的でないフィールドを参照することは出来ない。  
       // System.out.println(this.value_);  
       System.out.println("hello");  
   }
}
```
```Java
public class Main{
   public static void main(String[] args){
       MyClass class1 = new MyClass(5);
       MyClass class2 = new MyClass(3);
       class1.print();
       class2.print();
 
       MyClass.sayHello();  
   }
}
```
```
```
// 実行結果
5
3
hello
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る