用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 13:03:19 浏览: 151
java代码-使用java构造Person类。包括姓名(name),性别和年龄(age)的源代码
5星 · 资源好评率100%
我可以回答这个问题。以下是代码:
```
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 TestPerson {
public static void main(String[] args) {
Person p1 = new Person("张三", 25, true);
Person p2 = new Person("李四", 20, false);
Person p3 = new Person("王五", 23, true);
p1.marry(p2); // 未达到法定结婚年龄!
p1.marry(p3); // 恭喜张三和王五结婚!
p2.marry(p3); // 某一方已婚!
}
}
```
阅读全文