Java 为什么可以';在一个类之外的方法中,我不是一个数组吗?
我已经创建了数组,在它的类之外,我创建了一个方法来对数组进行排序。它一直说找不到我创建的数组的变量名。当我采用该方法并将其与数组放在同一个类中时,它可以工作,但它违背了我试图实现的目的,帮助吗Java 为什么可以';在一个类之外的方法中,我不是一个数组吗?,java,arrays,sorting,methods,syntax,Java,Arrays,Sorting,Methods,Syntax,我已经创建了数组,在它的类之外,我创建了一个方法来对数组进行排序。它一直说找不到我创建的数组的变量名。当我采用该方法并将其与数组放在同一个类中时,它可以工作,但它违背了我试图实现的目的,帮助吗 /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Syste
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
System.out.println("Enter a length for the array: ");
Scanner scan = new Scanner(System.in);
int x = scan.nextInt();
int randomNumbers[] = new int[x];
for (int index = 0; index < randomNumbers.length; index++)
{
randomNumbers[index] = (int) (Math.random() * 100);
}
for (int index = 0; index < randomNumbers.length; index++)
{
System.out.println(randomNumbers[index]);
}
}
static void sortAscending()
{
Arrays.sort(randomNumbers);
for (int i = 1; i < randomNumbers.length; i++) {
System.out.println("Number: " + randomNumbers[i]);
}
}
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
//此处的TODO代码应用程序逻辑
System.out.println(“为数组输入长度:”);
扫描仪扫描=新扫描仪(System.in);
int x=scan.nextInt();
整数随机数[]=新整数[x];
for(int index=0;index
由于随机数
是在main
方法中声明的,因此其他方法无法访问它。有几种方法可以从其他方法访问阵列,例如:
static void sortAscending(int[] randomNumbers) {
//...
}
然后像这样调用sortAscending
callfrommain
sortAscending(randomNumbers);
publc class MyClass {
// declare randomNumbers as field
private int[] randomNumbers;
public static void main(String[] args) {
MyClass o = new MyClass();
o.localMain(args);
// you could call sortAscending here like this
o.sortAscending();
}
// you don't really need to pass args, since you don't use it
public void localMain(String[] args) {
// TODO code application logic here
System.out.println("Enter a length for the array: ");
Scanner scan = new Scanner(System.in);
int x = scan.nextInt();
// assing new value to field
randomNumbers = new int[x];
for (int index = 0; index < randomNumbers.length; index++)
{
randomNumbers[index] = (int) (Math.random() * 100);
}
for (int index = 0; index < randomNumbers.length; index++)
{
System.out.println(randomNumbers[index]);
}
}
void sortAscending()
{
Arrays.sort(randomNumbers);
for (int i = 1; i < randomNumbers.length; i++) {
System.out.println("Number: " + randomNumbers[i]);
}
}
}
public类MyClass{
//将随机数声明为字段
私人整数【】随机数;
公共静态void main(字符串[]args){
MyClass o=新的MyClass();
o、 localMain(args);
//你可以这样叫巫术表演
o、 排序();
}
//您实际上不需要传递args,因为您不使用它
public void localMain(字符串[]args){
//此处的TODO代码应用程序逻辑
System.out.println(“为数组输入长度:”);
扫描仪扫描=新扫描仪(System.in);
int x=scan.nextInt();
//将新值分配给字段
随机数=新整数[x];
for(int index=0;index
将
随机数
作为方法参数传递。如果您需要返回排序的数组
而不仅仅是打印内容,请返回它。我正在处理一个问题,要求我编写一个排序和一个降序的方法,我已经创建了它们,但是如何返回数组而不是打印。糟糕的代码格式。如果你想有人帮你解决问题,请努力正确提问(格式化等)。回答得好,谢谢!!