JAVA用面向对象写一个简单的择偶标准代码
时间: 2024-09-15 22:03:46 浏览: 10
在Java中,我们可以使用面向对象的思想来创建一个简单的择偶标准模型。假设我们有一个`Person`类代表一个人,包含属性如年龄、身高、兴趣爱好等,然后设计一个`MatchingCriterion`接口定义择偶的标准。下面是一个基本的例子:
```java
// Person 类
class Person {
private int age;
private double height;
private String hobby;
public Person(int age, double height, String hobby) {
this.age = age;
this.height = height;
this.hobby = hobby;
}
// getter 和 setter 方法
@Override
public String toString() {
return "Person{" +
"age=" + age +
", height=" + height +
", hobby='" + hobby + '\'' +
'}';
}
}
// MatchingCriterion 接口
interface MatchingCriterion {
boolean meetsRequirements(Person candidate);
}
// 年龄匹配器实现
class AgeCriterion implements MatchingCriterion {
private final int minAge, maxAge;
public AgeCriterion(int minAge, int maxAge) {
this.minAge = minAge;
this.maxAge = maxAge;
}
@Override
public boolean meetsRequirements(Person candidate) {
return candidate.getAge() >= minAge && candidate.getAge() <= maxAge;
}
}
// 身高匹配器实现
class HeightCriterion implements MatchingCriterion {
private final double minHeight, maxHeight;
public HeightCriterion(double minHeight, double maxHeight) {
this.minHeight = minHeight;
this.maxHeight = maxHeight;
}
@Override
public boolean meetsRequirements(Person candidate) {
return candidate.getHeight() >= minHeight && candidate.getHeight() <= maxHeight;
}
}
// 择偶策略类(可以根据需要添加更多的标准)
class DatingStrategy {
private List<MatchingCriterion> criteria;
public DatingStrategy(List<MatchingCriterion> criteria) {
this.criteria = criteria;
}
public boolean isMatch(Person candidate) {
for (MatchingCriterion criterion : criteria) {
if (!criterion.meetsRequirements(candidate)) {
return false;
}
}
return true;
}
}
public class Main {
public static void main(String[] args) {
Person person1 = new Person(25, 170, "reading");
Person person2 = new Person(30, 180, "gaming");
DatingStrategy datingStrategy = new DatingStrategy(Arrays.asList(
new AgeCriterion(25, 35),
new HeightCriterion(160, 190)
));
System.out.println(person1 + " matches with strategy? " + datingStrategy.isMatch(person1));
System.out.println(person2 + " matches with strategy? " + datingStrategy.isMatch(person2));
}
}
```
在这个例子中,`DatingStrategy`类根据`MatchingCriterion`接口中的规则来判断两个人是否符合特定的择偶条件。你可以根据实际需求扩展或修改这个模型。