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

Java初学者项目:我的数组有什么问题?,java,arrays,sorting,methods,Java,Arrays,Sorting,Methods,我刚开始学习Java作为我大学课程的一部分,我对y first项目有一个问题。我刚刚开始创建一个项目,基本上分类硬币。我正在尝试制作一个名为printCoinList()的方法,该方法打印硬币列表的内容,以便士表示当前流通的面额(即“当前流通的硬币面额:200100,50,20,10”) 到目前为止,我已经声明了我的实例字段,创建了一个参数,并尝试创建此方法。我唯一的问题是,当我尝试在main()方法中测试它时,使用数组作为coinList参数似乎有问题。到目前为止,我的问题是: public

我刚开始学习Java作为我大学课程的一部分,我对y first项目有一个问题。我刚刚开始创建一个项目,基本上分类硬币。我正在尝试制作一个名为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});
唯一的问题似乎出现在exampleOne中,因为当我去掉它时,其余的代码似乎运行良好。 错误消息是:

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

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

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

int[] myIntArray = {10,20,50,100,200};
int[] myIntArray = new int[]{10,20,50,100,200};
更换
coinserter exampleOne=新的coinserter(“磅”,0,10000,{10,20,50100200});


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

int[] myIntArray = {10,20,50,100,200};
int[] myIntArray = new int[]{10,20,50,100,200};
更换
coinserter exampleOne=新的coinserter(“磅”,0,10000,{10,20,50100200});

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

下面是声明站点上的数组初始值设定项

int[]数组={2,3,5,7,11};
这是

int[]数组=新的int[]{2,3,5,7,11};
但是,与字符串文字不同,它不能用作“数组文字”。这意味着您必须写出数组创建表达式:

newcoinserter(“磅”,0,10000,newint[]{10,20,50,100,200});
这是因为只能在声明站点或作为数组创建表达式的一部分指定数组初始值设定项。()

下面是声明站点上的数组初始值设定项

int[]数组={2,3,5,7,11};
这是

int[]数组=新的int[]{2,3,5,7,11};
但是,与字符串文字不同,它不能用作“数组文字”。这意味着您必须写出数组创建表达式:

newcoinserter(“磅”,0,10000,newint[]{10,20,50,100,200});

首先,在java中,您需要指定数组的类型:

硬币分拣机示例一=新硬币分拣机(“磅”,0,10000,新整数[]{10,20,50100200})

那么您的“printCoinList”方法将不起作用,这将打印:

目前的硬币面额正在流通[I@7852e922

您的最终代码应该是:

导入java.util.array

公共分类机{

//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]


祝您好运:)我希望我可以访问您未来的exchange并购买和持有一些加密:D

首先,在java中,您需要指定数组的类型:

硬币分拣机示例一=新硬币分拣机(“磅”,0,10000,新整数[]{10,20,50100200})

那么您的“printCoinList”方法将不起作用,这将打印:

目前的硬币面额正在流通[I@7852e922

您的最终代码应该是:

导入java.util.array

公共分类机{

//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

coinserter exampleOne=新的coinserter(“磅”,0,10000,{10,20,50100200});声明并初始化数组
int arr[]={10,20,50100200}
然后将其传递到构造函数中,而不是传递
{10,20,50100200}

像这样

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


创建对象之前,请先声明并初始化数组
int arr[]={10,20,50100200}
,然后在构造函数中传递它,而不是传递
{10,20,50100200}

像这样

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


您好,谢谢!这很有效。我使用了新的硬币分类机(“磅”,0,10000,新整数[]{10,20,50,100,200});但是现在当我尝试打印我的方法时,它显示出当前的硬币面额正在流通[I@1c4af82c它不打印硬币面额,只打印内存。知道如何解决这个问题吗?非常感谢!@Millyfg这个问题已经解决了。谢谢!全部排序。@Millyfg别忘了将其中一个答案标记为已接受,让社区知道这个问题已经解决。您好,谢谢!这已经奏效了。我使用了新的硬币分类机(“磅”,0,10000,新整数[]{10,20,50,100,200});然而,现在当我尝试打印我的方法时,它显示出当前的硬币面额正在流通[I@1c4af82c它不打印硬币面额,只打印内存。知道如何解决这个问题吗?非常感谢!@Millyfg这个问题已经解决了。谢谢!全部排序。@Millyfg别忘了将其中一个答案标记为已接受,让社区知道这个问题已经解决。