以下のコードは、私の本のメソッドに関する章に記載されています。いくつかのことについて少し混乱しています。
run()
メソッドがメソッドを呼び出していると信じているとき、私の理解は正しいcreateFilledCircle
ですか?run()
メソッドは受信createFilledCircle
者で送信者ですか?- 3 つの場合
add(createFilledCircles...red,yellow and green);
、プログラマーはどの情報が引数で許可されているかをどのように知るのでしょうか?(x location, y location, width of figure, height of figure)
で使われているのはフォーマットadd(createFilledCircle)
ですか?
import acm.program.*;
import acm.graphics.*;
import java.awt.*;
public class StopLight extends ConsoleProgram {
public void run() {
double cy = getWidth() / 2 ;
double cx= getHeight() / 2;
double fx = cx - (FRAME_WIDTH / 2);
double fy = cy - (FRAME_HEIGHT /2 );
double dy = (FRAME_HEIGHT / 4 ) + (LAMP_RADIUS / 2);
GRect frame = new GRect (fx, fy, FRAME_WIDTH, FRAME_HEIGHT);
frame.setFilled(trye);
frame.setColor(Color.GRAY);
add(frame);
add(createFilledCircle(cx, cy-dy, LAMP_RADIUS, Color.RED));
add(createFilledCircle(cx, cy, LAMP_RADIUS, Color.YELLOW));
add(createFilledCircle(cx, cy + dy, LAMP_RADIUS, Color.GREEN));
}
private GOval createFilledCircle (double x, double y, double r, Color color) {
GOval circle = new GOval (x -r, y -r, 2 * r, 2 * y );
circle.setFilled(true);
circle.setColor(color);
return circle;
}
private static final double FRAME_WIDTH = 50;
private static final double FRAME_HEIGHT = 100;
private static final LAMP_RADIUS = 10;
}