Person类:publicPersongetPartner(){returnpartner;}publicvoidsetPartner(Personpartner){this.partner=partner;}测试类:MarryTestpackagech5;publicclassMarryTest{publicstaticv...
Person类:
public Person getPartner() {
return partner;
}
public void setPartner(Person partner) {
this.partner = partner;
}
测试类:MarryTest
package ch5;
public class MarryTest {
public static void main(String[] args){
//创建对象
Person p1=new Person("牛魔王",35,true,null);
Person p2=new Person("铁扇公主",30,false,null);
Person p3=new Person("至尊宝",26,true,null);
Person p4=new Person("紫霞",24,false,null);
Person p5=new Person("许仙",24,true,null);
Person p6=new Person("白素贞",23,false,null);
Person p7=new Person("小青",18,false,null);
Person p8=new Person("a man",25,true,null);
//牛魔王和铁扇公主,符合条件就结婚,并输出结婚语句
p1.maryy(p2);
System.out.println("**********************************************************************************");
//二者结婚以后,都是有家室的人,不能再和别人结婚
System.out.println("牛魔王已经结婚了,还想和紫霞结婚,得到的答复是:");
p1.maryy(p4);
System.out.println("铁扇公主已经结婚了,还想和至尊宝结婚,得到的答复是:");
p2.maryy(p3);
System.out.println("**********************************************************************************");
//许仙和至尊宝都是男性,不能结婚
System.out.println("许仙和至尊宝申请结婚,得到的答复是:");
p5.maryy(p3);
//至尊宝和紫霞虽然都和别人匹配过,但不合适,所以还是单身,二者可以结婚
System.out.println("紫霞和至尊宝申请结婚,得到的答复是:");
p4.maryy(p3);
//小青年龄不符合要求,所以和许仙不能结婚
System.out.println("小青和许仙申请结婚,得到的答案是:");
p7.maryy(p5);
//许仙和白素贞可以结婚
System.out.println("白素贞和许仙申请结婚,得到的答复是:");
p6.maryy(p5);
//许仙已经结过婚了,这时候即使小青年龄符合要求,也不能与之结婚
p7.setAge(25);
System.out.println("小青现在已经"+p7.getAge()+"岁了,申请和许仙结婚,得到的答复是:");
p7.maryy(p5);
//当许仙和白素贞离婚,就可以和小青结婚了
p5.setPartner(null);
System.out.println("许仙离婚了,成了自由人,申请和小青结婚,得到的答复是:");
p6.maryy(p8);
}
}
上面代码中:许仙已经的partner已经为null,也就是离婚,但白素贞的partner还是许仙,不能和别人结婚。请问怎么设置一个对象的partner为空时,他的前Partner也为空。
ps:我把setPartner改了一下,但报错。
public void setPartner(Person partner) {
if(partner.equals(null)){
this.getPartner().setPartner(null);
}
else{
this.partner = partner;
}
}
展开