新人ぷろぐらまの覚え書き

最近プログラマーに転職したアザラシのブログ。

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

オブジェクト指向について、本で勉強した事のメモ書きです。
読んだ本はこれ。

 

 

オブジェクト指向の定義

・ソフトウェアを開発するときに用いる部品化の考え方

設計図の部品をJavaのクラスとして記述していくことで、現実世界の定義や行動をプログラム化できる

人間に把握できるプログラム開発を実現する

 

メリット

・柔軟性、保守性が上がる

・プログラムの一部を簡単に変更できる(修正したいクラスだけを変更すればいい)

 

オブジェクトの姿

属性と操作を持っている。

オブジェクトの属性や操作は、プログラマが部品を作成する際に決定する。

 

オブジェクト指向の3大機能

カプセル化

属性や操作を、一部の相手からは利用禁止にする

・継承

過去に作った部品を流用し、新しい部品を簡単に作れる機能

多態性

似ている2つの部品を「同じようなもの」とみなし、「いいかげん」に利用できる機能

 

オブジェクトとクラス

・クラス・・・オブジェクトが生み出される際に用いられる、オブジェクトの設計図

クラスを定義して、そのクラスに基づいてオブジェクトを生成する

生成されたオブジェクトを「インスタンス」という。

 

・クラスの定義方法

クラス図・・・クラスの設計内容を上からクラス名、属性、操作の一覧として並べる

属性=フィールド、操作=メソッド

属性:クラスが持つ属性について、変数の名前と型を考える

操作:操作の名前、操作するときに必要な情報の一覧、操作の結果として支持もとに返す情報、処理内容を考える

 

has-aの関係

フィールドにクラス型の変数を宣言することが出来る。

あるクラスが別のクラスをフィールドとして利用している関係

 

・コンストラクタ

クラスがnewされた後に自動で実行され、初期値を代入する。

 

・同じクラスから生成されたインスタンスでフィールドを共有したい場合

・・・フィールド宣言の先頭にstaticキーワードを追加する。

staticキーワードを指定したフィールドは静的フィールドと呼ばれる。

(クラス変数とよばれることもある)

インスタンスにではなく、クラスに実体が準備される。また、そのクラスがインスタンスを生み出していなくても利用可能。

静的メソッドはその内部で静的ではないメソッド・フィールドを利用できない。

 

とりあえずメモっただけ・・・

100パーセント理解は仕切れてないです^^;

 

明日から1ヶ月間社外研修に行ってきます。
他社の方とも一緒に勉強できるといいな〜