Archive for the ‘naoya’ Category

仙台へ

月曜日, 6月 25th, 2018

naoyaです。

先週末、4人程で宮城県仙台市まで行ってきました(一泊二日)。

宮城に行くのは初めてなので、楽しみでした。

メインの目的は、乃木坂の握手会ですね。
crownさんがどんどん領地を広げていってる…


一日目、

仙台城(青葉城)に行きました。

伊達政宗の像とか、

昭忠碑とか、

ずんだ餅とか、

非常においしかったです、ずんだ餅。

また食べたい。

別の場所ですが、凍天も食べました。

中の餅がアツアツでした。おいしかった。


二日目

朝から松島に行きました。

こんな所。

いい景色。

多目的広場?らしいです。上から。

 

それから握手会。人生初です。

びっくりしました。
写真やテレビで見るよりも綺麗で、かわいかったです。
そしてクソ長い待ち時間にも…

 

握手会の合間に、牛タン定食を食べました。

これがこの2日間で一番おいしかったです。

焼いた肉は最高です。


そんなこんなで、2日間、あっという間に過ぎました。

非常に楽しかったです。
ご飯は美味しかったし、アイドルと握手もできたし。
後は待ち時間だけだなぁ

以上、naoyaでした。

減量アイテム

火曜日, 3月 13th, 2018

こんにちは、naoyaです。

年末に帰省した際に、いろんな知り合いに「太った?」と言われたので、
減量を始めました。
スーツがきつくなってたけど自分じゃあまり気にしてなかった。

減量とはいえ、特別大したことをしているわけではないです。

毎日の通勤を徒歩(帰りは走る)、食事に気を付ける、くらいですね。

現在2か月ほど経っていますが、太った後に買ったスーツのズボンが
若干ゆるく感じる程度には減ってきています。

そんな中、とあるアイテムを購入しました。

ALINCOの電動楽らくムーブサイクル。
足を回す奴です。

電動とついてる通り、勝手に回ります。

自分で動かす必要がないとはいえ、そこそこ来ます。主に腿に。
速度を上げると若干しんどくなります。

また、正転だけでなく、逆転もできます。

これが普段やらない動きなだけあって、なかなかきつい。

 

この効果を実感できるのはいつになることやら、少し楽しみです。

目的もなく、ぶらぶらと

金曜日, 11月 24th, 2017

naoyaです。

先日、ビックカメラ川崎店に行きました。
switchを買いに行ったわけじゃないよ!

家電でも見るかと思って、ぶらぶらと。

とりあえず、これから冬を越えるために今家に無いもの(ストーブ、
電気カーペット、加湿器など)を見に行きました。

財布の中身が軽めなので、今回は見るだけ。

「あー、こんなのあるんだなー」とか思いつつ、結局良さげなのは見つからな
かったので、そのまま家電コーナーから退散。

家電はドンキでやっすいやつ買います。

第一目的が無くなったため、とりあえずブラブラしてると、寝具コーナーを発見

最近、枕がシックリ来ないので、良さげなの無いかなと、探してみる。

「高さが調節できる」という売り文句のものを見つけましたが、財布に相談
財布的にOUTだったのでそのまま退散。

12時になり、おなかも減ったので、お昼の店を探す。
どこも人が多い…。

仕方がないので川崎駅周辺のビルをブラブラ、適当に時間をつぶす。

駅周辺はいろんな店があって楽しいですね。
普段あまり外を出歩かないので、そこそこ新鮮でした。

1時ごろまでブラブラしてもう一度お昼の店を探す。
どの店も12時より人が増えてた…

空腹の限界が近い…

結局お昼は家で食べました。

MFCアプリケーション作成手順

水曜日, 9月 20th, 2017

こんにちは、naoyaです。

(お久しぶりの)プログラムに関する記事の投稿です。
今回は、「MFCアプリケーション作成手順」についてです。

