java - 如何重载方法

标签 java

所以我想我的问题太含糊了。我将 runningTotal 方法放在下面的 ArrayIntList 类的末尾,并要求我将其重写为 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;
    }
}

最佳答案

你问的根本没有意义。我只统计了一个runningTotal,也只调用了一个。你还没有写其他的。重载函数只是同名的函数,通常具有相似的功能,但设置不同。所以:

void runningTotal(int valueIn)
{/*one thing*/}

void runningTotal(int[] arrayIn)
{/*another thing*/}

int runningTotal()
{return yetAnotherThing;}

...都是同名的函数,但是都是完全不同的函数。其强大之处在于方便,允许您将值传递给函数,而无需注意实际传递的类型。

您所需要做的只是再次定义该函数。如果存在功能重叠,您甚至可以从您正在编写的重载中调用其他重载之一。

计算机大部分时间都在查看参数排序。 function(int, int) 与 function(string, int) 或 function() 不同。其推论是它不关心参数名称。例如, function(int a, int b) 与 function(int c, int d) 完全相同。

如果您想在同一时间点运行这些函数,您应该调查 Java Threads and Concurrency

关于java - 如何重载方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15124221/

相关文章:

java - 我如何计算我的代码的平均值

java - 多线程 Vert.x 每秒处理数千个连接

java - 以与 NetBeans 相同的方式运行 GlassFish 3.1.1

java - 无法将 JSONObjects 的 ArrayList 传递给新 Activity

java - <mvc :resources> - Does it cache to memory? Spring 4.0.5

java - 需要将exe文件转换成JAR文件

java - 从异常重定向回来后如何将数据保留在表单中

java - 有没有办法比较列表中的两个对象并组合它们的最佳值?(Java)

java - 使用共享首选项保存永久数据?

java - 关于 java 上下文的委托(delegate)示例