如您所见,可能我夸大了这个话题。这就是我所需要的;
我有5-6节课。我模拟,当这些班级在同一地点开会时,如果他们是同一性别的班级,他们将成为伴侣。一个婴儿将出生在同一班级。
但是我在这里感到困惑。我正在用ArrayList和for循环(i和j嵌套循环)匹配类。
那就是我所需要的;
if(male Xclass matches female Xclass){ //actually here i dont know classes
Xclass x = new Xclass(); // i have just elements i and j
list.add(x);
} // something like that , but how can i know which class they have and how
// can i create a new class while i don't know this.
**对不起,英语不好,谢谢:)
编辑:我的意思是同一个班级,但性别不同;有A,B,C,D类,并且性别只是可变的(private int Gender; //男性为1,女性为0,并且是随机值,1或0)我也有位置x,y。男性A和男性A不能交配男性A和女性A可以使男性B和女性C不能交配我的意思是。对不起,不好意思
最佳答案
那么,您的意思是这样吗(令人不安)?相同类型然后不同的类的意思很奇怪。从您的示例中,您只有一堂课。如果我理解正确,那么您想要建模类似的东西。
class Person {
public enum Gender {
Male,
Female;
}
public enum SocialClass {
Royal,
Peasant,
Barbarian;
}
public final Gender gender;
public final SocialClass socialClass;
public Person(Gender gender, SocialClass socialClass) {
this.gender = gender;
this.socialClass = socialClass;
}
public Person meet(Person person) {
if (person != this && person.socialClass == this.socialClass && person.gender != this.gender) {
return new Person(Math.random() > .5 ? Gender.Male : Gender.Female, this.socialClass);
} else {
return null;
}
}
}
然后,您可以执行以下操作:
List<Person> people = ...// however you got your list
Person person = randomRemoveFrom(people);
Person otherPerson = randomRemoveFrom(people);
Person child = person.meet(otherPerson);
if( child != null) {
System.out.println("New Person instance?");
} else {
System.out.println("No new person");
}