用java语言编写一个Person类,定义人的基本属性:name(姓名)、age(年龄)、gender(性别)、partner(配偶)。 要求至少为Person类写一个marry(Person p)方法,来判断两个人是否可以结婚。如果可以结婚,将其partner属性赋值为其配偶。 结婚必须满足以下3个条件。 必须是异性,同性不允许结婚。 有配偶者不能结婚。 要达到年龄方可结婚:男方23岁以上,女性21岁以上。
时间: 2024-03-05 11:53:06 浏览: 162
关于用Java写一个人“类”
好的,下面是用 Java 语言编写的 Person 类,包含姓名、年龄、性别和配偶属性,并实现了 marry(Person p) 方法来判断两个人是否可以结婚并将其配偶属性赋值。
```java
public class Person {
private String name;
private int age;
private String gender;
private Person partner;
public Person(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getGender() {
return gender;
}
public Person getPartner() {
return partner;
}
public void setPartner(Person partner) {
this.partner = partner;
}
public boolean marry(Person p) {
if (this.gender.equals(p.getGender())) {
System.out.println("同性不能结婚!");
return false;
}
if (this.partner != null || p.getPartner() != null) {
System.out.println("已有配偶,不能结婚!");
return false;
}
if (this.gender.equals("男") && this.age < 23 || p.getGender().equals("男") && p.getAge() < 23 ||
this.gender.equals("女") && this.age < 21 || p.getGender().equals("女") && p.getAge() < 21) {
System.out.println("年龄不足,不能结婚!");
return false;
}
this.partner = p;
p.setPartner(this);
System.out.println(this.name + "和" + p.getName() + "结婚了!");
return true;
}
}
```
在这个类中,我们定义了 Person 的基本属性,包括姓名、年龄和性别,以及配偶属性 partner。在 marry(Person p) 方法中,我们先判断两个人是否为异性,如果不是就返回 false;接着判断两人是否已有配偶,如果有就返回 false;最后判断两人年龄是否符合结婚条件,如果不符合就返回 false,否则将两人的 partner 属性互相设置,表示结婚成功。
你可以通过以下代码测试这个类的功能:
```java
public class Test {
public static void main(String[] args) {
Person p1 = new Person("张三", 25, "男");
Person p2 = new Person("李四", 22, "女");
Person p3 = new Person("王五", 20, "男");
p1.marry(p2); // 张三和李四结婚了!
p2.marry(p3); // 同性不能结婚!
p1.marry(p3); // 年龄不足,不能结婚!
}
}
```
在这个测试代码中,我们创建了三个 Person 对象,p1 是一个 25 岁男性,p2 是一个 22 岁女性,p3 是一个 20 岁男性。我们通过调用 marry(Person p) 方法来测试两个人是否可以结婚,结果符合预期。
阅读全文