LoginSignup
0
0

More than 1 year has passed since last update.

【まとめ】【書籍】オブジェクト指向でなぜ作るのか(第2版)

Last updated at Posted at 2022-07-16

題名の書籍を読んていて気になったところや気付きを書いています。

インスタンスについて

"インスタンスはヒープ領域に作られるため、シンプルなロジックになり、再利用性と保守性が高い。"p47

1.シンプルなロジック
 なぜシンプルなロジックになるのか分からない。

2.再利用性
 ヒープ領域は、RAM上に動的に確保される記憶領域である。そのため、領域の確保や解放が任意に行えるため、再利用性と保守性が高い。
 ヒープ領域を用いるデメリットは、ヒープ領域が有限のメモリ領域であるため、メモリ使用量に注意する必要がある点である。
【1】https://uquest.tktk.co.jp/embedded/learning/lecture16.html


クラス・ポリモーフィズム・継承

"クラス:関連性の強い関数とグローバル変数を1つにまとめたもの"
"ポリモーフィズム・継承:共通関数では対処できない重複したコードを一本化する仕組み"p78

クラスのメリット(まとめる):
①複数の関数をまとめられるため、全体の部品数を減らせる。
②名前付けが楽になる。同一クラス中で命名が重複しなければ良い。
③メンバ関数が探しやすい

インスタンス変数:ローカル変数とグローバル変数の中間の性質を持つ。


ポリモーフィズムとは、抽象クラスでメソッドを定義すると、それを継承したクラスでもそのメソッドを使用することが出来るということ?

継承は、メンバ変数やメンバ関数を継承して、それを拡張した実装が出来ることをいう?

パッケージを用いることで、クラス名の重複を気にせ右、クラスを使用できる。


関数型言語とオブジェクト指向の関係

"関数型言語の関を値として扱えることは、ポリモーフィズムと同じ効果である。"

 関数型言語では、関数を入れ替え可能とする。一方、ポリモーフィズムでは、オブジェクトを入れ替え可能とする。以上の理由から両者は同じ効果であるといえる。


用語

コンパイラ方式:ソースコードを機械語に変換してから実行する。速度が速い。しかし、機械語のコードは異なる環境のハードウェアに配布して動かすことはできない。
インタプリタ方式:ソースコードをその場で逐次解釈して実行する。すぐに結果を確認できる。同じプログラムを異なる環境で動かすことが出来る。

仮想マシン:中間コードをCPUが直接実行できる機械語に変換する仕組み。
中間コード:特定の機械語に依存しないコード。

インスタンスを示す変数には、インスタンスのポインタを代入する。

メソッドテーブルの存在意義とは?p149
→ただ単にメソッドテーブル経由で、各クラスのインスタンスのメソッドを呼び出しているだけ?


【参考文献】
https://www.amazon.co.jp/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%81%A7%E3%81%AA%E3%81%9C%E3%81%A4%E3%81%8F%E3%82%8B%E3%81%AE%E3%81%8B-%E7%AC%AC2%E7%89%88-%E5%B9%B3%E6%BE%A4-%E7%AB%A0/dp/4822284654

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0