在使用方法时理解面向对象的赋值
Understanding an object-oriented assignment while working with methods
我还是 java 和 writing/reading 代码的新手,所以我不太确定我的教授想要什么。我所需要的只是加强我应该做的事情。
赋值如下:
指定并实现一个方法(某些 class X),该方法传递一个 NumberList 并且 returns 一个包含 NumberList 中的值的数组。
(您的方法未更改 NumberList。您的方法不是 NumberList 的成员。您将无法通过 运行 测试您的方法,因为我没有提供 NumberList class给你。)
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... 如果我对问题的理解是正确的。真的没有做足够的对象编码来 familiar/confident 并且我 严重 依赖测试,所以我质疑一切.任何帮助都会很棒,我只是出于某种原因无法按照这位教授的指示进行操作。
不确定我是否理解问题。目标是写复制列表到数组的代码,还是根据前置条件和post-条件实现NumberListclass中的方法?
你的代码基本上都在那里了,尽管 NumberList class 中的 next 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;
}
对于任何格式问题,我们深表歉意。在我的 phone
上输入这个
我认为本练习的目标之一是教授如何阅读 API (Application program interface) 并通过阅读文档实现其方法,而不阅读其背后的实际代码。
这是一个重要的实践,因为作为未来的开发人员,您将不得不使用其他人的方法,并且您将无法自己实现所有事情。
至于您的代码,我不确定您在哪里看到 nextDouble
方法,因为我在文档中没有看到它。除非给你,否则我建议你坚持使用 NumberList()
和其他基本编码功能的文档。
您可以使用 public double get(int index)
而不是 nextDouble
,因此您的 for
循环看起来像这样:
for(int i = 0; i < list.size() ;i++){
arrayNL[i]= list.get(i);
}
您的其余代码基本上没问题。
我还是 java 和 writing/reading 代码的新手,所以我不太确定我的教授想要什么。我所需要的只是加强我应该做的事情。 赋值如下:
指定并实现一个方法(某些 class X),该方法传递一个 NumberList 并且 returns 一个包含 NumberList 中的值的数组。
(您的方法未更改 NumberList。您的方法不是 NumberList 的成员。您将无法通过 运行 测试您的方法,因为我没有提供 NumberList class给你。)
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... 如果我对问题的理解是正确的。真的没有做足够的对象编码来 familiar/confident 并且我 严重 依赖测试,所以我质疑一切.任何帮助都会很棒,我只是出于某种原因无法按照这位教授的指示进行操作。
不确定我是否理解问题。目标是写复制列表到数组的代码,还是根据前置条件和post-条件实现NumberListclass中的方法?
你的代码基本上都在那里了,尽管 NumberList class 中的 next 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;
}
对于任何格式问题,我们深表歉意。在我的 phone
上输入这个我认为本练习的目标之一是教授如何阅读 API (Application program interface) 并通过阅读文档实现其方法,而不阅读其背后的实际代码。
这是一个重要的实践,因为作为未来的开发人员,您将不得不使用其他人的方法,并且您将无法自己实现所有事情。
至于您的代码,我不确定您在哪里看到 nextDouble
方法,因为我在文档中没有看到它。除非给你,否则我建议你坚持使用 NumberList()
和其他基本编码功能的文档。
您可以使用 public double get(int index)
而不是 nextDouble
,因此您的 for
循环看起来像这样:
for(int i = 0; i < list.size() ;i++){
arrayNL[i]= list.get(i);
}
您的其余代码基本上没问题。