#navi(Programming_II/14)

#contents
//*moodleへログイン [#ad894d11]
//-[[moodle:https://tarkus.eva.ie.u-ryukyu.ac.jp/moo/]]
*メソッド(static method) [#jd938356]
(Text 第8章pp.188)

 戻り値の型 メソッド名(引数列)
 {
     処理;
     return文;
 }


Avarage1.java
#code(Java){{
public class Avarage1{
    public static void main(String[] args){
        int yamada, ueda, oda;
        double avarage;
        
        yamada = 99;
        ueda = 47;
        oda = 64;
        avarage = (yamada + ueda + oda)/3.0;
 
        System.out.println("山田は" + yamada + "点");
        System.out.println("上田は" + ueda + "点");
        System.out.println("小田は" + oda + "点");
        System.out.println("平均点は" + avarage + "点");
    }
}
}}

AvarageM.java
#code(Java){{
public class AvarageM{
    public static void main(String[] args){
        int yamada, ueda, oda;
        double av;
        
        yamada = 99;
        ueda = 47;
        oda = 64;
        av = avarage(yamada,ueda,oda);
 
        System.out.println("山田は" + yamada + "点");
        System.out.println("上田は" + ueda + "点");
        System.out.println("小田は" + oda + "点");
        System.out.println("平均点は" + av + "点");
    }

    public static double  avarage(int a, int b, int c){
        return (a + b + c)/3.0;
    }
}
}}

Graph1.java
#code(Java){{
public class Graph1 {
    public static void main(String[] args) {
        printGraph(10);
    }
    public static void printGraph(int x) {
        for (int i = 0; i < x; i++) {
            System.out.print("*");
        }
        System.out.println("");
    }
}
}}

Power1.java
#code(Java){{
public class Power1 {
    public static void main(String[] args) {
        System.out.println(getPower(8, 2));
    }
    /* x の n 乗の計算 */
    public static int getPower(int x, int n) {
        int y = 1;
        for (int i = 0; i < n; i++) {
            y = y * x;
        }
        return y;
    }
}
}}
*オブジェクト指向へ向けて [#m54bd633]
メソッドtoStringは、オブジェクトの情報を文字列で返すメソッド
~
Avarage7.java
#code(java){{
public class Avarage7{
    public static void main(String[] args){
        Seiseki[] seiseki = {
            new Seiseki("山田", 99),
            new Seiseki("上田", 47),
            new Seiseki("小田", 64),
            new Seiseki("幸田", 43),
            new Seiseki("井田", 72),
        }; 
        int sum = 0;
        for (int i = 0; i < seiseki.length; i++){
                System.out.println(seiseki[i]);
                sum += seiseki[i].point;
        }
        double avarage = (double) sum / seiseki.length;
        System.out.println("平均点は" + avarage + "点");
    }
}
}}

Seiseki.java:
#code(java){{
public class Seiseki{
    String name;
    int point;

    public Seiseki(String name, int point){
        this.name = name;
        this.point = point;
    }

    public String toString(){
      return name + "は" + point + "点";
    }
}
}}

コンパイル:
 $ javac Avarage7.java Seiseki.java
実行:
 $ java Avarage7
**クラスとインスタンス [#adbdac3c]

-クラスは,関連した情報をひとつにまとめたもの
-クラスは,フィールドとメソッドを持つ.
--フィールドは,変数のようなもの
--メソッドは,関数のようなもの
-クラスから作られた「具体的なもの」(具体例,実体,実例)をインスタンスという.

-クラス宣言
 public class クラス名 {
     フィールドの宣言
     メソッドの宣言
 }

-インスタンスの作り方
 クラス名  変数  =  new  クラス名();
-フィールドへの代入
 インスタンス.フィールド名 = 値;
**コンストラクタとメソッド [#y2fe2649]

-コンストラクタは,インスタンスの初期化を行うもの.
--コンストラクタは,クラス名と名前が同じ.
--戻り値の型が書かれていない.
-thisは,現在のインスタンスを示す.

-toStringメソッドは,そのクラスの標準的な文字列表現を定めている.
**クラスの利用 [#f3609d98]

-クラスは,フィールドとメソッドを持っている
--フィールドには,インスタンスフィールドと,クラスフィールドの2種類ある.
--メソッドには,インスタンスメソッドと,クラスメソッドの2種類ある,
~クラス宣言の枠組み
#code(){{
public class クラス名{
	型	フィールド名;
	型	フィールド名;
	型	フィールド名;

	型	メソッド名( 引数列 ) {
		型	変数名;

	}

	型	メソッド名( 引数列 ) {
		型	変数名;

	}

}
}}


*主なロボットのmethod [#j35d5d6d]
ロボットの色
 setColors(ボディの色, 砲塔の色, レーダーの色);
 setColors(Color.red,Color.blue,Color.green);

 選べる色:
 black, darkGray, lightGray, gray, green, cyan, blue, magenda, red, orange, pink, white, yellow

ロボットの動作:
|前進|ahead(距離)|
|後退|back(距離)|
|右回転|turnRight(角度)|
|左回転|turnLeft(角度)|
|砲塔右回転|turnGunRight(角度)|
|砲塔左回転|turnGunLeft(角度)|
|レーダー右回転|turnRadarRight(角度)|
|レーダー左回転|turnRadarLeft(角度)|

ロボットの情報収集:
|進行方向(絶対角度)|getHeading()|
|スピード|getVelocity()|
|X座標|getX()|
|Y座標|getY()|
|砲塔方向(絶対角度)|getGunHeading()|
|エネルギー|getEnergy()|
|名前|getName()|
|幅|getWidth()|
|高さ|getHeight()|

バトルフィールドの情報:
|幅|getBattleFieldWidth()|
|高さ|getBattleFieldHeight()|

さまざまなイベント:
|イベント内容|イベントメソッド|引数|h
|敵を発見した場合|onScannedRobot()|ScannedRobotEvent e|
|敵の攻撃を受けた場合|onHitBybullet()|HitByBulletEvent e|
|壁に衝突した場合|OnHitWall()|HitWallEvent e|
|他のロボットと衝突した場合|onHitRobot()|HitRobotEvent e|
|ロボットが勝ち残った場合|onWin()|WinEvent e|
//*課題 [#g86a993a]
//-[[moodle:https://tarkus.eva.ie.u-ryukyu.ac.jp/moo/]]で本日の課題をやりなさい
//*第3回レポート [#b7fb9b59]
//
//-12月26日に開催するロボコード大会のためにオリジナルロボットのプログラムを作成し提出せよ.
//条件:オリジナルであること.
//--ソースにコメントで,説明をつけること
//--公開されているロボコードソースを引用した場合でも,自分でさらなる説明をつけること.
//--大会後,上位者,下位者は,登壇し全員に対しソースの説明,勝因(もしくは,敗因)等をプレゼンすること.
//-package名:e11
//-ロボット名(ロボットクラス名):E1157XX_3(学生番号)
//--javaファイルが複数ある場合,学籍番号_3というフォルダを作り(E105701_3),上記ファイルを入れて,zip圧縮して,そのファイルをアップロードせよ. (例:E115701_3.zip)
//-締め切り:12月19日正午
//-提出先:moodle
//*フォロー 
//-Emacsで[[開いている文書の文字コードを変更するには>Emacs/文字コード]]

#navi(Programming_II/14)


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS