Javaでクラスのオブジェクトを一意にするには、1つのオブジェクトしか作成できません.

3721 ワード

方法一、
対象の唯一性は一般的に工場モデル、単例モデルを考えることができますが、ここでは例の怠け者法を紹介します.
package com.liuyanzhao;
class Student {
    private String name;
    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    private Student() {
    }
    private static Student s = new Student();
    public static Student getInstance() {
        return s;
    }
}
public class Test {
    public static void main(String[] args) {
        Student s1 = Student.getInstance();
        Student s2 = Student.getInstance();
        s1.setName("Tom");
        s2.setName("Jerry");
        System.out.println(s1.getName());//Jerry
        System.out.println(s2.getName());//Jerry
    }
}

新しい2つのオブジェクトs 1,s 2は実は1つのオブジェクトです
方法二、
カウンタ統計によるオブジェクトの作成
package com.liuyanzhao;
class Teacher {
    static int i=0;
    private String name;
    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    private Teacher() {
    }
    public static Teacher newTeacher() {
        Teacher.i++;
        if(Teacher.i>1){
            return null;
        }
        return new Teacher();
    }
}
public class Test1 {
    public static void main(String[] args) {
        Teacher t = Teacher.newTeacher();
        Teacher t1 = Teacher.newTeacher();
        t.setName("Tom");
        //t1.setName("Jerry");
        System.out.println(t.getName());
        //System.out.println(t1.getName());
    }
}

上記のようにオブジェクトは1つしか作成できません.そうしないと、エラーが発生します.
本住所:http://liuyanzhao.com/3328.html 転載は明記してください