「メンバ変数」の版間の差分
ナビゲーションに移動
検索に移動
Administrator (トーク | 投稿記録) |
|||
(同じ利用者による、間の1版が非表示) | |||
1行目: | 1行目: | ||
− | '''メンバー変数'''([[英語]]:member variable)とは、[[オブジェクト指向]]における[[インスタンス]]の内部に保持する[[変数]]のことである。 | + | '''メンバー変数'''([[英語]]:member variable)とは、[[オブジェクト指向]]における[[インスタンス]]の内部に保持する[[変数]]のことである。[[プログラミング言語]]によっては「[[インスタンス変数]]」などとも呼ばれる。 |
− | [[クラス]] | + | [[クラス]]の規模が大きくなるとメンバー変数は[[C言語]]の[[グローバル変数]]と何ら変わらない[[副作用]]を持つ。 |
+ | |||
+ | また、メンバー変数を利用して「[[隠蔽]]」することで後々「[[階層化の有害性]]」を発現することもある。「隠蔽」という考え方は「概念的」および「構造的」にさまざまな利点を持っているが、実装面では層単位で同じような最適化が繰り返し発生することによる無駄な処理が増え、効率的な実装を阻害し、複雑化を招くことがある。また将来的に「隠蔽されたデータ」「低層部分のみに存在するデータ」にアクセスできずに途方に暮れ、トリッキーな解決策に走り、結果としてデスマーチを誘発する。 |
2020年4月1日 (水) 04:08時点における最新版
メンバー変数(英語:member variable)とは、オブジェクト指向におけるインスタンスの内部に保持する変数のことである。プログラミング言語によっては「インスタンス変数」などとも呼ばれる。
クラスの規模が大きくなるとメンバー変数はC言語のグローバル変数と何ら変わらない副作用を持つ。
また、メンバー変数を利用して「隠蔽」することで後々「階層化の有害性」を発現することもある。「隠蔽」という考え方は「概念的」および「構造的」にさまざまな利点を持っているが、実装面では層単位で同じような最適化が繰り返し発生することによる無駄な処理が増え、効率的な実装を阻害し、複雑化を招くことがある。また将来的に「隠蔽されたデータ」「低層部分のみに存在するデータ」にアクセスできずに途方に暮れ、トリッキーな解決策に走り、結果としてデスマーチを誘発する。