忍者ブログ
今は、就職活動日記
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

近年,オブジェクト指向プログラミングが,もてはやされています.
しかし,本当に必要なのでしょうか?
C言語など手続き型言語で十分なように思ってしまいます。

オブジェクト指向が良いとされる理由として
「開発力が上がる」というのがあります.これは一度作ったモジュールを
再利用することができるからだと思われます.
(でもC言語でも関数を使いまわせるような気がします 疑問)

OOPが本当に必要なのかを理解するため,
その利点と,どのような場面で有効なのかを考えてみたいと
思います。

オブジェクト指向のキーワード
・カプセル化(情報隠蔽)
・抽象化(クラスとオブジェクト)
・階層的構造化(継承と集約)
・メッセージ
・ポリモーフィズム

構造の表記方法
UMLなど

具体的な言語
Javaなど

「カプセル化」
データとそれを処理する手続き これらをまとめてしまうのがカプセル化の
役割の一つ。
データは属性とも呼ばれる,オブジェクトの名前,所属など性質を表現する。
処理する手続きはメソッドとも呼ばれる。メソッドはデータへのアクセスや操作を
行なう。(例:所属の変更→名刺のアドレスを書き換える など)

カプセル化の役割。
オブジェクトのデータを直接外部からアクセスさせないようにします。
データを操作するときは,アクセスできるメソッドを経由してのみ授受できるものとします。
これにより,データの構造や内部の処理を外部から隠蔽します。(内部構造を詳しく知らなくても
モジュールを扱える!)
このため,オブジェクトはデータ構造の定義と,それらにアクセスするためのメソッドによって
構成されています。

クラスに関して参考サイト
http://www.aerith.net/design/class-j.html

PR
就職活動について考えるサイト

http://www.d1.dion.ne.jp/~kshigeta/recruit.htm
観測データがいくつかの概念に分類できるとき,データを
一つの概念に対応させる処理のことをパターン認識という.

認識対象から何らかの特徴量を複数抽出する.
それらの特徴は,特徴ベクトルとして表現される.

特徴ベクトルによって張られる空間を特徴空間という.
各パターンは特徴空間上の一点として表される.
特徴ベクトルの選び方が適切ならば,
データの集合を,外部からの教師信号なしに分類する手法は,
クラスタリングと呼ばれている.

クラスタリングには,階層的クラスタリングと,そうでないものがあり,
前者の代表はウォード法.
後者の代表はk-means法である.
void* memcpy(void* s1, const void* s2, size_t n);

第一引数:コピー先のアドレス
第二引数:コピー元のアドレス
第三引数:コピーするデータの大きさをバイト単位で指定

【戻り値】
第一引数がそのまま戻り値となる.

【どこで役に立つ?】
どんなタイプのデータでも,まるまるコピーを作ることが可能である.
例えば構造体で,実データやポインタが一緒になってデータとして並んでいても,まるごとコピーを作成することが可能である.


【補足】
仲間 strcpy:文字列限定 \0が登場するまでコピーする
- HOME -
Powered by  [PR]
 | 忍者ブログ