0
0

More than 1 year has passed since last update.

【Java・学習ログ⑦】オブジェクト指向の基本

Posted at

教本に沿ってやってみたシリーズ、『第7・8章』です。

≪使用教材≫スッキリわかるJava入門 第3版 スッキリわかるシリーズ

■オブジェクト指向

ソフトウェア開発における部品化の考え方のこと。①〜⑥までのプログラミング手法は手続型と呼ばれている。実行する手順毎にクラス分けしていくようなイメージ。オブジェクト指向の考え方では「物」や「登場人物」毎にクラスを分割し、それぞれに責務 を割り当てる。

与えられる主な役割は行動責任,と情報保持責任に分類される。
このような責任を果たすために、オブジェクトは『属性』と『操作』を持っている。

・属性

 その登場人物に関する情報を覚えておく箱

・操作

 その登場人物が行う行動や動作の手順

・インスタンス

Javaではオブジェクトそのものを定義できない。①クラスを定義をし、②そのクラスに基づいてオブジェクトを生成する。クラスから生成された仮想世界の中で活躍するオブジェクトのことを厳密に示したいとき、インスタンスという用語を用いる。
「クラス図」という設計図のルールに準じてプログラムを書いていく。

[クラス名]勇者
[属性]名前/HP
[操作]戦う/眠る/座る/転ぶ/逃げる

public class Hero {

  //【属性】変数宣言を記述。
		String name; 
		int hp;

    //【操作】 
		public void attack() {}
		public void sleep() {}
		public void sit(int sec) {}
		public void slip() {}
        public void run() {}
}

【属性】…クラスブロック内に宣言された変数をJavaではフィールドという。
フィールド宣言と同時に値を代入することも可能。
また、先頭にfinalをつけ書き換え不可能な定数フィールドにすることもできる。

final int LEVEL = 10;

【操作】操作を定義するには下記の4つを考える必要がある。
・操作の名前
・操作するときに必要な情報の一覧
・操作の結果として指示元に返す情報
・処理内容

//Heroクラス内にメソッドを代入。
public void sleep(){ //名前
    this.hp = 100;
    Sytem.out.printoln(this.name + "は、眠って回復した!");
・this

自分自身のインスタンスを指す変数。

・メンバ

フィールドとメソッドの総称。

・クラス型変数

データ型、参照型のほかクラス定義によって使える型。int型やString型と同じように準備し、インスタンスを代入することができる。

Hero h;

■インスタンスの利用方法

前述で定義したHeroクラスを動かすためには当然Mainクラスが必要になる。

public class Main {

	public static void main(String[] args) {
		
		//1、Heroクラスからインスタンスを生成し、変数に代入。
        //※生成には「new」を使う。
		Hero h = new Hero(); 
		
		//2、フィールドに初期値を設定
		h.name = "ヤマト";
		h.hp = 100;
		System.out.println("勇者" + h.name + "が誕生した。");
		
		//3、メソッド呼び出し
		h.sit(5);
		h.slip();
		h.sit(25);
		h.run();

	}

}

【実行】

勇者ヤマトが誕生した
ヤマトは5ポイント回復した
ヤマトは転んだ
5のダメージ
ヤマトは25ポイント回復した
ヤマトは逃げ出した
GAMEOVER
最終HPは125でした


今回は基本理解に努めました。
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