初学者java项目:我的数组有什么问题?

p5cysglq  于 2021-07-08  发布在  Java
关注(0)|答案(4)|浏览(372)

我刚开始学习java作为我大学课程的一部分,在第一个项目中遇到了问题。我刚刚开始创建一个项目,基本上分类硬币。我正在尝试制作一个名为printcoinlist()的方法,该方法打印硬币列表的内容,指示当前流通的硬币面额(即“当前流通的硬币面额:200100,50,20,10”),单位为便士。
到目前为止,我已经声明了我的示例字段,创建了一个参数并尝试创建这个方法。我唯一的问题是,当我尝试在main()方法中测试它时,使用数组作为coinlist参数似乎有问题。到目前为止,我的情况是:

public class CoinSorter {

    //Instance Fields
    String currency;
    int minCoinIn;
    int maxCoinIn;
    int[] coinList;

    //constructor
    public CoinSorter(String Currency, int minValueToExchange, int maxValueToExchange, int[] initialCoinList) {
        currency=Currency;
        minCoinIn=minValueToExchange;
        maxCoinIn = maxValueToExchange;
        coinList= initialCoinList;

    }

                public void printCoinList() {
        System.out.println("The current coin denominations are in circulation"
                + coinList);
    }

    public static void main(String[] args) {
        //An example

        CoinSorter exampleOne = new CoinSorter("pounds", 0, 10000, {10,20,50,100,200});

唯一的问题似乎出现在示例一中,因为当我去掉这个时,其余的代码似乎运行良好。错误消息是:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    The constructor CoinSorter(String, int, int, int, int, int, int, int) is undefined
    Syntax error on token "{", delete this token
    Syntax error on token "}", delete this token

有人知道我做错了什么吗?

7dl7o3gd

7dl7o3gd1#

java中的数组可以使用以下方法之一声明/初始化。

int[] myIntArray = {10,20,50,100,200};
int[] myIntArray = new int[]{10,20,50,100,200};

替换 CoinSorter exampleOne = new CoinSorter("pounds", 0, 10000, {10,20,50,100,200}); 具有

CoinSorter exampleOne = new CoinSorter("pounds", 0, 10000, myIntArray );

CoinSorter exampleOne = new CoinSorter("pounds", 0, 10000, new int[]{10,20,50,100,200});
41zrol4v

41zrol4v2#

首先,在java中,您需要指定数组的类型:
coinserter exampleone=新coinserter(“磅”,0,10000,新int[]{10,20,50100200});
那么您的“printcoinlist”方法将不起作用,这应该打印:
现在的硬币面额在流通[i@7852e922
您的最终代码应该是:
导入java.util.arrays;
公共分类机{

//Instance Fields
String currency;
int minCoinIn;
int maxCoinIn;
int[] coinList;

//constructor
public CoinSorter(String Currency, int minValueToExchange, int maxValueToExchange, int[] initialCoinList) {
    currency=Currency;
    minCoinIn=minValueToExchange;
    maxCoinIn = maxValueToExchange;
    coinList= initialCoinList;

}

            public void printCoinList() {
    System.out.println("The current coin denominations are in circulation : "
            + Arrays.toString(coinList));
}

public static void main(String[] args) {
    //An example
    CoinSorter exampleOne = new CoinSorter("pounds", 0, 10000, new int[]{10,20,50,100,200});
    exampleOne.printCoinList();

}

}
结果:流通的货币面额为:[10、20、50、100、200]
祝你好运:)我希望我能进入你未来的交易所,并购买和持有一些加密:d

3b6akqbq

3b6akqbq3#

这是因为只能在声明站点或作为数组创建表达式的一部分指定数组初始值设定项(捷豹路虎§ 10.6)
下面是声明站点的数组初始值设定项。

int[] array = { 2, 3, 5, 7, 11 };

这是缩写

int[] array = new int[] { 2, 3, 5, 7, 11 };

但是,与字符串文字不同,它不能用作“数组文字”。这意味着您必须写出数组创建表达式:

new CoinSorter("pounds", 0, 10000, new int[] { 10, 20, 50, 100, 200 });
imzjd6km

imzjd6km4#

在创建对象之前 CoinSorter exampleOne = new CoinSorter("pounds", 0, 10000, {10,20,50,100,200}); 声明并初始化数组 int arr[]={10,20,50,100,200} 然后将其传递给构造函数,而不是传递 {10,20,50,100,200} 这样地

int arr[]={10,20,50,100,200};
CoinSorter exampleOne = new CoinSorter("pounds", 0, 10000, arr);

相关问题