Javaでクラスのオブジェクトを一意にするには、1つのオブジェクトしか作成できません.
方法一、
対象の唯一性は一般的に工場モデル、単例モデルを考えることができますが、ここでは例の怠け者法を紹介します.
新しい2つのオブジェクトs 1,s 2は実は1つのオブジェクトです
方法二、
カウンタ統計によるオブジェクトの作成
上記のようにオブジェクトは1つしか作成できません.そうしないと、エラーが発生します.
本住所:http://liuyanzhao.com/3328.html 転載は明記してください
対象の唯一性は一般的に工場モデル、単例モデルを考えることができますが、ここでは例の怠け者法を紹介します.
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 転載は明記してください