[解決済み] PythonのselfとJavaのthisの違い
質問
昔、Pythonを少しやったことがあります。しかし、今はJavaに移行しています。Pythonの"self"メソッドとJavaの"this"に違いがあるかどうかを知りたいと思います。
self"はキーワードではなく、"this"はキーワードであることは知っています。そしてそれは、私が理解できたことのほとんどです。他に何か見逃していることはありますか?
どのように解決するのですか?
について
self
をPythonで作成しました(以下はソースです。
Pythonの自己解説
):
を使用する必要がある理由は 自己 Pythonはインスタンスの属性を参照するために@構文を使用しないためです。Pythonはメソッドが属するインスタンスを自動的に渡すが、自動的に受け取らない方法でメソッドを行うことにしました:メソッドの最初のパラメータは、メソッドが呼び出されるインスタンスです。これにより、メソッドは関数と完全に同じになり、実際に使用する名前はあなた次第となります(ただし 自己 が慣例で、それ以外を使うと一般に顰蹙を買うことになります)。 自己 は、コード上では特別なものではなく、単なる別のオブジェクトです。
Rubyのような特別な構文や、C++やJavaのような宣言を必要とするもの、あるいはもっと違うものなど、Pythonは通常の名前と属性を区別するために何か他のことをすることができましたが、そうしなかったのです。Pythonは物事を明示的にすること、何が何であるかを明白にすることに全力を尽くし、完全にどこでもそうするわけではありませんが、インスタンスの属性についてはそうしています。そのため、インスタンス属性に代入する場合、どのインスタンスに代入するのかを知る必要があり、そのため、インスタンス属性に代入するために 自己 ..
について
this
を、Oracleが解説しています(以下、ソース。
Java この説明
):
インスタンスメソッドまたはコンストラクタ内。 これ は、現在のオブジェクト、つまりメソッドやコンストラクタが呼び出されているオブジェクトへの参照です。インスタンスメソッドやコンストラクタの内部から現在のオブジェクトの任意のメンバーを参照するには これ . を使用する最も一般的な理由は この キーワードは、フィールドがメソッドやコンストラクタのパラメータによってシャドウされるからです。
関連
-
[解決済み] 要素 'beans' の宣言が見つかりません。
-
[解決済み] Java: getInstanceとStaticの比較
-
[解決済み] staticmethodとclassmethodの違いについて
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み】__str__と__repr__の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Java - JTextFieldが空かどうかを確認する
-
[解決済み] enumのordinalを使用するのは良い習慣ですか?
-
[解決済み] Java Genericメソッドをstaticにするには?
-
[解決済み] 警告: コンテキスト初期化中に例外が発生 - 更新の試みはキャンセルされました。
-
[解決済み] javac ソースファイルが見つかりません
-
[解決済み] java.lang.ClassNotFoundException: クラス com.ibm.db2.jcc.DB2Driver が Worklight プラットフォームまたはプロジェクトに見つかりませんでした。
-
[解決済み] javaでAnnotation Inheritanceのようなものはあるのでしょうか?
-
[解決済み] Java: getInstanceとStaticの比較
-
[解決済み] .lengthが解決できない、またはフィールドでない
-
[解決済み] 自分」という言葉は何のためにあるのか?