出席

クラスとインスタンス

(教科書11章)

クラス宣言

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

拡張クラス宣言

class MyThead extends Thread {
 ...
}

インタフェースを実装したクラスの宣言

class MyRunner implements Runnable {
 ...
}

フィールドとメソッド

List 11-1

Expand allFold all
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
-
|
|
-
|
|
!
-
|
!
!
class Rectangle {
    int width;
    int height;
    void setSize(int w, int h){
        width = w;
        height = h;
    }
    int getArea() {
        return width * height;
    }
}

インスタンスの作り方

Rectangle r = new Rectangle();

フィールドへのアクセス

Rectangle r = new Rectangle();
r.width = 123;
r.height = 45;
System.out.println("幅は" + r.width);
System.out.println("高さは" + r.heigth);

メソッドの呼び出し

Rectangle r = new Rectangle();
r.setSize(123, 45);

コンストラクタの利用

Expand allFold all
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
-
|
|
|
-
|
!
|
-
|
|
!
|
-
|
!
!
class Rectangle {
    int width;
    int height;
 
    Rectangle(int w, int h){
        setSize(w, h);
    }
 
    void setSize(int w, int h){
        width = w;
        height = h;
    }
 
    int getArea() {
        return width * height;
    }
}

コンストラクタがある場合:

Rectangle r = new Rectangle(123, 45);

List 11-7 (教科書20ページ)

Expand allFold all
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
-
|
|
|
-
|
!
|
-
|
!
|
-
|
|
!
|
-
|
!
|
-
|
|
|
|
|
|
|
|
!
!
class Rectangle {
    int width;
    int height;
 
    Rectangle(){
        setSize(10, 20);
    }
 
    Rectangle(int w, int h){
        setSize(w, h);
    }
 
    void setSize(int w, int h){
        width = w;
        height = h;
    }
 
    int getArea() {
        return width * height;
    }
    
    public static void main(String[] args){
        Rectangle r1 = new Rectangle();
        System.out.println("r1.width = " + r1.width);
        System.out.println("r1.height = " + r1.height);
        System.out.println("r1.getArea() = " + r1.getArea());
        Rectangle r2 = new Rectangle(123, 45);
        System.out.println("r2.width = " + r2.width);
        System.out.println("r2.height = " + r2.height);
        System.out.println("r2.getArea() = " + r2.getArea());
    }
}

クラスフィールドとクラスメソッド

(下巻 P.23)

  • クラスフィールド
  • クラス変数
  • スタティックフィールド
Expand allFold all
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
-
|
|
|
|
|
-
|
|
|
!
|
-
|
|
|
!
|
-
|
|
!
|
-
|
!
|
-
|
!
|
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!
!
class Rectangle {
    static int counter = 0;
    int width;
    int height;
    int number;
 
    Rectangle(){
        setSize(10, 20);
    number = counter;
    counter++;
    }
 
    Rectangle(int w, int h){
        setSize(w, h);
    number = counter;
    counter++;
    }
 
    void setSize(int w, int h){
        width = w;
        height = h;
    }
 
    int getArea() {
        return width * height;
    }
 
    public String toString(){
        return "幅= " + width + " 高さ= "+ height + "だよ";
    }
 
    public static void main(String[] args){
        Rectangle r1 = new Rectangle();
        System.out.println("r1.width = " + r1.width);
        System.out.println("r1.height = " + r1.height);
        System.out.println("r1.getArea() = " + r1.getArea());
        System.out.println("r1.number = " + r1.number);
        System.out.println("r1.counter = " + r1.counter);
        Rectangle r2 = new Rectangle(123, 45);
        System.out.println("r2.width = " + r2.width);
        System.out.println("r2.height = " + r2.height);
        System.out.println("r2.getArea() = " + r2.getArea());
    System.out.println("r2.number = " + r2.number);
        System.out.println("r2.counter = " + r2.counter);
 
        System.out.println("r1.number = " + r1.number);
        System.out.println("r1.counter = " + r1.counter);
 
        System.out.println(r1);
        System.out.println(r2);
 
    }
}

toString()メソッド

そのクラスのインスタンスの標準的な文字列表現を定めます.

Expand allFold all
  1
  2
  3
  4
  5
  6
-
|
-
|
!
!
class Rectangle{
    ...
    public String toString(){
        return "[ width = " + width + ", height = " + height + "]";
    }
}

以下のように記述する.

Rectangle r = new Rctangle(123, 45);
System.out.println(r);

以下のように表示される.

width= 123, height = 45

r.toStringメソッドを呼び出すと,戻り値の文字列をそのインスタンスの文字列表現として扱う.

クラスメソッド

修飾子

  • final
  • abstract
  • static
  • synchronized
  • native

第3回レポート

  • 12月17日に開催するロボコード大会のためにオリジナルロボットのプログラムを作成し提出せよ. 条件:オリジナルであること.
    • ソースにコメントで,説明をつけること
    • 公開されているロボコードソースを引用した場合でも,自分でさらなる説明をつけること.
    • 大会後,上位者,下位者は,登壇し全員に対しソースの説明,勝因(もしくは,敗因)等をプレゼンすること.
  • package名:e12
  • ロボット名(ロボットクラス名):E1257XX_3(学生番号)
    • javaファイルが複数ある場合,学籍番号_3というフォルダを作り(E125701_3),上記ファイルを入れて,zip圧縮して,そのファイルをアップロードせよ. (例:E125701_3.zip)
  • 締め切り:12月10日正午
  • 提出先:moodle

フォロー



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