・MFCとは?
  「Microsoft Foundation Class」の略。以下、wikipediaから引用
 MFCでは、Windowsアプリケーションにおけるメッセージハンドラやウィンド
 ウフレームワークなどの基礎的な部分をあらかじめパッケージ化したほか、
 GDIオブジェクト、デバイス コンテキスト、スレッド、ソケット、FTP/HTTP
 などのインターネットサービス、可変長の文字列、配列やリストと いった
 コンテナなど、一般にアプリケーションでよく使われるようなクラスを備え
 ている。
  SDKを使ってWindows APIを直接呼び出すのに比べ、Visual C++の統合環境
 との親和性が高く開発が容易になるという利点があるが、一方でMFCに過度に
 依存したプログラムを書くと他のオペレーティングシステム (OS) への移植
 が難しくなるといった問題もある。
  MFCに似たライブラリとしては、Windows Template Library (WTL) がある。
 https://ja.wikipedia.org/wiki/Microsoft_Foundation_Class

・Visual Studioでの作成手順
  新しいプロジェクトで「MFCアプリケーション」を選択し、プロジェクト名
 とかを変更して「OK」。
  MFCアプリケーションウィザードが起動したら「次へ」。
  アプリケーションの種類が選択できるようになったら、「ダイアログベー
 ス」を選択して、「次へ」(種類は他のでもいいですが、どうやら、ダイアロ
 グベースが一番簡単らしいです)。
  取り入れるユーザーインターフェース(最大化ボタン等)を選択して「次
 へ」。
  高度な機能(ActiveXとか)を使うのであれば選択して、「次へ」。
  生成されるクラス「~App」と「~Dlg」を確認して作成完了。

 今回はここまでです。もしかしたらどこか間違えてるかもしれないので、指
摘などありましたら、よろしくお願いします。
 次回は、コントロールの配置や操作について、書こうと思います。

Nintendo Switch抽選販売

月曜日, 8月 7th, 2017

こんにちは。naoyaです。
ビックカメラ川崎のNintendo Switchの抽選販売に行ってきました。

スプラトゥーンがしたいんです。

ということで初ラゾーナ、広い、ビックカメラどこや…。
見つけると、抽選開始時間より前なのに、もう長蛇の列ができてました。

最後尾を探し、列をたどると、2階まで伸びてました。
どんだけ人気なのよ…。

長い待機時間(約30分)の末、やっと抽選番号を受け取りました。1485番。
販売予定数が300だから、この時点で約5倍…。
前の週は3000人とか来てたらしいから、その感じだと、10倍は行くかな。

結果発表の10時までは結構時間があったので、ラゾーナの中を散策しました。
とはいえ、まだ開いてない店が結構多かったので、あまり見れた所は無かったです。

そして抽選結果発表のために、(どうせ混むだろうなと予測し、)9時半くらいにビックカメラに戻りました。
するとアナウンスが、
「発表は11時頃からに変更になりましたー。」
仕方がないので、散策の時間を延ばしました。
10時以降は色々なお店が開いていて、結構面白かったです。

発表は11時ですが、(混むんだろうなと予測し、)10時半にビックカメラに戻りました。
11時ごろに、アナウンスで、
「公式Twitterで結果を公開してます。」
的なのが聞こえたので、早速確認。1485番を探す。

1452… 1459… 1496…

1459の次が、1496…

 

orz…

 

リトライSwitch、ですかね。

基本情報技術者試験

水曜日, 4月 12th, 2017

こんにちは、naoyaです。
入社して2年目になりました。

今週末(来週頭?)4/16に、基本情報技術者試験を受けに行きます。

先週までは、なんとなくという感じで、過去問を眺めたり、少し解
いてみたりしていましたが、気づけば一週間後に試験という感じに
なりました。

少しヤバいような気がして、今ちょっと必死になって勉強していま
す。

過去問をやってみた感じですと、午後の問題はまだ何とかなりそう
な感じがするのですが、午前の問題が少しきつそうです。

結構知らない名称や法則だったりとかが出てくるので(過去問だと、
オートマトンとか、聞いたこともない単語が…)、そこから勉強し
ないといけない…

