public class Person { private String name; private int age; private boolean gender; private boolean state; Person(String a, int a1, boolean a2, boolean a3) { this.name=a; this.age=a1;
} public int getAge() { return age; } public void setAge(int age) { this.age = age; } public boolean isGender() { return gender; } public void setGender(boolean gender) { this.gender = gender; } public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isState() { return state; } public void setState(boolean state) { this.state = state; }
public String Marry(Person a,Person b) { String returninfo = "error";
public class Person {
private String name;
private int age;
private boolean gender;
private boolean state; Person(String a, int a1, boolean a2, boolean a3) {
this.name=a;
this.age=a1;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public boolean isGender() {
return gender;
} public void setGender(boolean gender) {
this.gender = gender;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public boolean isState() {
return state;
} public void setState(boolean state) {
this.state = state;
}
public String Marry(Person a,Person b)
{
String returninfo = "error";
if(a.state||b.state)
{
returninfo="不能结婚,有人已婚";
}
else
{
if(a.gender!=b.gender)
{
if(a.age>=22||b.age>=20)
{
returninfo="恭喜";
}
else
{
returninfo="不能结婚,年龄不符合规定";
}
}
else
{
returninfo="不能结婚,同性";
}
}
return returninfo;
}}
public class x{}
import java.util.Calendar;
public class Person {
private String name;// 姓名
private Calendar birthday;// 生日
private boolean gender;// true代表男,false代表女
private Person partner;//配偶 // 无参构造函数
public Person() {
} // 带参构造函数
public Person(String name, Calendar birthday, boolean gender) {
this.name = name;
this.birthday = birthday;
this.gender = gender;
} // 带参构造函数
public Person(String name, Calendar birthday, boolean gender, Person partner) {
this.name = name;
this.birthday = birthday;
this.gender = gender;
this.partner = partner;
} // 结婚方法
public void marry(Person p) {
boolean flag = true;
//判断是否有配偶
if (p.partner == null && this.partner == null) {
// 判断是否同性
if (this.gender == p.gender) {
System.out.println("同性不能结婚!");
flag = false;
}
// 判读是否为男性
if (this.gender || p.gender) {
if (this.gender && getAge(this.birthday) < 22 || p.gender
&& getAge(p.birthday) < 22) {
System.out.println("男性法定结婚年龄必须是满22周岁哦!");
flag = false;
}
} else {// 判读是否为女性
if (!this.gender && getAge(this.birthday) < 20 || !p.gender
&& getAge(p.birthday) < 20) {
System.out.println("女性法定结婚年龄必须是满20周岁哦!");
flag = false;
}
}
} else {
System.out.println("不能结婚,一方已婚!");
flag = false;
}
if (flag) {
System.out.println("你们可以结婚哦!");
}
} /**
* 根据出生日期计算年龄
*
* @param birthDay
* @return 未来日期返回0
* @throws Exception
*/
public static int getAge(Calendar birthDay) { Calendar cal = Calendar.getInstance();
//如果生日超过了当前日期,就返回0
if (cal.before(birthDay)) {
return 0;
}
//获得当前日期的年月日
int yearNow = cal.get(Calendar.YEAR);
int monthNow = cal.get(Calendar.MONTH);
int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH);
//获得生日的年月日
cal.setTime(birthDay.getTime());
int yearBirth = cal.get(Calendar.YEAR);
int monthBirth = cal.get(Calendar.MONTH);
int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);
int age = yearNow - yearBirth; if (monthNow <= monthBirth) {
if (monthNow == monthBirth) {
if (dayOfMonthNow < dayOfMonthBirth) {
age--;
}
} else {
age--;
}
}
return age;
} public static void main(String[] args) {
Calendar c = Calendar.getInstance();
c.set(1987, 4, 5);
Person p1 = new Person("张三", c, true);
Calendar c1 = Calendar.getInstance();
c1.set(1990, 8, 5);
Person p2 = new Person("小晶", c1, false);
p1.marry(p2);
}}
public class Person {
private String name;// 姓名
private Calendar birthday;// 生日
private boolean gender;// true代表男,false代表女
private Person partner;//配偶 // 无参构造函数
public Person() {
} // 带参构造函数
public Person(String name, Calendar birthday, boolean gender) {
this.name = name;
this.birthday = birthday;
this.gender = gender;
} // 带参构造函数
public Person(String name, Calendar birthday, boolean gender, Person partner) {
this.name = name;
this.birthday = birthday;
this.gender = gender;
this.partner = partner;
} // 结婚方法
public void marry(Person p) {
boolean flag = true;
//判断是否有配偶
if (p.partner == null && this.partner == null) {
// 判断是否同性
if (this.gender == p.gender) {
System.out.println("同性不能结婚!");
flag = false;
}
// 判读是否为男性
if (this.gender || p.gender) {
if (this.gender && getAge(this.birthday) < 22 || p.gender
&& getAge(p.birthday) < 22) {
System.out.println("男性法定结婚年龄必须是满22周岁哦!");
flag = false;
}
} else {// 判读是否为女性
if (!this.gender && getAge(this.birthday) < 20 || !p.gender
&& getAge(p.birthday) < 20) {
System.out.println("女性法定结婚年龄必须是满20周岁哦!");
flag = false;
}
}
} else {
System.out.println("不能结婚,一方已婚!");
flag = false;
}
if (flag) {
System.out.println("你们可以结婚哦!");
}
} /**
* 根据出生日期计算年龄
*
* @param birthDay
* @return 未来日期返回0
* @throws Exception
*/
public static int getAge(Calendar birthDay) { Calendar cal = Calendar.getInstance();
//如果生日超过了当前日期,就返回0
if (cal.before(birthDay)) {
return 0;
}
//获得当前日期的年月日
int yearNow = cal.get(Calendar.YEAR);
int monthNow = cal.get(Calendar.MONTH)+1;
int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH)+1;
//获得生日的年月日
cal.setTime(birthDay.getTime());
int yearBirth = cal.get(Calendar.YEAR);
int monthBirth = cal.get(Calendar.MONTH);
int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);
int age = yearNow - yearBirth; if (monthNow <= monthBirth) {
if (monthNow == monthBirth) {
if (dayOfMonthNow < dayOfMonthBirth) {
age--;
}
} else {
age--;
}
}
return age;
}
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
c.set(1987, 4, 5);
Person p1 = new Person("张三", c, true);
Calendar c1 = Calendar.getInstance();
c1.set(1990, 8, 5);
Person p2 = new Person("小晶", c1, false);
p1.marry(p2);
}}
this.name = name;
this.birthday = birthday;
this.gender = gender;
} // 带参构造函数
public Person(String name, Calendar birthday, boolean gender, Person partner) {
this.name = name;
this.birthday = birthday;
this.gender = gender;
this.partner = partner;
这两个构造方法有什么区别啊
Person p1 = new Person("张三", c, true);
你那个Person类中partner不是配偶吗,如果没有配偶的的就用
public Person(String name, Calendar birthday, boolean gender) {
this.name = name;
this.birthday = birthday;
this.gender = gender;
}
这个构造函数,有配偶的就用另外一个
Calendar c = Calendar.getInstance();
c.set(1987, 4, 5);
Person p1 = new Person("张三", c, true,null);
Calendar c1 = Calendar.getInstance();
c1.set(1990, 8, 5);
Person p2 = new Person("小晶", c1, false,null);
p1.marry(p2);