PythonとJavaは、どちらも人気のあるプログラミング言語ですが、それぞれに独自の特性があります。その一つが、インスタンス変数へのアクセス方法です。Pythonではself
を、Javaではthis
を使用します。
Pythonのselfとは
Pythonでは、インスタンスメソッドの第一引数としてself
を明示的に指定する必要があります。self
はPythonのキーワードではなく、任意の名前を付けることができます。しかし、self
という名前が一般的に使用されています。
class Circle(object):
def __init__(self, radius):
self.radius = radius
上記のPythonのコードでは、__init__
メソッドの第一引数としてself
を指定しています。self.radius
は、現在のインスタンスに関連付けられた変数radius
を指しています。
Javaのthisとは
一方、Javaではthis
を使用して現在のインスタンスにアクセスします。しかし、Javaではthis
を明示的に指定する必要はありません。
class Circle {
private int radius;
public Circle(int radius) {
this.radius = radius;
}
}
上記のJavaのコードでは、コンストラクタの引数としてradius
を指定しています。this.radius
は、現在のインスタンスに関連付けられた変数radius
を指しています。
まとめ
Pythonのself
とJavaのthis
は、どちらも現在のインスタンスにアクセスするために使用されます。しかし、Pythonではself
を明示的に指定する必要があり、Javaではその必要はありません。また、Pythonのself
はキーワードではなく、任意の名前を付けることができます。
これらの違いを理解することで、PythonとJavaの間でコードを移行する際に役立つでしょう。