我必须做一个班级的房子。 housenumber由int和char组成。房屋号码将被分配到另一个人居住的房子。
我想做什么:
每当创建一个对象housenumber时,我希望它检查它是否与另一个相同。但只有在创建了另一个对象时。
我认为可能有用:
因此,无论何时创建对象,我们都运行方法control(); 方法控件是一个布尔值,如果它们相同则应该返回true。 我知道.equals(object)可以使用,但我不知道如何在那里获得一个对象。 让我们说我创造了一个。它应该检查是否创建了b但是因为没有hè返回一个真值并且可以创建该对象。如果我创建b。它将检查并查找存在。然后,如果b!= a,它将返回一个假值,并且可以创建b。如果a == b它将返回false而b将被设置为a(指向相同的变量和东西)
我希望它不是太模糊
答案 0 :(得分:2)
您要做的是为Housenumber
个对象创建工厂。这样的工厂可以将引用(例如List
)保存到您将在运行时创建的每个Housenumber
对象。对这样的工厂实现create
方法,应该采用通常传递给构造函数的参数,如果已经创建了具有相同输入参数的objcect(whitch将等于我),则返回现有对象或创建一个新的并将其添加到集合中。
答案 1 :(得分:0)
您必须编写自己的实现来检查对象是否相等。问题是.equals()
只检查两个指针是否都指向同一个对象。
要创建对象的实例,您必须执行以下操作:
HouseNumber hn1 = new HouseNumber();
在此之后,如果你想比较它们:
hn1.equals(hn2); //here you would have to override it with your own implementation
这种实施并不困难。您必须检查char
和int
是否匹配。