Javaで書籍を扱う

概要

商品としての特性をShohinクラスが持ち、これを継承するShohinBookクラスで書籍としての商品を扱う。ShohinBookクラスをShohinBookTest_1でオブジェクト化する。

//商品クラス
class Shohin {

	private int price;// 商品の価格 privateが付いているメソッドやフィールドは、サブクラスに継承されない
	private String name;// 商品名

	public Shohin() {// 引数なしコンストラクタ

	}

	Shohin(String name, int price) {// 引数ありコンストラクタ
		this.price = price;
		this.name = name;
	}

	// セッタ
	public void setName(String name) {
		this.name = name;
	}

	public void setPrice(int price) {
		this.price = price;
	}

	// ゲッタ
	public String getName() {
		return this.name;
	}

	public int getPrice() {
		return this.price;
	}

	public void dispShohin() {// 名前と価格を標準出力
		System.out.println(this);
	}

	public String toString() {
		return name + "    " + price;
	}
}

// 商品クラスのサブクラス(出版社と在庫数をフィールドに持つ)
class ShohinBook extends Shohin {

	private String publisher;// 出版社の名前
	private int stock;// 在庫数

	public ShohinBook() {// 引数なしコンスタラクタ

	}

	ShohinBook(String name, int price, String publisher, int stock) {// 引数ありコンストラクタ
		super(name, price);
		this.publisher = publisher;
		this.stock = stock;
	}

	public void setPublisher(String publisher) {// 出版社のセッタ
		this.publisher = publisher;
	}

	public void setStock(int stock) {// 在庫数のセッタ
		this.stock = stock;
	}

	public String getPublisher() {// 出版社のゲッタ
		return this.publisher;
	}

	public int getStock() {// 在庫数のゲッタ
		return this.stock;
	}

	public String toString() {
		return getName() + "  " + getPrice() + "  " + publisher + "  " + stock;
	}

	public void incrementStock(int inc) {// 引数分在庫を増やす
		this.stock += inc;
	}

	public void decrementStock(int inc) {// 引数分在庫を減らす
		this.stock -= inc;

	}
}

public class ShouhinBookTest_1 {
	public static void main(String[] args) {
		ShohinBook sbt1 = new ShohinBook("リーダブルコード", 2400, "オライリー・ジャパン", 10);
		ShohinBook sbt2 = new ShohinBook("アジャイルソフトウェア開発の奥義
[asin:4797347783:detail]
", 5800, "ソフトバンククリエイティブ", 3);
		ShohinBook sbt3 = new ShohinBook("実践ハイパフォーマンスSQL", 2400, "オライリー・ジャパン", 5);
		ShohinBook sbt4 = new ShohinBook("徹底攻略Java SE Silver 問題集[1ZO-803]対応", 3200, "インプレスジャパン", 3);
		System.out.println(sbt1);
		System.out.println(sbt2);
		System.out.println(sbt3);
		System.out.println(sbt4);
	}
}

実行結果

リーダブルコード 2400 オライリー・ジャパン 10
アジャイルソフトウェア開発の奥義 5800 ソフトバンククリエイティブ 3
実践ハイパフォーマンスSQL 2400 オライリー・ジャパン 5
徹底攻略Java SE Silver 問題集[1ZO-803]対応 3200 インプレスジャパン 3

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

  • 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2012/06/23
  • メディア: 単行本(ソフトカバー)
  • 購入: 68人 クリック: 1,802回
  • この商品を含むブログ (130件) を見る
アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技

アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技

  • 作者: ロバート・C・マーチン,瀬谷啓介
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 2008/07/01
  • メディア: 大型本
  • 購入: 18人 クリック: 586回
  • この商品を含むブログ (71件) を見る
実践ハイパフォーマンスMySQL 第3版

実践ハイパフォーマンスMySQL 第3版

徹底攻略Java SE 7 Silver問題集[1Z0-803]対応 (ITプロ/ITエンジニアのための徹底攻略)

徹底攻略Java SE 7 Silver問題集[1Z0-803]対応 (ITプロ/ITエンジニアのための徹底攻略)

  • 作者: 志賀澄人,株式会社ソキウス・ジャパン
  • 出版社/メーカー: インプレスジャパン
  • 発売日: 2014/06/20
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る