とりあえず、過去問の出題傾向とかを見て、出そうな問題から勉強
していこうと思います。

合格できるように、頑張ります。

非同期処理について

木曜日, 3月 30th, 2017

 こんにちは、naoyaです。

 毎月一回のプログラミング学習記事の投稿になります。

 第6回(最終回)は、「非同期処理」について、調べたことをまと
めていこうと思います。

・マルチスレッド
  スレッドとは、一連の処理の流れのことを言う。処理の流れが
 一本道なものをシングルスレッド、複数の処理を並行して行うも
 のをマルチスレッドという。
  何か非常に時間のかかる処理があるとすると、処理を行ってい
 る間、計算に専念してもいいならシングルスレッドで問題ないが、
 計算中に他の入力を受け付けたい場合がある。アクションゲーム
 などでは、キャラクターの動きの計算をしている間、ユーザーか
 らの入力を受け付けないようでは、アクションゲームとして成り
 立たない。このような場合、ユーザーからの入力を受け付けるス
 レッドと計算を行うスレッドを並行して動かす。
  要するに、重たい処理を行っている間でもプログラム全体がフ
 リーズしてしまわないようにするために、複数の処理を並行して
 行うのが、マルチスレッドプログラミング。
 
 ・C#におけるマルチスレッドプログラミング
   多くの場合、C#ではスレッドを直接作ることはほとんどない。
   スレッドの新規作成やスレッド間の処理の切替は、結構重た
  い処理で、最小限に抑えたい。そこで、実際にはスレッドを直
  接使うのではなく、一度作ったスレッドを使いまわす仕組み
  (スレッドプール)を使う。
  
・排他制御
  マルチスレッドプログラムでは、複数のスレッドが一つのデー
 タに対して操作することがある。何も考えず、ただ素直にプログ
 ラミングを行うと、意図しない結果になる場合がある。
  そのような問題を解決するために、排他制御というものが必要
 になってくる。排他制御とは、複数のスレッドが同時に一つの
 データを読み書きしないように制御することをいう。
 ・C#における排他制御
   スレッドの排他制御を行う為には、同期オブジェクトと排他
  ロックという概念を用いる。考え方としては、排他制御が必要
  になる部分に入る前に、あるオブジェクトに鍵をかける。鍵が
  かかっている間、他のスレッドは同じオブジェクトには鍵をか
  けることができず、鍵が外されるまで待たされる。そして、鍵
  をかけたスレッドが排他制御が必要な部分を抜けると、鍵を外
  す。
   鍵をかけるオブジェクトを「同期オブジェクト」、鍵をかけ
  る行為を「排他ロック」という。
  
・非同期処理の種類
  「非同期処理」といっても、いくつかタイプがあり、それぞれ
 書き方などが異なる。大まかにいうと、以下の用途がある。
  ・バックグラウンド処理:負荷の高い計算や、I/O待ちなどで、
  CPUやスレッド資源を保持し続けないために、別スレッドで計
  算やI/O待ちを行う。
  ・並列計算:マルチコアCPUの性能を最大限引き出すために、
  同じ計算を複数のコアで同時に実行する。
   ・データ並列:同じ処理を異なるデータに対して行う。
   ・タスク並列:異なる処理が独立して動いていて、その間に
   非同期でデータのやり取りを行う。
 ・バックグラウンド処理
   負荷の高い計算やI/O待ちをする場合、メインスレッドとは
  別のスレッドを使いたい場合がある。例えば、GUIアプリの場
  合、メインスレッドで時間のかかる処理を行うと、アプリがフ
  リーズしてしまい、ユーザーに与える印象が非常に悪くなって
  しまう。メインスレッド以外で行う処理の事を、バックグラウ
  ンド処理という。
   バックグラウンド処理では、バックグラウンドで行った処理
  の結果の値を受け取って、メインスレッドで処理を行いたい場
  合が多い。
  ・利点
    GUIの応答性向上:時間のかかる処理を行っている間、UIス
   レッド(GUIにおける、エンドユーザーからの入力を受け付け
   るためのスレッド)をブロックせず、フリーズを回避できる。
    スレッド資源の節約:I/O待ちにしている間、スレッドを解
   放することによって、メモリ(スレッド用のスタック等)やCP
   U(コンテキストスイッチ等)の負担を減らせる。
 ・データ並列
   並列処理も、非同期処理の一種になる。並列処理を行いたい
  動機は、マルチコアCPUの性能を最大限に引き出すこと。その
  一番シンプルな方法は、同じ処理を、異なるデータに、複数の
  コアで同時に実行すること。このような並列処理を、データ並
  列と呼ぶ。
 ・タスク並列(非同期データフロー)
   並列処理を行うもう一つの方法としては、異なる処理(タス
  ク)を独立して動かして、その間で、非同期でデータのやり取
  りを行う方法がある。異なるタスクを並列に動かすという意味
  では、タスク並列。非同期でデータをやり取りするという意味
  では、非同期データフローと呼ばれる。
  
  
 今回マルチスレッドについて学ぶよりも前に、一度開発でマルチ
