16. クラス

16. クラス

クラスの作成

lesson 038

class Lesson038 {
    public static void main(String args[]) {
        neko rena = new neko();
        neko yuki = new neko();
        neko mimi = new neko();

        rena.name = "レナ";
        rena.love = 186;
        yuki.name = "ユキ";
        yuki.love = 549;
        mimi.name = "ミミ";
        mimi.love = 325;

        System.out.println("名前\t\t好感度");
        System.out.println(rena.name + "\t\t" + rena.love);
        System.out.println(yuki.name + "\t\t" + yuki.love);
        System.out.println(mimi.name + "\t\t" + mimi.love);
    }
}
class neko {
    String name;
    int    love;
}

実行結果

L:\>java Lesson038
名前 好感度
レナ 186
ユキ 549
ミミ 325

デフォルト値

lesson 039

class Lesson039 {
    public static void main(String args[]) {
        neko rena = new neko();
        rena.nekoj = 726;
        rena.love += 300;
        System.out.println("名前\t好感度\t猫常識\t人常識");
        System.out.println(rena.name + "\t" + rena.love + "\t" + rena.nekoj + "\t" + rena.hitoj);
    }
}
class neko {
    String name = "レナ";
    int nekoj;
    int hitoj   = 84;
    int love    = 200;
}

実行結果

L:\>java Lesson039
名前 好感度 猫常識 人常識
レナ 500 726 84

多重参照

lesson 040

class Lesson040 {
    public static void main(String args[]) {
        B objB = new B();
        System.out.println(objB.objA.str);
    }
}
class A {
    String str = "Kitty on your lap";
}
class B {
    A objA = new A();
}

実行結果

L:\>java Lesson040
Kitty on your lap

nullポインタ

lesson 041

class Lesson041 {
    public static void main(String args[]) {
        B objB = new B();
        System.out.println(objB.objA.str);
    }
}
class A {
    String str = "Kitty on your lap";
}
class B {
    A objA;
}

実行結果

L:\>java Lesson041
Exception in thread "main" java.lang.NullPointerException
at Lesson041.main(lesson041.java:4)

nullポインタへの対処

lesson 042

class Lesson042 {
    public static void main(String args[]) {
        B objB = new B();
        if (objB.objA == null) {
            System.out.println("nullを参照しました。インスタンス化します");
            objB.objA = new A();
        }
        System.out.println(objB.objA.str);
    }
}
class A {
    String str = "Kitty on your lap";
}
class B {
    A objA;
}

実行結果

L:\>java Lesson042
nullを参照しました。インスタンス化します
Kitty on your lap

オブジェクト型の配列

lesson 043

class Lesson043 {
    public static void main(String args[]) {
        Kitty obj[] = new Kitty[10];
        for (int i = 0 ; i < 10 ; i++) {
            obj[i] = new Kitty();
            obj[i].str = "Kitty " + i;
        }
        for (int i = 0 ; i < 10 ; i++)
             System.out.println(obj[i].str);
    }
}
class Kitty {
    String str;
}

実行結果

L:\>java Lesson043
Kitty 0
Kitty 1
Kitty 2
Kitty 3
Kitty 4
Kitty 5
Kitty 6
Kitty 7
Kitty 8
Kitty 9