#navi(Programming_II/11)
#contents

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

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

*フィールドとメソッド [#a6022e95]
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;
	}
}
}}
*インスタンスの作り方 [#p329e3dc]
 Rectangle r = new Rectangle();

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

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

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

**例 [#a96b8f85]
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());
    }
}
}}
*クラスフィールドとクラスメソッド [#m9e0296f]
-クラスフィールド
-クラス変数
-スタティックフィールド


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

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

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

#navi(Programming_II/11)


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