thisキーワード

クラス内でthisを使うと、それはそのクラスオブジェクトインスタンス自身の参照を指す・・・。
いろいろ使い方はあるが、例えば、メンバフィールドと引数を区別するのに使う・・・。

Class1.javaで、

メンバフィールドはint型のiとStringクラスのstrである・・・。

対して、これらの4つのメソッドの引数には、int型iとStringクラスstrが使われている・・・。
この場合、そのままだと引数なのかメンバなのか判断できない・・・。

しかし、this.iや、this.strとしているので、これらはオブジェクトインスタンス自身のフィールドのiやstrであることがわかる・・・。
thisが付いていないiやstrは、引数のほうのiやstrであると判断される・・・。

outputのように、引数でフィールドと同じ名前を使っていなければ、thisは付けなくてもいい・・・。

またこれを実行する・・・。

i = 0, str = -
i = 10, str = -
i = 10, str = ABC
i = 20, str = XYZ

問題なく動く・・・。

Sample/MainClass.java at master · bg1bgst333/Sample · GitHub
Sample/Class1.java at master · bg1bgst333/Sample · GitHub