java - 需要创建一个数组方法,但不确定我是否做对了

标签 java

我需要创建一个带有签名 public double totalRent()

的方法

此方法访问数组 properties 中的每个 Property 对象,并对特性租金求和并返回总金额。 返回:总租金

这是我的代码:

public double totalRent()
{

    for(int index = 0; index < property.length; index++)
    {

        int total =+ property[index];
    }
    return totalRent();
} 

这是正确的吗?它一直说未使用总变量,所以我不确定我做得是否正确。

最佳答案

您对代码的逻辑/理解有点偏差,让我们尝试修复它:

public double totalRent() {

    int total = 0;

    for(int index = 0; index < property.length; index++){

        total += (property[index]).getRent(); //assuming the getter here
    }

    return total;
}

这里的第一个问题是您返回了对方法本身的调用,从而创建了 recursion ,而且是无限的,因为你没有 exit condition .

您想要返回的而不是函数本身。 该函数定义了你如何做某事,即逻辑算法。

正如您所说,您的 IDE 试图警告您没有使用 total 的值。这是因为在它的范围内(你可以通过谷歌搜索教程和文档,或者去 here )你从未使用过它,所以它毫无用处。

解决方案是,您在for循环外部声明变量,使其位于内部范围并可以返回。 for 循环,您逐渐对所有值求和,然后返回。

您还会注意到我在对数组每个元素的调用旁边添加了 .getRent()。 这是因为您无法直接使用 + 对对象求和,您需要对每个对象的正确字段求和。如果该字段在 Property 类 中声明为 public,则可以直接获取该字段,也可以使用 getter(就像我所做的那样), 专门访问并返回对象值的方法。

通过学习 encapsulation 的基本原则,您可以了解有关 getter 的更多信息以及它们为何有用。 ,或者直接来自oracle教程here .

当然,正如一些评论所建议的,有 other ways对数组中的所有值求和,但是由于这个问题专门针对您可能犯的错误,因此这足以学习。

关于java - 需要创建一个数组方法,但不确定我是否做对了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40010785/

相关文章:

java - 在 Java 7 中实现并发和并行

java - 在java中创建可扩展枚举行为的最佳方法

java - 对数据执行线性回归(来自 .arff 文件)- JAVA、Weka

java - 在分布式服务架构中使用 System.currentTime?

java - 如何子类化 AutoValue 类?

java - 替换 Clavier.lireDouble

java - Applet 在 Google Chrome 上挂起

Java:如何在重写方法(祖 parent 方法)中调用 super().super()

Java将IP+端口转换为长整型并返回

java - Intent 不断使我的应用程序崩溃?