Objects 0bjt2219 齋間 裕介 オブジェクトとは • 一般的なobject意味は物、目標物、対象である。 • プログラミングでのobjectはオブジェクト指向を示して いる。 オブジェクト指向(1) • 変数はフィールド関数はメソッドと呼ばれています。 • たくさんの値をもつことができる。 例えば、PImage, PFont, String, Pshapeの正体はオブ ジェクトなのです。 オブジェクト指向(2) • main関数のdraw()から要求をだす。 • オブジェクトであるclass [名前]が要求を処理する • main関数のdraw()が処理を使う オブジェクト指向メリット • 一回作ったオブジェクトを使いまわすことができる • プログラムを短くできる。 • データを管理しやすくなる。 クラスとオブジェクト • オブジェクトを作る前にクラスを定義する。 • クラス定義するときにすること ・フィールドとメソッドを決める ・わかりやすい名前をつける クラスを定義(1) • フィールドの決定 float x float y int diameter float speed • メソッドの決定 void move() void display() クラスを定義(2) • クラスを書く 1.ブロック作成 2.フィールド追加 3.コンストラクタの作成とフィールドへの代入 4.メソッド追加 クラスを定義(3) //ブロック class Object{ //フィールド float x; float y; int diamerter; float speed=3; //コンストラクタ Object(float temp X, float Y ,int tempDiameter){ x=tempX; y=tempY; diameter =tempDiameter; } //メソッド void move(){ x +=random(-speed,-speed); y +=random(-speed,speed); } void display(){ ellipse(x,y,dianeter,diameter); } } オブジェクトを作る Object A; //オブジェクト変数を宣言 void setup(){ size(480,120); //オブジェクト生成 A=new Object(width,height/2,30); void draw(){ A.move(); A.display(); } //Objectクラスコード をコピー 演習1 • 以下のような複数のオブジェクトを作ってください • 大きさや位置は特に気にしないで、数は二個以上にしてください • 「円の動く幅」と「円の表示」は、それぞれ別のメソッドにしてく ださい. • ファイル名は「ex1」で保存してください 演習1-解答例 Object A;//オブジェクト宣言 Object B; void setup() { size(480, 120); smooth(); //オブジェクト生成 A = new Object(width*0.33,height/2,50); B = new Object(width*0.66,height/2,30); } void draw(){ A.move(); A.display(); B.move(); B.display(); } class Object{//ブロック float x; //フィールド float y; int diameter; float speed = 3; //コンストラクタ Object(float tempX, float tempY, int tempDiameter) { x = tempX; y = tempY; diameter = tempDiameter; } //メソッド void move() { x += random(-speed, speed); y += random(-speed, speed); } void display() { ellipse(x, y, diameter, diameter); } } タブ機能 ここを押すとNew Tabと あるのでクリックする クリックしたあとこれがでるので オブジェクト名を入れる オブジェクト部分を切り取って、 タブに貼り付ける。 長いコードが編集しやすくなり 、管理も容易になる。 演習2 • 演習1で作成したプログラムのオブジェクトを タブに移動させてください • ファイル名は「ex2」で保存してください 演習2-解答 オブジェクト以外 オブジェクト部分 宿題 • Objectを使っていろいろな図形を作ってください • タブなどを有効に使ってください • ファイル名は「kadai9」で保存してください
© Copyright 2024 ExpyDoc