java - 什么 OOP 概念可以处理以下情况?

标签 java oop

我刚刚开始学习 Java,并且正在努力寻找实现以下内容的正确方法。

我有一个名为 State 的类。该类有一个名为 stateCaptial 的字段。

我创建一个 State 对象。

然后我想创建许多链接到一个 State 对象的 Town 对象,如果我查询该城镇的州首府,它应该从州对象中获取它。我认为它会被归类为一对多对象关系?

实现此类解决方案的 Java 术语是什么?

非常感谢 安迪

最佳答案

您也可以创建一个 Town 类。因此,State 有一个称为 Town 类型的 Capital 的字段。州还有一组城镇,以便可以查找州的所有城镇。 Town 有一个 State 类型的字段状态。像下面这样的东西。

状态类:

public class State {

     private Town capital;
     private Set<Town> towns;

     public State() {
       this.towns = new HashSet();
     }

     public State(Town capital) {
       this.capital = captial;
       this.towns = newHashSet();
       this.towns.add(capital)
     }


     public void setCapital(Town capital) {
       this.captial = capital;
     }

     public Town getCapital() {
       return this.capital;
     }

     public void addTown(Town town) {
       this.towns.add(town)
     }

     public Set getTowns() {
       return this.towns;
     }
}

城镇等级:

public class Town {

    private State state;

    public Town() {}

    public Town(State state) {
      this.state = state;
      this.state.addTown(this);
    }

    public void setState(State state) {
      this.state = state;
      this.state.addTown(this);
    }

    public State getState() {
      return this.state;
    }
}

然后,如果您有一个名为 myTownTown 对象,则要获取您使用的城镇的州首府:

myTown.getState().getCapital();

如果您有一个名为 myStateState 对象,您将获得您使用的所有城镇:

myState.getTowns();

关于java - 什么 OOP 概念可以处理以下情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3934478/

相关文章:

java - jsonpath 查找所有对象(放心)

java - 重写正确的 Java equals 方法

java - Android 空 editText 使我的程序崩溃

c++ int访问器返回0,即使mutator设置正确

javascript - 如何在不重复父类(super class)测试的情况下在 Mocha 中测试 Backbone 子类?

java - Spring Boot 测试在 Maven 中失败,在 IntelliJ 中工作

java - 使用 java JDBC 、 jsp 、 servlet 处理删除父记录

java - 设计模式 - 使用通用对象来更新 GUI

unit-testing - 为单元测试优化一个类是好的做法,还是为时过早?

c++ - 构造函数在错误的时间调用