スレッドを扱う機会があり、学びなおすにあたって、その時にやっ
ていた事を思い出しながら学ぶことができました。「この失敗は前
の時やってたな」とか思う部分もあり、そういった部分を今回学び
なおせたので、次回マルチスレッドを使う機会があれば、こういっ
た失敗をしないように、気を付けていこうと思います。

 今回で一応最終回となりますが、勉強は続けるので、もしかした
らどこかのタイミングで何か書くかもしれません。その時はまた、
アドバイスなどをよろしくお願いします。

参考URL:
http://ufcpp.net/study/csharp/

メモリとリソース管理

金曜日, 3月 3rd, 2017

 こんにちは、naoyaです。
 
 毎月一回のプログラム学習記事の投稿です。

 第五回は、「メモリとリソース管理」について、調べたことをまとめていこうと思います。
 
・.NET Frameworkでのメモリ管理
  C#をはじめとした.NET Framework上で動く言語は、メモリ管理
 を.NET Frameworkのガベージコレクションに任せることで、管理
 の手間を削減している。
  一般に、メモリの管理方法には「スタック」と「ヒープ」の2
 種類の方法がある。C#では、ローカル変数はすべて「スタック」
 上に置かれる。変数が「値型」の場合、値すべてがスタック上に
 置かれる。「参照型」の場合、値そのものはヒープ上に置かれ、
 そのヒープへの参照情報のみが、スタック上に置かれる。
 スタック
   データ領域を積み上げていくような形でメモリを管理する方
  法。最後に確保したデータ領域を最初に開放する。メモリの管
  理が簡単で非常に効率が良いが、あらかじめスコープが分かっ
  ているデータにたいしてしかりようできない。
 ヒープ
   任意サイズのデータ領域を任意の順で確保、解放していく方
  式。データを扱うスコープがはっきりしない(いろんな所から
  参照されている)場合や、実行時にしかサイズが確定しない場
  合、必要サイズがかなり大きい場合などに使う。
   スタックのような制限はないが、メモリ上のどこからどこま
  でを確保しているか、管理する必要がある。また、新たにデー
  タを確保したい場合、空き容量を探す手間がかかる。
   領域の確保と開放を繰り返すことで、使用中のヒープがメモ
  リ上に散在する状態(断片化)になる。こうなると、空き容量を
  探す手間が増え、データの参照の局所性が失われることで、
  キャッシュのヒット率が下がり、処理性能が低下する。
 ガベージコレクション
   ヒープを利用する時、用済みのデータ領域の解放を忘れて、
  メモリ上に「ごみ(いつまでたっても解放されない領域)」が
  残ってしまうことがある。このような問題を、「メモリ・リー
  ク」と呼ぶ。逆に、既に開放している領域を再度解放しようと
  する問題を二重解放と呼ぶ。
   プログラマが自前でメモリを解放しようとする場合、プログ
  ラムが複雑になるにつれ、メモリ・リークや二重解放の発見は
  難しくなる。プログラマの目的はヒープの管理ではないのに、
  そちらに時間を割くことになるのは良くない。
   ヒープの管理を自動化する手法の一つとして、ガベージコレ
  クションというものがある。ガベージコレクションは、定期的
  に「ごみ」になっている領域がないか調べて、見つけた「ご
  み」を解放して回る処理を行う。
 値型と参照型
   C#の型には大きく分けて2つのタイプがある。一つは「値
  型」で、もう一つは「参照型」と呼ばれる。
   ・値型…変数に直接値が格納される。
   ・参照型…変数は参照情報を持っていて、実体は別の場所に
       ある。
   値型は、代入時に値のコピーを受け取り、参照型は値の実態
  への参照情報を受けとる。このため、値型はコピー先の値に変
  更を加えてもコピー元には何も影響はないが、参照型の場合、
  コピー先の値を変えるとコピー元の値も変更される。
 値渡しと参照渡し
   プログラミング言語での値の受け渡し方法には、値渡しと参
  照渡しがある。C#では基本、値渡しになる。refやoutという
  キーワードを使うと、参照渡しを行うことができる。
   ・値渡し:メソッド内の値を変更しても呼び出し元には影響
        しない。
   ・参照渡し:メソッド内の値を書き換えると、呼出し元にも
         影響する。
   ・out:特別な参照渡し。戻り値以外にも値を返したいとき
      などに使う。
   出力引数
     参照渡しを使うと、メソッド内からメソッド外の値を書
    き換えることができる。複数の戻り値を返すのに有効であ
    るが、refを使う参照引数では、いくつか問題がある。
     ・呼出元で、特に意味のない値を初期化する必要がある。
       →メソッド内で必ず値を上書きするので、無駄。
     ・メソッド内で代入を忘れてもコンパイルエラーになら
      ない。
     そこで、戻り値として使いたい場合、outを使って、出
    力用の参照引数であることを明示する。outを使うと、
     ・メソッド呼出前に初期化する必要がない。
     ・メソッド内で必ず値を割り当てなければならない。
    となる。
 リソースの破棄
   ファイルや周辺機器などのリソースを使用する場合、まずリ
  ソースを使用する権利を取得し、操作を行った後、リソース使
  用権を破棄する必要がある。
   メモリは.NET Frameworkのガベージコレクションが自動的に
  管理してくれているが、ファイルはガベージコレクションの対
  象外で、明示的な破棄が必要である。
   リソースの破棄を怠ると、操作が正しく終了しなかったり、
  ほかのプログラムがそのリソースを使用できなくなったりする。
   ファイルを確実に閉じるためにはtry~catch~finallyまた
  はusingステートメントを使用する。
   try~finallyとusingは等価
   
   Resource R = new Resource;
   try
   {
     //処理
   }
   finally
   {
     R.Dispose();
   }
   ||
   using(Resource R = new Resource)
   {
     //処理
   }
  
  
 スタックやヒープ、ガベージコレクションについては、名前だけ
