プログラムは1回作ったらそれで完成ではなく、実際の開発現場ではいろいろな修正が加わったり、機能が追加されたりなど1回作ったプログラムは変わっていくのがほとんどである。
1つの変更によって次々といろんなところに変更の連鎖が起きていく。
- 修正ミスやいろんなミスなどが起こりやすい。
- 他の人からみて訳がわからないプログラムになる。
⇨ オブジェクト指向でプログラムを書くとデータを分かりやすくまとめて管理することができるようになる
オブジェクト指向
- 実行用クラスと設計図クラスがある
- オブジェクト:クラスから作られる実体(モノ)
- オブジェクト指向:オブジェクトを中心にてプログラムを作る考え方
設計図クラス
クラス(設計図)
属性(何のデータを持っているか)
操作(何の処理を持っているか)
オブジェクト(実体)
①設計図の中にデータと処理をひとまとまりにしてプログラムを作っていく
②持っているデータや処理を分けて、クラスを組み分けて動かしていく
⇨ このようなプログラムの作り方や考え方のことを『オブジェクト指向』という
メリット
- みんなで分担して開発ができるので、開発効率やスピードも上がる
- 大規模なシステムをみんなで作成できる
- 作った後のメンテナンスもしやすい
- 機能追加もしやすい
- 必要なクラスや変数だけをその都度メモリ上に読み込んで実行、不要な場合メモリから無くす処理が進んでいくので、メモリの使用効率もよく早く処理を進められる
- 現実社会をプログラムに置き換えやすい
2種類のクラス
- 実行用クラス : mainメソッドを記述
- 設計図クラス : 属性と操作を記述 // 属性 ⇨ 変数 操作 ⇨ メソッド
class クラス名{
変数の定義
メソッドの定義
}
//変数の定義
データ型 変数名;
例)String name;
int score;
Sample.java
public class Student {
//メンバ変数(属性)
String name;
int engScore;
int mathScore;
//メソッド(操作)
void display(){
System.out.println(name + "さん");
System.out.println("英語" + engScore + "点・数学" + mathScore + "点");
}
void setScore(int eng,int math){
engScore = eng;
mathScore = math;
}
double getAvg() {
double avg = (engScore + mathScore)/2.0;
return avg;
}
}
メソッドの定義
戻り値の型 メソッド名(引数リスト){
(処理)
}
- 引数 : 呼び出し元から受け取る値
- 戻り値 : メソッドの処理の後に呼び出し元に返す値『return』で指定する。何も返さない場合は、戻り値の型に『void』を記述する
//引数なし 戻り値なし
void display(){
System.out.println(name);
}
//引数あり 戻り値なし
//※ 引数の受け取り方は変数の宣言をする ⇨ データ型 変数名のペアで1つのデータを受け取れる
void display(int eng, int math){
engScore = eng;
mathScore = math;
}
//引数なし 戻り値あり
//※平均値は小数として返すメソッドなので、戻り値の型は『double型』となっている
double getAvg() {
double avg = (engScore + mathScore)/2.0;
return avg;
}
参考サイト
オブジェクト指向の必要性とメリットが理解できる!【Java入門講座】3-1 オブジェクト指向
オブジェクト指向プログラミングとは