在使用方法时理解面向对象的赋值

时间:2017-01-24 02:26:19

标签: oop method-call

我还是新手java和写/读代码,所以我不太清楚我的教授想要什么。我所需要的只是加强我应该做的事情。 作业如下:

指定并实现一个传递NumberList的方法(某些类X的方法),该方法返回一个包含NumberList值的数组。

(您的方法不会更改NumberList。您的方法不是NumberList的成员。您将无法通过运行来测试您的方法,因为我没有向您提供NumberList类。)

If you need it, here are the public methods. 我使用的一种方法是:

public int size() //returns number of items in this NumberList

所以,据我所知,我所做的就是使用NumberList并创建一个值数组。很容易。这是处理所要求的工作吗?

public double [] arrayNL(NumberList list){
    //pre: NL is not empty
    //post: array with NL values is returned
    double [] arrayNL = new double [list.size()];
    for(int x=0;x<list.size();x++){
        arrayNL[x]=list.nextDouble;
    }
    return arrayNL;
}

只是不确定list.size()和list.nextDouble ......这就是说我理解问题是正确的。真的没有做足够的对象编码熟悉/自信,我 严重 依赖于测试,所以我在质疑一切。任何帮助都会很棒,我出于某种原因无法遵循教授的指示。

3 个答案:

答案 0 :(得分:0)

不确定我理解这个问题。目标是编写将列表复制到数组的代码,还是根据前后条件实现NumberList类中的方法?

答案 1 :(得分:0)

我相信本练习的目标之一是教授如何阅读API (Application program interface)并通过阅读文档来实现其方法,而无需阅读其背后的实际代码。

这是一项重要的做法,因为作为未来的开发人员,您必须使用其他人的方法,而您却无法自己实施所有方法。

至于您的代码,我不确定您在nextDouble方法的哪个位置,因为我在文档中没有看到它。除非是给你的,否则我建议你坚持使用NumberList()和其他基本编码功能的文档。

您可以使用nextDouble而不是public double get(int index),因此您的for循环看起来像这样:

 for(int i = 0; i < list.size() ;i++){
    arrayNL[i]= list.get(i);
}

其余代码基本上没问题。

答案 2 :(得分:-1)

你的代码基本上都在那里,虽然在NumberList类中未定义下一个double,因此可能会给你带来麻烦。这是每个部分正在做的事情:

public double [] arrayNL(NumberList list){

    // Initialize an array of doubles containing the same # of elements 
    // as the NumberList
    double [] arrayNL = new double [list.size()];

    // Iterate through the NumberList
    for(int x=0;x<list.size();x+) { 

        // Copy the double from the NumberList object to the double array 
        // at the current index.  Note "nextDouble" is undefined, but
        // NumberList does have a method you can use instead.
        arrayNL[x]=list.nextDouble; 
    } 

    // After iterating through the whole list, return the double array
    return arrayNL; 
}

抱歉任何格式问题。在我的手机上键入此内容