用java写一个完整的代码文件,要求有类Person,包含以下数据成员: String name; (姓名) int age; (年龄) boolean gender;(性别) Person partner;(配偶) 为Person类写一个marry(Person p)方法,代表当前对象和p结婚,如果可以结婚,则输出恭贺信息,否则输出不能结婚的原因。要求在另外一个类中写一个main方法,测试两个Person对象是否能够结婚。 下列情况不能结婚: (1)同性; (2)未达到法定结婚年龄,男<22岁,女<20岁; (3)某一方已婚。
时间: 2023-04-07 16:03:18 浏览: 160
以下是Java代码:
```
public class Person {
String name;
int age;
boolean gender;
Person partner;
public Person(String name, int age, boolean gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public void marry(Person p) {
if (this.gender == p.gender) {
System.out.println("不能结婚,同性不能结婚!");
} else if ((this.gender == true && this.age < 22) || (this.gender == false && this.age < 20)) {
System.out.println("不能结婚,未达到法定结婚年龄!");
} else if (this.partner != null || p.partner != null) {
System.out.println("不能结婚,某一方已婚!");
} else {
this.partner = p;
p.partner = this;
System.out.println("恭喜" + this.name + "和" + p.name + "结婚!");
}
}
}
public class Main {
public static void main(String[] args) {
Person p1 = new Person("张三", 25, true);
Person p2 = new Person("李四", 20, false);
Person p3 = new Person("王五", 18, true);
p1.marry(p2);
p1.marry(p3);
p2.marry(p3);
}
}
```
输出结果:
```
不能结婚,未达到法定结婚年龄!
不能结婚,未达到法定结婚年龄!
不能结婚,同性不能结婚!
```
阅读全文