回答編集履歴
2
スペルミス
answer
CHANGED
@@ -7,6 +7,6 @@
|
|
7
7
|
Donut scale(double ratio){
|
8
8
|
Circle newInner = new Circle(inner.r * ratio);
|
9
9
|
Circle newOuter = new Circle(outer.r * ratio);
|
10
|
-
return
|
10
|
+
return new Donut(newInner, newOuter);
|
11
11
|
}
|
12
12
|
```
|
1
メソッドイメージ
answer
CHANGED
@@ -1,3 +1,12 @@
|
|
1
1
|
数値型以外に*演算子は使えません。*演算子の片方がscaleメソッドが返すDonut型になっているため、コンパイルエラーになっています。
|
2
2
|
おそらくやりたいことは、innerとouterのそれぞれの円の半径をratio倍した新しいDonutを返したいということですよね?
|
3
|
-
であれば、thisが持つinnerとouterの半径をratio倍した新たなCircleを作り、それらをDonutコンストラクタに渡して生成したDonutインスタンスを返すようにしなければならないのでは?現状、仮にコンパイルが通ったとしても無限に再帰するメソッドになります。
|
3
|
+
であれば、thisが持つinnerとouterの半径をratio倍した新たなCircleを作り、それらをDonutコンストラクタに渡して生成したDonutインスタンスを返すようにしなければならないのでは?現状、仮にコンパイルが通ったとしても無限に再帰するメソッドになります。
|
4
|
+
|
5
|
+
Circleがどんなメンバを持っているかわからないのでイメージですが…
|
6
|
+
```java
|
7
|
+
Donut scale(double ratio){
|
8
|
+
Circle newInner = new Circle(inner.r * ratio);
|
9
|
+
Circle newOuter = new Circle(outer.r * ratio);
|
10
|
+
return nre Donut(newInner, newOuter);
|
11
|
+
}
|
12
|
+
```
|