知っていましたが、メモリ管理等は特にしたことがないため、それ
ぞれが具体的にどんな役割をしているのかは知りませんでした。ま
た、値型と参照型についても、実際に値が保持される場所などは特
に気にしていなかったため、知りませんでした。今回、それらの意
味などを知ることができてよかったと思います。
 参照渡しやリソースの破棄については、開発で使うことが多いの
で、使い方や中身などは知っていました。とはいえ、リソースの破
棄については、ガベージコレクションの具体的な役割について知ら
なかったため、「なぜ毎回閉じなければいけないのか。」と思うこ
ともありました。今回、このリソースの破棄の意味を知ることがで
きて良かったです。

 次回(第六回・最終回)は、「非同期処理」について、調べていこ
うと思います(3月中に出したい…)。

参考URL:
http://ufcpp.net/study/csharp/

関数指向について

金曜日, 2月 3rd, 2017

関数指向について

 こんにちは。naoyaです。

 毎月一回のプログラム学習記事の投稿です。

 第四回は、「関数指向」について、調べたことをまとめていこう
と思います。

・関数指向
  いわゆる、「関数型言語」と呼ばれる類の言語の設計手法。オ
 ブジェクト指向言語でも使えるところが多い。
  正確な定義等は存在しないが、関数型プログラミングは、複数
 の式を関数を使って組み合わせていくプログラミングスタイルで
 ある。ということは認知されている。
  関数(function)中心の設計で、小さな関数を組み合わせて大
 きな処理を実現しようとする考え方。
  C#では、デリゲート(メソッド(関数)を参照するための型)や、
 ラムダ式(メソッド(関数)を整数などの変数と全く同列に扱う手
 法)などが実装されている。

