模拟结婚和离婚

来源:互联网 发布:阿里云素材库 编辑:程序博客网 时间:2024/04/27 19:32

public class Person {
private String name;
private int age;
private boolean gender;//性别 
private Person partner;// 伴侣, ==》也是一个人,所以它具有Person的所有属性和方法

//使用构造方法完成初始化操作
public Person(){

}

public Person(String name,int age,boolean gender){
this.name = name;
this.age = age;
this.gender = gender;
}

/**
* 结婚
*/
public void marry(Person person){
//1.结婚对象不能为 空
if(person == null){
System.out.println("结婚伴侣不能为空!");
return;
}
//2.不能与自己结婚
if(this==person){
System.out.println("不能与自己结婚!");
return;
}
//3.同性  
if(this.gender == person.gender){
System.out.println(this.name + " 与 " + person.name + "都是" + (this.gender?"男":"女") + ",同性不能结婚!");
return;
}

//4.未达到结婚年龄  男<24,女<22
if(judgeAge(this.gender,this.age) == false){
System.out.println(this.name + "没有达到结婚年龄!");
return;
}
if(judgeAge(person.gender,person.age) == false){
System.out.println(person.name + "没有达到结婚年龄!");
return;
}
//5.一方已婚
if(this.partner != null){
System.out.println(this.name + "已婚,不能重婚!");
return;
}
if(person.partner !=  null){
System.out.println(person.name + "已婚,不能重婚!");
return;
}
//可以结婚
this.partner = person;
person.partner = this;
System.out.println(this.name + " 与 " + person.name + "结婚成功!");
}

//将判断年龄封装成一个方法
private boolean judgeAge(boolean gender,int age){
if(gender == true && age<24){  //男性
return false;
}else if(gender == false && age<22){//女性
return false;
}
return true;  
}
/**
* 离婚
*/
public void divorce(Person person){
//1.离婚的伴侣不能为空
if(person == null){
System.out.println("离婚的伴侣不能为空!");
return;
}
//2.不能与自己离婚
if(this == person){
System.out.println("不能与自己离婚!");
return;
}
//3.两个人不是夫妻,不能离婚
if(this.partner != person || person.partner != this){
System.out.println("两个人不是夫妻,不能离婚!");
return;
}
//可以离婚
this.partner = null;
person.partner = null;
System.out.println(this.name + " 与 " + person.name + "离婚成功!");
}
}
0 0