无法理解如何使用单个参数构造函数

时间:2016-10-25 17:44:45

标签: java

我有这个课程作业,我应该创建一个带有构造函数的类,该构造函数具有单个参数,一个指定收入的整数数组,按升序排列。后来我必须绘制一张显示收入和税收的图表。在实际操作过程中,我在示范者的帮助下编写了一些代码,但现在又被卡住了

public class TaxChart {

    static int[] income;

    public TaxChart(int[] income) {
        this.income = income;
        income[0] = 100;
        income[1] = 120;
        income[2] = 130;
        income[3] = 160;
        income[4] = 320;
    }


    public static void main(String[] args) {
        draw();
    }

    public static void draw() {
        TaxChart incomes = new TaxChart();

        //  ...
    }
}

不知怎的,我需要将收益值用于draw方法,但是这样做时会出现大量错误。我知道这是一个简单的问题,但我之前主要用C ++编程,而且我几乎没有Java经验。

2 个答案:

答案 0 :(得分:0)

您的构造函数采用int []数组的值,但您没有在main中传递任何值。此外,收入不需要是静态的,因为这意味着它属于类(而不是对象本身)。

做同样的事情:

public class TaxChart {

    private int[] income;

    public TaxChart(int[] income) {
        this.income = income;
        this.income[0] = 100;
        this.income[1] = 120;
        this.income[2] = 130;
        this.income[3] = 160;
        this.income[4] = 320;
    }

    public void draw() {
        //TaxChart incomes = new TaxChart();

        //  ...
    }

    public static void main(String[] args) {
        TaxChart taxChart = new TaxChart(new int[5]);
        taxChart.draw();
    }
}

答案 1 :(得分:-1)

首先,income不应声明为static。您应该从static中删除static int[] income一词。

另外,删除此:

    income[0] = 100;
    income[1] = 120;
    income[2] = 130;
    income[3] = 160;
    income[4] = 320;

在构造函数中改变参数数组

是没有意义的

我想你要传递价值:

100, 120, 130, 160, 320

到构造函数,对吧?

您应该创建一个数组并将其传递给draw方法中的构造函数:

int[] myArray = { 100, 120, 130, 160, 320 };
TaxChart incomes = new TaxChart(myArray);