・関数型言語の特徴
 1.第一級関数…関数を変数に格納できる性質を持ち、第一級オブ
       ジェクトと同じように扱うことができる→関数の受
       け渡しが容易になる。
 2.高階関数…関数を返したり、他の関数を引数として受け取った
      りできる関数。
 3.純粋関数…値を変更しない関数。データを受け取って、データ
      を出力するだけの関数。環境や評価の順などの影響を
      受けない。同じ入力が与えられるたび、決まって同じ
      出力が得られる。プログラムのほかの部分に影響を与
      えない。
 4.クロージャ…戻り値となる特定の関数だけがアクセスできる
       データを関数の内部に保存できる機構。つまり、戻
       り値となる関数は、その実行環境を維持できる。
       引数以外の変数を実行時の環境ではなく、自身が定
       義された環境で解決することが特徴。関数とそれを
       評価する環境のペアであるともいえる。
 5.不変状態(不変性)…状態を全く変更できないこと。状態の変更
          に対するテストを少なくできる。

 関数指向という言葉は、最初に6か月分のお題を決めた時に初め
て聞きました。その内容についても、未だ業務では使ったことのな
い事ばかりだったので、調べても内容が理解できないものが多かっ
たです(ラムダ式とデリゲートのみ、聞いたことがある程度)。
 調べてみた印象としては、関数指向は、データの流れが分かりや
すくなり、総合的にテストをするときの負担が軽くなる、テストが
しやすくなる。ということが所々に書いており、オブジェクト指向
の「開発のしやすさ」とは違う所に重点を置いているという風に感
じました。
 オブジェクト指向言語とは違い、関数型言語にはまだ触れたこと
がないので、触れる機会があれば、今回調べたことを思い出しなが
らやっていきたいです。

 次回(第五回)は「メモリとリソース管理」について、調べていこ
うと思います。

参考URL:
http://postd.cc/functional-programming-should-be-your-1-
priority-for-2015/

http://www.ibm.com/developerworks/jp/java/library/j-ft4/
https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%83%BC%E3%82%
B8%E3%83%A3

http://ufcpp.net/study/csharp/
http://syossan.hateblo.jp/entry/2016/07/16/211248
http://qiita.com/lrf141/items/98ffbeaee42d30cca4dc

オブジェクト指向について

火曜日, 12月 27th, 2016

こんにちは。naoyaです。

毎月一回のプログラム学習記事の投稿です。

第三回は、「オブジェクト指向」について、調べたことをまとめて
いこうと思います。

