Java 将int数组作为参数从一个方法传递到另一个方法

Java 将int数组作为参数从一个方法传递到另一个方法,java,Java,我正在做一个学校作业,但我在将int数组作为参数从一个方法传递到另一个方法时遇到了问题 我的代码是: import java.util.Scanner; public class Eac4P1_002 { Scanner scanner = new Scanner(System.in); //Método main public static void main (String[] args){ Eac4P1_002 programa = new Eac4P1

我正在做一个学校作业,但我在将int数组作为参数从一个方法传递到另一个方法时遇到了问题

我的代码是:

import java.util.Scanner;

public class Eac4P1_002 {
    Scanner scanner = new Scanner(System.in);

//Método main
    public static void main (String[] args){
        Eac4P1_002 programa = new Eac4P1_002();
        programa.inicio();
}
//Método principal
    public void inicio() {
        presentacion();
        intro();
        resultado();
}

//Presentación
    public void presentacion(){
        System.out.println("Hola, bienvenid@ al ejercicio 2!\n"
                + "El programa os pedirá la edad de dos clases, "
                + "en enteros y comprueba si los valores de la segunda clase "
                + "son más grandes que los de la primera.");
    }
//Inserción de datos
    public void intro(){
        System.out.println("De que medida necesitas que sean las clases?");
        int medida = scanner.nextInt();
        int clase1 [] = new int[medida];
        int clase2 [] = new int[medida];
        int contador = 0;
        int posicion = 1;

        System.out.println("Ahora deberás introducir el valor de cada "
                    + "posición de la clase inicial.");
        while (contador < clase1.length){
                System.out.print("Escribe el valor de la posición "+posicion+": ");
                clase1[contador] = scanner.nextInt();
                contador++;
                posicion++;
            scanner.nextLine();
        }

        System.out.println("A continuación debes entrar los valores de la"
                + "segunda clase.");
        contador = 0; posicion = 1;

        while (contador < clase2.length){
                System.out.print("Escribe el valor de la posición "+posicion+": ");
                clase2[contador] = scanner.nextInt();
                contador++;
                posicion++;
            scanner.nextLine();
        }
    }

    public void resultado(int[]clase1, int[] clase2){
        System.out.println("Analisis de los datos coleccionados.\n");
        System.out.println("Colección 1:");
                for(int i=0; i < clase1.length; i++ ){
                    System.out.print(clase1[i]);
                }
    }
}
import java.util.Scanner;
公共类Eac4P1_002{
扫描仪=新的扫描仪(System.in);
//梅托多大街
公共静态void main(字符串[]args){
Eac4P1_002程序A=新的Eac4P1_002();
programa.inicio();
}
//梅托多校长
公共空间(inicio){
呈现();
简介();
resultado();
}
//Presentación
公共无效呈现(){
System.out.println(“Hola,bienvenid@al-ejercicio 2!\n”
+“课程计划”
+“肠胃和肠胃综合征”
+“我的儿子玛斯·格兰德斯·克洛斯·德拉普里梅拉。”);
}
//达托斯学院
公开资料简介({
System.out.println(“是否需要医疗保险?”);
int medida=scanner.nextInt();
int clase1[]=新int[medida];
int clase2[]=新int[medida];
int contador=0;
int posicion=1;
System.out.println(“Ahora deberás Introcir el valor de cada”
+“法律地位”(posición de la clase inicial.);
while(contador
调用resultado()时,main方法中出现错误;
我做错什么了吗?我只想在resultado()方法中使用在intro()方法中创建的数组。

因为调用
resultado()时没有传递任何内容。
。该方法需要传递一个int数组

例如:

//Método principal
    public void inicio() {
        presentacion();
        intro();

        int[] ar1 = {1,2,3,4,};
        int[] ar2 = {2,3,4,5};
        resultado(ar1, ar2);
}

我已经为您重构了代码,将类拆分为两个方法。 从introGetClase1()和introGetClase2()方法中,返回resultado()方法所需的int[]

参数被传递给resultado()方法

import java.util.Scanner;
公共类Eac4P1_002{
扫描仪=新的扫描仪(System.in);
//梅托多大街
公共静态void main(字符串[]args){
Eac4P1_002程序A=新的Eac4P1_002();
programa.inicio();
}
//梅托多校长
公共空间(inicio){
呈现();
System.out.println(“1类医疗设备的需求”);
int medida=scanner.nextInt();
int[]clase1=introGetClase1(medida);
int[]clase2=introGetClase2(medida);
结果(第1类,第2类);
}
//Presentación
公共无效呈现(){
System.out.println(“Hola,bienvenid@al-ejercicio 2!\n”
+“课程计划”
+“肠胃和肠胃综合征”
+“我的儿子玛斯·格兰德斯·克洛斯·德拉普里梅拉。”);
}
//达托斯学院
公共int[]introGetClase1(int medida){
int clase1[]=新int[medida];
int contador=0;
int posicion=1;
System.out.println(“Ahora deberás Introcir el valor de cada”
+“法律地位”(posición de la clase inicial.);
while(contador
您的结果o(int[]clase1,int[]clase2)需要两个参数

 int[] class1 = {1,2,3,4,5};
 int[] class2 = {6,7,8,9,10}
 resultado(class1,class2);

如果您想使用在<代码>内联()中创建的数组< /代码>作为对 ReultAdO()<代码>的输入,请考虑添加返回值。code>public void intro()可以是

public int[]intro()


返回某个内容并传递该内容,或者将其保存在实例字段中且不接受args。请给我一个示例好吗?我已经为您重构了代码,请检查我的答案。在调用resultado()时,您没有将任何内容传递给它。您的程序是说“一个错误”,还是提供了有关错误的更多信息?如果它提供了更多信息,那么这些信息对于找出错误的原因非常有用。请不要对我们保密。请解释你做了什么,而不仅仅是提供一段代码。解释
 int[] class1 = {1,2,3,4,5};
 int[] class2 = {6,7,8,9,10}
 resultado(class1,class2);
public int[] intro(){
    System.out.println("De que medida necesitas que sean las clases?");
    int medida = scanner.nextInt();
    int clase1 [] = new int[medida];
    int contador = 0;
    int posicion = 1;

    System.out.println("Ahora deberás introducir el valor de cada "
                + "posición de la clase inicial.");
    while (contador < clase1.length){
            System.out.print("Escribe el valor de la posición "+posicion+": ");
            clase1[contador] = scanner.nextInt();
            contador++;
            posicion++;
        scanner.nextLine();
    }
return clase1;
}
resultado( intro() , intro() );