コメントは斎藤が修正・追加
//教科書 99ページ List7.1 Circle3.java
import java.applet.Applet;
import java.awt.*;
class Circle3 {
private int x;
private int y;
private int r;
// コンストラクタ(構築子)その1
public Circle3(int vx, int vy, int vr){
x = vx;
y = vy;
r = vr;
}
// コンストラクタ(構築子)その2
public Circle3(int vy){
x = y = 0;
r = vy;
}
// アクセスメソッド
public int xPosition() { return x; }
public int yPosition() { return y; }
public int radius() { return r; }
public void moveTo(int newX, int newY) {
x = newX;
y = newY;
}
public void draw(Graphics g) {
g.drawOval(x-r, y-r, 2*r+1, 2*r+1);
}
}
//教科書 100ページ List7.2 ColoredCircle.java
import java.awt.*;
class ColoredCircle extends Circle3 {
private Color c;
//コンストラクタ(構築子)その1 X,Y座標指定
public ColoredCircle (int vx, int vy, int vr, Color vc){
super (vx, vy, vr); //親クラスのコンストラクタ(構築子)呼出し
c = vc;
}
//コンストラクタ(構築子)その2 X,Y座標デフォルト使用
public ColoredCircle (int vr, Color vc){
super (vr); //親クラスのコンストラクタ(構築子)呼出し
c = vc;
}
public void draw(Graphics g){
Color currentColor = g.getColor(); //現在のペンの色を保存
g.setColor(c); //ペンの色を設定
super.draw(g); //親クラスのdrawを使い,円を描く
g.setColor(currentColor); //ペンの色を元に戻す
}
}
// 教科書 104ページ List7.3 ColoredCircleTest.java
import java.applet.Applet;
import java.awt.*;
public class ColoredCircleTest extends Applet {
public void paint(Graphics g){
//3つの円を緑,青,赤で生成
ColoredCircle a = new ColoredCircle(50,50,10,Color.green);
ColoredCircle b = new ColoredCircle(50,50,20,Color.blue);
ColoredCircle c = new ColoredCircle(50,50,30,Color.red);
//3つの円を表示
a.draw(g);
b.draw(g);
c.draw(g);
}
}