用java实现结婚、离婚小程序,其中有一些判断条件,正确掌握this关键字的用法

public class Person{
	private String name;
	private int age;
	private boolean gender;
	private Person partner ;//
	Person(String name,int age,boolean gender){
		this.name=name;
		this.age=age;
		this.gender=gender;
	}
	public void marry(Person other){
		if( other==null ){
			System.out.println(this.name+"结婚对象不能为空");
			return ;
		}
		if( this==other){
			System.out.println(this.name+"结婚对象不能为自己");
			return ;
		}
		if( this.gender==other.gender){//私有属性不能在外部类里面访问,但是能够在一个类的不同对象中访问,other是Person类的另外一个对象,和this属于一个类
			System.out.println(this.name+"结婚对象不能为同性");
			return ;
		}
		
		if( this.partner!=null){
			System.out.println("注意将构成重婚罪!");
			return ;
		}
		if( other.partner!=null){
			System.out.println("注意将构成重婚罪!");
			return ;
		}
		if( rule( this ) && rule( other)){
			System.out.println(this.name+"和"+other.name+"结婚成功!");
			this.partner=other;
			other.partner=this;
			return ;
		}else{
			System.out.println("结婚失败!");
			return ;
		}
		
	}
	//	离婚: 1、自己的配偶是对方,对方的配偶是自己才能够离婚  2、离婚对象不能为空
	public void divorce(Person p){
		if( p==null){
			System.out.println(this.name+",别闹!离婚对象为空,怎么离?");
			return ;
		}
		if(rule1( this,p)){
			System.out.println(this.name+"和"+p.name+"离婚成功!");
			this.partner=null;
			p.partner=null;
			return ;
		}
	}

	private boolean rule1(Person p1,Person p2){
		if(p1.partner==p2 && p2.partner==p1){
			return true;
		}
		if(p1.partner!=p2  ){
			System.out.println(p1.name+":别闹!要离婚,请找自己的配偶!");
			return false;
		}
		if(p2.partner!=p1){
			System.out.println(p2.name+":别闹!要离婚,请找自己的配偶!");
			return false;
		}
		return false;
	}

	private boolean rule(Person p){
		if(p.gender==true && p.age<24){
			System.out.println("男士年龄小于24周岁!");
			return false;		
		}
		if(p.gender==false && p.age<22){
			System.out.println("女士年龄小于22周岁!");
			return false;		
		}
		return true;
	}
}

以上是Person类的定义,接着在Testb.java中实现调用,没有让用户从键盘输入,直接就在测试类中直接指定了

public class Testb{
	public static void main(String[] args){
		Person p=new Person("莘月",22,false);
		Person p2=new Person("九爷",28,true);
		Person p3=new Person("卫无忌",26,true);

		p.marry( p2);
		
		p3.divorce( p);

		Person p4=new Person("沈凝",26,false);
		Person p5=new Person("江以平",30,true);
		p4.marry( p5);
		p5.divorce( p4);
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值