回答編集履歴
4
public 化
test
CHANGED
@@ -21,16 +21,16 @@
|
|
21
21
|
private Amount unitprice;
|
22
22
|
private int quantity;
|
23
23
|
|
24
|
-
Stationary(String name, Amount unitprice, int quantity) {
|
24
|
+
public Stationary(String name, Amount unitprice, int quantity) {
|
25
25
|
this.name = name;
|
26
26
|
this.unitprice = unitprice;
|
27
27
|
this.quantity = quantity;
|
28
28
|
showValue();
|
29
29
|
}
|
30
|
-
Amount calcTotalAmount() {
|
30
|
+
public Amount calcTotalAmount() {
|
31
31
|
return unitprice.multiply(quantity);
|
32
32
|
}
|
33
|
-
void showValue() {
|
33
|
+
public void showValue() {
|
34
34
|
System.out.println(name + " が " + quantity + " 本あります");
|
35
35
|
}
|
36
36
|
}
|
@@ -38,19 +38,19 @@
|
|
38
38
|
final class Amount {
|
39
39
|
private final int value;
|
40
40
|
|
41
|
-
Amount(int value) {
|
41
|
+
public Amount(int value) {
|
42
42
|
this.value = value;
|
43
43
|
}
|
44
|
-
Amount add(Amount addend) {
|
44
|
+
public Amount add(Amount addend) {
|
45
45
|
return new Amount(value + addend.value);
|
46
46
|
}
|
47
|
-
Amount multiply(int multiplicand) {
|
47
|
+
public Amount multiply(int multiplicand) {
|
48
48
|
return new Amount(value * multiplicand);
|
49
49
|
}
|
50
|
-
Amount addTax() {
|
50
|
+
public Amount addTax() {
|
51
51
|
return new Amount((int)(value * 1.08));
|
52
52
|
}
|
53
|
-
void showValue() {
|
53
|
+
public void showValue() {
|
54
54
|
System.out.println("金額は " + value + " 円です");
|
55
55
|
}
|
56
56
|
}
|
3
コード追加
test
CHANGED
@@ -13,4 +13,45 @@
|
|
13
13
|
以上から、 `System.out.println(name + " が " + quantity + " 本あります");` は Stationary のコンストラクタで行うと良いように思います。
|
14
14
|
|
15
15
|
もちろん、 Amount の修正も OK ということですので、設計を変えて (Amount という名前ながらも ) イロイロ載せて解決する方法もあります。その為のコーディング要素を勉強されているかは不明ですが。
|
16
|
+
|
17
|
+
私が思ったのはこんな風です。
|
18
|
+
```java
|
19
|
+
class Stationary {
|
20
|
+
private String name;
|
21
|
+
private Amount unitprice;
|
22
|
+
private int quantity;
|
23
|
+
|
24
|
+
Stationary(String name, Amount unitprice, int quantity) {
|
25
|
+
this.name = name;
|
26
|
+
this.unitprice = unitprice;
|
27
|
+
this.quantity = quantity;
|
28
|
+
showValue();
|
29
|
+
}
|
30
|
+
Amount calcTotalAmount() {
|
31
|
+
return unitprice.multiply(quantity);
|
32
|
+
}
|
33
|
+
void showValue() {
|
34
|
+
System.out.println(name + " が " + quantity + " 本あります");
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
final class Amount {
|
39
|
+
private final int value;
|
40
|
+
|
41
|
+
Amount(int value) {
|
42
|
+
this.value = value;
|
43
|
+
}
|
44
|
+
Amount add(Amount addend) {
|
45
|
+
return new Amount(value + addend.value);
|
46
|
+
}
|
47
|
+
Amount multiply(int multiplicand) {
|
16
|
-
|
48
|
+
return new Amount(value * multiplicand);
|
49
|
+
}
|
50
|
+
Amount addTax() {
|
51
|
+
return new Amount((int)(value * 1.08));
|
52
|
+
}
|
53
|
+
void showValue() {
|
54
|
+
System.out.println("金額は " + value + " 円です");
|
55
|
+
}
|
56
|
+
}
|
57
|
+
```
|
2
修正
test
CHANGED
@@ -13,4 +13,4 @@
|
|
13
13
|
以上から、 `System.out.println(name + " が " + quantity + " 本あります");` は Stationary のコンストラクタで行うと良いように思います。
|
14
14
|
|
15
15
|
もちろん、 Amount の修正も OK ということですので、設計を変えて (Amount という名前ながらも ) イロイロ載せて解決する方法もあります。その為のコーディング要素を勉強されているかは不明ですが。
|
16
|
-
(Amount への修正は `Amount multiply(int multiplicand) { return new Amount(
|
16
|
+
(Amount への修正は `Amount multiply(int multiplicand) { return new Amount(value * multiplicand); }` レベルの想定な気はします。 )
|
1
追加
test
CHANGED
@@ -13,3 +13,4 @@
|
|
13
13
|
以上から、 `System.out.println(name + " が " + quantity + " 本あります");` は Stationary のコンストラクタで行うと良いように思います。
|
14
14
|
|
15
15
|
もちろん、 Amount の修正も OK ということですので、設計を変えて (Amount という名前ながらも ) イロイロ載せて解決する方法もあります。その為のコーディング要素を勉強されているかは不明ですが。
|
16
|
+
(Amount への修正は `Amount multiply(int multiplicand) { return new Amount(this.value * multiplicand); }` レベルの想定な気はします。 )
|