#navi(Programming_II/10)
#contents

*出席 [#t667039d]
-[[moodle:https://tarkus.eva.ie.u-ryukyu.ac.jp/moo/]]
*クラスとインスタンス [#j0a77376]
(教科書11章)
**クラス宣言 [#y7985113]
 public class クラス名 {
     フィールドの宣言
     メソッドの宣言
 }
**拡張クラス宣言 [#ka2e3269]
 class MyThead extends Thread {
  ...
 }

**インタフェースを実装したクラスの宣言 [#xd4c888a]
 class MyRunner implements Runnable {
  ...
 }

*フィールドとメソッド [#s150fee7]
List 11-1
#code(java){{
class Rectangle {
	int width;
	int height;
	void setSize(int w, int h){
		width = w;
		height = h;
	}
	int getArea() {
		return width * height;
	}
}
}}
*インスタンスの作り方 [#d76cba20]
 Rectangle r = new Rectangle();

*フィールドへのアクセス [#h1cb46ad]
 Rectangle r = new Rectangle();
 r.width = 123;
 r.height = 45;

 System.out.println("幅は" + r.width);
 System.out.println("高さは" + r.heigth);
*メソッドの呼び出し [#l6e81514]
 Rectangle r = new Rectangle();
 r.setSize(123, 45);

*コンストラクタの利用 [#w46081d3]
#code(java){{
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);

**例 [#h3ce0820]
List 11-7 (教科書20ページ)
#code(java){{
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());
    }
}
}}
*クラスフィールドとクラスメソッド [#xde8d935]
-クラスフィールド
-クラス変数
-スタティックフィールド


#code(java){{
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()メソッド [#f581fa32]
そのクラスのインスタンスの標準的な文字列表現を定めます.

#code(Java){{
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メソッドを呼び出すと,戻り値の文字列をそのインスタンスの文字列表現として扱う.
*クラスメソッド [#k6d7ed01]

*修飾子 [#u9db5481]
-final
-abstract
-static
-synchronized
-native

#navi(Programming_II/10)

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