【lesson 3-1】

八百屋を作る。
main() メソッドがあるクラスとは別に同じファイル内に Yaoya クラスを作る。
(同一ファイル内に複数のクラスを記述する場合2つ目のクラスからアクセス修飾子は不要)
Yaoya クラスはインスタンス化しないで利用する。
Yaoya クラスのフィールドに野菜の名前と値段を3つずつ作る。
main() メソッドで入力(1~3)を促して Yaoya クラスのメソッドを呼び出し名前と値段を出力。
(1~3)以外の数値が入力されたら八百屋の店長から冷たくあしらわれる。
解答例へ

【lesson 3-2】

lesson 3-1で作った八百屋を改変していく。
店の品物を1つ増やす。
main() メソッドでは八百屋をインスタンス化し八百屋のメソッドを1回呼ぶだけにする。
店に入ると1回だけ「いらっしゃい!」と言われる。
品物を何度でも買えるようにする。
範囲外の数値が入力されたら買い物終了。
1つも買ってなかったら店を追い出される。
1つでも買っていれば合計金額を示してお会計。
解答例へ

【lesson 3-3】

解答例へ

【lesson 3-4】

解答例へ

【lesson 3-5】

解答例へ

【3-1 解答例】

public class Shopping {

	public static void main(String[] args) {
		
		System.out.println("いらっしゃい!何にする?");
		System.out.println("入力してください(1~3)");
		System.out.println("1:carrot 2:potato 3:onion");
		Yaoya.buyVegetable(new java.util.Scanner(System.in).nextInt());
	}
}

class Yaoya {
	
	// 値段
	static int[] vPrice = {150, 200, 380}; 
	// 名前
	static String[] vName = {"carrot", "potato", "onion"};
	
	// 野菜を買うよ!
	static void buyVegetable(int n) {
		if(n < 1 || 3 < n ) {
			System.out.println("冷やかしはやめとくれ");
		} else {
			n--;
			System.out.println(vName[n] + ":" + vPrice[n]);
			System.out.println("毎度あり~!");
		}
	}
}
main() メソッドが static なので Yaoya クラスのメンバ(フィールドとメソッド)はすべて static になる。
問題に戻る

【3-2 解答例】

public class Shopping {

	public static void main(String[] args) {
		Yaoya y = new Yaoya();
		y.introduction();
	}
}

class Yaoya {
	
	// フィールド
	// 値段
	int[] vPrice = {150, 200, 380, 270}; 
	// 名前
	String[] vName = {"carrot", "potato", "onion", "mushroom"};
	// 合計金額
	int totalPrice = 0;

	// 挨拶するよ!
	void introduction() {
		System.out.println("いらっしゃい!");
		loop();
	}
	
	// 何度でも買えるよ!
	void loop() {
		while(true) {
			System.out.println("何にする?");
			System.out.println("入力してください(1~" + vName.length + ")");
			System.out.println("1:carrot 2:potato 3:onion 4:mushroom");
			int usrInput = new java.util.Scanner(System.in).nextInt();
			// 入力が範囲外ならループを抜けるよ!
			if(usrInput < 1 || this.vName.length < usrInput) break;
			buyVegetable(usrInput);
		}
		if(this.totalPrice == 0) {
			System.out.println("一昨日来やがれ!");
		} else {
			System.out.println(totalPrice + "円お買い上げ");
			System.out.println("今後ともご贔屓に");
		}
	}
	
	// 野菜を買うよ!
	void buyVegetable(int n) {
		n--;
		System.out.println(this.vName[n] + ":" + this.vPrice[n]);
		System.out.println("毎度あり~!");
		this.totalPrice += this.vPrice[n];
	}
}
Yaoyaクラスはインスタンス化するので static はすべて外す。
Yaoyaクラスのメソッドは1つにまとめても良い。
問題に戻る

【3-3 解答例】


問題に戻る

【3-4 解答例】


問題に戻る

【3-5 解答例】


問題に戻る