java写一个结婚的方法_用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);

}

}

0818b9ca8b590ca3270a3433284dd417.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值