なぜ Java は演算子のオーバーロードを提供しないのですか?
コードの難読化と悪用の可能性に関する懸念のため、Java では演算子のオーバーロードが許可されていません。 C とは異なり、Java はユーザー定義型を第 2 級市民とみなし、演算子を持つ能力を制限します。
コードの難読化:
演算子のオーバーロードが原因となる可能性があると主張する人もいます。混乱を招く、意図的に隠されたコード。ただし、Java ではメソッドまたは関数を使用して同じレベルのコード難読化が可能です。
潜在的な悪用:
演算子のオーバーロードは演算子のセマンティクスと一致する必要がありますが、プログラマーがこの機能を悪用する可能性があります。たとえば、加算演算子で減算を実装したり、クローン作成メソッドで誤った値を返したりする可能性があります。
個人的な選択:
最終的には、演算子のオーバーロードを含めないという決定Java での選択は、James Gosling が個人的に選択したものです。彼は、C の機能の過剰な乱用を目撃したと述べています。
演算子のオーバーロードの利点:
懸念にもかかわらず、演算子のオーバーロードにはいくつかの利点があります。
結論:
Java には演算子のオーバーロードがありませんが、同様の機能を実現するメソッドやインターフェイスなどの代替メカニズムが提供されています。演算子のオーバーロードを除外するという決定は、それを含める正当な理由と反対の両方の理由があり、依然として意見の問題です。
以上がなぜ Java は演算子のオーバーロードをサポートしないのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。