・オブジェクト指向とは?
  ソフトウェア設計において、操作手順よりも捜査対象に重点を
 置く考え方。カプセル化・継承・多態性という3つの概念がある。
  関連するデータの集合と、それに対する手続き(メソッド)を
 「オブジェクト」と呼ばれる1つのまとまりとして管理し、その
 組み合わせによってソフトウェアを更新する。
  既に存在するオブジェクトについては、その内部構造や動作原
 理の詳細を知る必要は無く、外部からメッセージを送れば機能す
 るため、特に大規模なソフトウェア開発において、有効な考え方
 と言える。
  データやその集合を、現実世界の「モノ」になぞらえた考え方
 であることから、「オブジェクト」指向とよばれている。
  すなわち、「テレビ」というオブジェクトがあれば、テレビは
 自分自身の中身について、それを動作させる仕組みを知っており、
 それを利用するためには(たとえばリモコンなどで)適切なメッセ
 ージを与えるだけで良い。
  このような、何らかの「データ」と、それを操作するための
 「メソッド」の組み合わせが「オブジェクト」になる。
  個々の操作対象に対して、固有の操作を設定することで、その
 内部を隠し、利用しやすくしようとする考え方。
  ポイント
   1, プロジェクトを作るときは、まずデータ構造を決める。
   2, データ構造を中心に考える。
   3, データ構造は、中身を隠す(カプセル化する)と、必要な
     所だけ見えて分かりやすい。
   4, 継承と多態性という概念もある。
   
 ・カプセル化
   オブジェクト指向では、オブジェクトは中身がどうなってい
  るかを隠し、可能な操作と属性のみを公開するべきだと言われ
  る。可能な操作を「メソッド」、属性を「プロパティ」と言う。
  ※可能な操作と属性のみを公開すべき
   -例えば、正の整数を扱うメンバ変数に値を入れるときに、
   その値がもし負の数だった場合、直接値を入れると負の数が
   そのまま入り、後の計算がおかしくなるかもしれない。
   プロパティやメソッドを通して値を入れる場合、そこで負の
   数の時の処理をはさめるので、後々助かるかもしれない。
   
 ・継承
   クラス定義の共通部分を別クラスにまとめる仕組み。
   既存クラスの機能、構造を共有する新たなクラスを派生する
  ことが出来る。
   継承元のクラスを親クラスやスーパークラス、継承したクラ
  スをサブクラスと言い、サブクラスには、スーパークラスの変
  数定義やメソッド等が引き継がれる。スーパークラスとサブク
  ラスは包含関係で表現できる。
   継承を行うことで、コードの再利用性、拡張性を高めること
  ができる(複数のクラスで共通部分がある場合に、その部分を
  別クラスにして継承させると、コードが見やすくなり、バグや
  仕様変更などがあった場合に、修正箇所が少なくて澄む)。
  
 ・多態性
   同名のメソッドや型などをオブジェクトの種類によって使い
  分けることが出来る性質のこと。
   同じクラスを継承した2つのクラスでスーパークラスのメソ
  ッドをオーバーライドさせると、同じ名前のメソッドで違う挙
  動をさせること(目的は同じであるが、違う手段を使ったり、
  違う結果が欲しい場合など)が出来るため、コード利用側での
  変更を少なく出来る。
  

まとめ
 オブジェクト指向について調べてみましたが、どこの説明でも、
「コードの読みやすさ」や「コード改変のしやすさ」に重点を置い
ているような印象を受けました。これはそのまま、複数人で作業を
する場合に、他の人がコードを理解するのにかかる時間が減るのと、
バグや仕様変更などがあった時も、変更にかける時間を減らせると
いう利点があるように思います。
 継承は何度か使ったことがあり、カプセル化はイメージがつかみ
やすかったので、割とスッと頭に入ってきましたが、多態性につい
ては、中々理解するのに苦労しました。イメージが掴みづらく、サ
ンプルコードを見て、やっていることはわかるけれども、こうする
ことで何がいいのか、と言う所を理解するのに、凄く時間がかかり
ました(もしかしたら勘違いしているという可能性もありますので、
ご指摘等いただけるとうれしいです。)。

次回(第四回)は、「関数指向」について、書いていこうと思います。

参考URL:
http://www.sejuku.net/blog/9598
http://java2005.cis.k.hosei.ac.jp/materials/lecture18/polymorphism.html
http://qiita.com/lrf141/items/a2f764c8d87de26b6f45
http://nobuo-create.net/java-beginner-25/
http://ufcpp.net/study/csharp/oo_about.html
http://www.itmedia.co.jp/im/articles/0703/06/news125.html
http://e-words.jp/w/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91.html