abstractmachine >> Polymorphism
abstractmachine >> abstract classes
ポリモーフィズムね、抽象クラスね。やったやった。でも使い方全然わかってなかった。本当こういうテクニックって、できる人にとっては言うまでもないことで、僕くらいの知識だと思いつかないからなかなか共有されないんだよね。ここで駄目なやり方として紹介されてるswitch文で書いてた。
Polymorphismのはdouglasのページのをそのまま実行すればいいとして、abstract classesでのやつをやってみた。これでいいのかな。確かに変数のことで悩まなくて済むしコードも綺麗だ。Head First Javaで勉強し直そう...。
abstract class Animation {
void setup() {
background(255);
}
abstract void draw();
}
class Opening extends Animation {
int i=0;
void draw() {
background(255);
if(i>width) {
i=0;
}
line(i, 0, i, height);
i++;
}
}
class Middle extends Animation {
int i=0;
void draw() {
background(255);
if(i>height) {
i=0;
}
line(0, i, width, i);
i++;
}
}
class Ending extends Animation {
void draw() {
background(random(255));
}
}
Animation myAnimation;
void setup() {
myAnimation = new Opening();
}
void draw() {
myAnimation.draw();
}
void keyPressed() {
switch(key) {
case 'a':
myAnimation = new Opening();
break;
case 'b':
myAnimation = new Middle();
break;
case 'c':
myAnimation = new Ending();
break;
}
}
0 件のコメント:
コメントを投稿