オブジェクト指向へ向けて

メソッドtoStringは、オブジェクトの情報を文字列で返すメソッド
Avarage7.java

Expand allFold all
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
-
-
-
|
|
|
|
|
!
|
-
|
|
!
|
|
!
!
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:

Expand allFold all
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
-
|
|
|
-
|
|
!
|
-
|
!
!
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

クラスとインスタンス

  • クラスは,関連した情報をひとつにまとめたもの
  • クラスは,フィールドとメソッドを持つ.
    • フィールドは,変数のようなもの
    • メソッドは,関数のようなもの
  • クラスから作られた「具体的なもの」(具体例,実体,実例)をインスタンスという.
  • クラス宣言
    public class クラス名 {
        フィールドの宣言
        メソッドの宣言
    }
  • インスタンスの作り方
    クラス名  変数  =  new  クラス名();
  • フィールドへの代入
    インスタンス.フィールド名 = 値;

コンストラクタとメソッド

  • コンストラクタは,インスタンスの初期化を行うもの.
    • コンストラクタは,クラス名と名前が同じ.
    • 戻り値の型が書かれていない.
  • thisは,現在のインスタンスを示す.
  • toStringメソッドは,そのクラスの標準的な文字列表現を定めている.

クラスの利用

  • クラスは,フィールドとメソッドを持っている
    • フィールドには,インスタンスフィールドと,クラスフィールドの2種類ある.
    • メソッドには,インスタンスメソッドと,クラスメソッドの2種類ある,

      クラス宣言の枠組み

        1
        2
        3
        4
        5
        6
        7
        8
        9
       10
       11
       12
       13
       14
       15
       16
      
      public class クラス名{
      	型	フィールド名;
      	型	フィールド名;
      	型	フィールド名;
       
      	型	メソッド名( 引数列 ) {
      		型	変数名;
      		…
      	}
       
      	型	メソッド名( 引数列 ) {
      		型	変数名;
      		…
      	}
       
      }

課題

  • 次回(1月7日)に開催するロボコード大会のためにオリジナルロボットのプログラムを作成し提出せよ.
  • 締切り:1月7日正午
  • 提出方法:moodle https://www.eva.ie.u-ryukyu.ac.jp/moo
  • 条件:オリジナルであること.
    • ソースにコメントで,説明をつけること
    • 公開されているロボコードソースを引用した場合でも,自分でさらなる説明をつけること.
  • 大会上位者,下位者は,登壇し全員に対しソースの説明,勝因(もしくは,敗因)等をプレゼンすること.
  • package名:e08
  • ロボット名(ロボットクラス名):e0757XX(学生番号)

提出ファイルは,e0757XX.javaのような,javaファイルになります.



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-06-20 (木) 14:45:23 (2286d)