クラスの宣言

フィールドの宣言

public class People {
    String name; // フィールド宣言
    int hp; // フィールド宣言
    int level = 10; // 初期値指定
    final int GOLD = 1000; // 定数指定
}

メソッドの宣言

public class People {
    String name; //属性
    int hp; // 属性

    public void sleep() {
        this.hp = 100; // メソッド内でフィールド宣言には「this」をつける
        System.out.println( this.name + "は眠って回復した" );
    }
    public void sit( int sec ) {
        this.hp += sec;
        System.out.println( this.name + "は、" + sec + "秒座った" );
        System.out.println( "HPが" + sec + "ポイント回復した" );
    }
}

クラス名、属性、メソッド名のルール

対象品詞大文字/小文字の用法
クラス名名詞単語の頭が大文字People, Items
フィールド名名詞最初以外の単語の頭が大文字level, itemList
メソッド名動詞最初以外の単語の頭が大文字attack, poisonAttack

クラスのインスタンス

public class Main {
    public static void main() {
        People p = new People(); //クラス名 変数名 = new クラス呼び出し

        // フィールドへ値を代入
        p.name = "Test"; // 変数名.フィールド名
        p.hp = 200;
        System.out.println( p.name + "の体力は今" + p.hp + "ある" );

        // クラスのメソッド呼び出し
        p.sleep(); // 変数名.メソッド名
    }
}
public class People {
    String name; // フィールド宣言
    int hp; // フィールド宣言
    public void sleep() {
        this.hp = 100; // メソッド内でフィールド宣言には「this」をつける
        System.out.println( this.name + "は眠って回復した" );
    }
}

インスタンスの参照渡し

クラスのインスタンス後に、別の変数に渡したとしても変数の番地を渡すだけなので、どっちも同じ内容を更新できてしまう。

別々にインスタンスする場合には、newをつけて新しく宣言する必要がある

public class Main {
    public static void main() {
        People p = new People(); //クラス名 変数名 = new クラス呼び出し
       People p2 = p;
        p.hp = 100;
        System.out.println( p2.hp ); // 100になる
    }
}
public class People {
    String name; // フィールド宣言
    int hp; // フィールド宣言
    public void sleep() {
        this.hp = 100; // メソッド内でフィールド宣言には「this」をつける
        System.out.println( this.name + "は眠って回復した" );
    }
}

has-a関係

TOP