【问题标题】:Identifying arrays识别数组
【发布时间】:2013-11-04 00:02:16
【问题描述】:

关于逻辑,我有一个很大的问题。我正在研究一个应该教我继承的项目。我有一个名为 bankaccount 的超级类,并从该类扩展了一个支票和储蓄类。我的程序假设将银行帐户对象的数组写入硬盘驱动器,并在程序启动时读取它。我有一个数组的原因是我最多可以保存三个支票和储蓄账户,这些账户由用户要求的 ID 标识。我的问题是我是否在每个支票/储蓄类中有一个 id 字段和一个 balance 字段。我如何确定哪些 id 位于哪个数组引用中。如果这个问题没有意义,我道歉。我是新手。

【问题讨论】:

    标签: java arrays inheritance polymorphism


    【解决方案1】:

    假设您有一个 BankAccount 数组。如果您想找到某个 id 的 BankAccount,那么您将使用 for 循环遍历数组,并在循环内检查该索引处的 BankAccount 的 id 是否与所需的 id 匹配。例如,假设有一个名为bankAccounts 的数组,那么您可以循环遍历它...

    for (int i = 0; i < bankAccounts.length; i++) {
      if (bankAccounts[i].getId() == desiredId) {
        // do something with this BankAccount
      }
    }
    

    编辑
    您在评论中声明:

    对于这个继承的事情,我很抱歉。如果id存储在checking中,bankaccounts[i].getid()会得到checking中存储的id吗?

    这就是继承的美妙之处。因为 CheckingAccount 是 BankAccount 类的子类,所以它获得了 BankAccount 的所有公共方法,包括它的 getid() 方法。因此,如果 BankAccount 将此作为公共方法,那么您可以放心,它的所有子节点也都可以使用该方法。

    【讨论】:

    • 对这个继承的事情很抱歉。如果id存储在checking中,bankaccounts[i].getid()会得到checking中存储的id吗?
    • 或者我会做类似 bankAccounts[i].checking.getid() 的事情吗?
    • @user2733862 在这种情况下,bankAccounts[i] 将是 Checking 对象实例。所以bankaccounts[i].getid() 会给出支票账户的 ID。
    • @user2733862:请参阅编辑以回答。不,你不会这样做 bankAccounts[i].checking.getid() 因为那不是有效的 Java。
    • Nvm 我刚刚回答了我自己的问题 bankaccounts[i].setid() ... duh 谢谢大家的帮助
    猜你喜欢
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    相关资源
    最近更新 更多