メソッド (計算機科学)
これは現代の「goto文論争」ともいうべき、半ば宗教的な対立関係である。
そのほか、C++ではC言語との相互運用時に構造体を用いることがあるが、構造体のメンバー変数は隠蔽しないことが多い。C++におけるclassキーワードとstructキーワードは、デフォルトのアクセシビリティが異なるという違いしかないが、メンバー変数を隠蔽しないC言語互換の構造体として利用するPOD (Plain Old Data) 型を定義する際に、classキーワードではなくstructキーワードが使われることもある。
Object Pascal はこの反省から、変数を後からアクセサ化できる仕組みとしてプロパティを導入した。また Ruby など、アクセサを簡単に定義できるメソッドや構文を備えている言語もある。
↑ パフォーマンスに関するヒント | Android デベロッパー | Android Developers, Internet Archive
↑ Javaの理論と実践: ファイナル・アンサー? finalキーワードを有効に使用するためのガイドライン | IBM, Internet Archive
↑ Javaの理論と実践: パフォーマンスの都市伝説 | IBM, Internet Archive
↑ プロパティ - C# プログラミング ガイド | Microsoft Docs
↑ C++/Java/C#の場合、イミュータブルに関してはpublicなconst/final/readonlyフィールドで代用することが可能なケースも存在する。この場合、getterも不要である。
↑ そのほか、C/C++ではコピーのコストを避けるため、関数の戻り値ではなくポインタあるいは参照による引数経由で値を返すことがあるが、コピー省略 (copy elision) およびReturn Value Optimization (RVO) をサポートするコンパイラでは、戻り値で返したとしても不要なコピー処理は除去される。コピー省略 - cppreference.com
↑ “Properties (Delphi) - RAD Studio”. docwiki.embarcadero.com. 2023年10月13日閲覧。