所以我想我的问题太模糊了.我在下面的ArrayIntList类的末尾放置了runningTotal方法,并且我被要求将其重写为runningTotal(ArrayIntList)和static runningTotal(ArrayIntList),并实现所有三个,重载.也许我太困惑了自己,但我无法弄清楚从哪里开始...我希望这更清楚一点,谢谢你所有的帮助!
import java.io.*;
public class ArrayIntList {
private int[] elementData;
private int size;
public ArrayIntList(){
elementData = new int[100];
size = 0;
}
public void add(int value){
elementData[size] = value;
size++;
}
public void print(){
if (size == 0){
System.out.println("[]");
}
else {
System.out.print("[" + elementData[0]);
for (int i = 1; i < size; i++)
System.out.print(", " + elementData[i]);
System.out.println("]");
}
}
public ArrayIntList runningTotal() {
ArrayIntList newList = new ArrayIntList();
int i = 0;
int total = 0;
while (i < size) {
total = elementData[i];
for(int j = 0; j < i; j++);
newList.add(total);
i++;
}
return newList;
}
}
Run Code Online (Sandbox Code Playgroud)
你问的问题真的没有意义.我只计算一个runningTotal,只调用一个.你还没有写其他人.重载函数只是同名函数,通常具有相似的功能,但设置方式不同.所以:
void runningTotal(int valueIn)
{/*one thing*/}
void runningTotal(int[] arrayIn)
{/*another thing*/}
int runningTotal()
{return yetAnotherThing;}
Run Code Online (Sandbox Code Playgroud)
...都是同名的功能,但都是完全不同的功能.它的强大之处在于方便,允许您将值传递给函数,而无需注意实际传递的类型.
您只需要再次定义该功能即可.如果存在功能重叠,您甚至可以从正在编写的重载中调用其他重载之一.
计算机大多数时间都在查看参数排序.function(int,int)与function(string,int)或function()不同.这样做的必然结果是它不关心参数名称.例如,function(int a,int b)与function(int c,int d)完全相同.
如果要在同一时间字面上运行这些函数,则应该研究Java Threads and Concurrency
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |