有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用数组作为参数的java

我不了解将数组用作参数的细节:

我已经创建了一个int数组和一个方法,但我不明白为什么可以将参数从“note”重命名为“veraendrung”,如下所示

Java如何处理参数?即使调用该方法,是否也需要参数(注意)

public class ArrayParameter {

    public static void main(String[] args) {
        int[] note = {3,2,1,4,5}; //Array
        int[] note2 = {3,2,1,4,5};
        korrektur(note);
        korrektur2(note2);
    }

    //Der Methode "korrektur" wird der int Array (note) übergeben!
    public static void korrektur (int note[]) { 
        for (int i = 0; i<note.length; i++) {
            //Sobald die for Schleife aufgerufen wird, werden die jeweiligen Werte um -1 reduziert
            note[i]-=1;                         
            System.out.println(note[i]);    
        }
    }

    //int "veraenderung" ist ein Parameter
    public static void korrektur2 (int veraenderung[]) { 
        for (int i = 0; i<veraenderung.length; i++) {
            //Sobald die for Schleife aufgerufen wird, werden die jeweiligen Werte um -1 reduziert  
            veraenderung[i]-=1;                     
            System.out.println(veraenderung[i]);
        }   
    }
}

共 (3) 个答案

  1. # 1 楼答案

    如果你已经看过了。类文件,您会发现参数是相同的
    您应该理解“vars范围”的概念(可能是这样)。参数“paramArrayOfInt”具有korrektur()的影响,则会对其进行销毁。在下一个方法中,它只是一个新方法。这是我的理解。可能有错,欢迎大家讨论

        public class ArrayParameter
    {
      public static void main(String[] paramArrayOfString)
      {
        int[] arrayOfInt1 = { 3, 2, 1, 4, 5 };
        int[] arrayOfInt2 = { 3, 2, 1, 4, 5 };
        korrektur(arrayOfInt1);
        korrektur2(arrayOfInt2);
      }
    
      public static void korrektur(int[] paramArrayOfInt)
      {
        for (int i = 0; i < paramArrayOfInt.length; i++)
        {
          paramArrayOfInt[i] -= 1;
          System.out.println(paramArrayOfInt[i]);
        }
      }
    
      public static void korrektur2(int[] paramArrayOfInt)
      {
        for (int i = 0; i < paramArrayOfInt.length; i++)
        {
          paramArrayOfInt[i] -= 1;
          System.out.println(paramArrayOfInt[i]);
        }
      }
    }
    
  2. # 2 楼答案

    i do not understand why it is possible to rename the parameter

    korrekturkorrektur2只是两种不同的方法,每种方法都有两个独立的签名。它们之间没有任何关联(即使程序员可以像您一样为它们命名)

    参数的名称只是在方法块中有用的局部名称

    How do java deal with parameter? Do i need a parameter even if i call the method(note)?

    这些方法参数是必需的。因此,您需要在方法调用中插入它们

  3. # 3 楼答案

    我会尽量把它分解得小一些,让你明白:)

    当您创建方法时。示例:public static void korrektur2 (int veraenderung[])int veraendrung[]可以根据需要命名为任何名称。。。最重要的是,将“int[]”放在括号内的某个地方,以便告诉java“嘿,我的方法使用整数数组”

    VeradenRung这个名称本身仅在本地(在该方法中)用作一个引用,告诉java您解析到该方法中的任何内容都将起作用

    例如,当您调用上面的方法并说korrektur(note);时。note以前被声明为数组,所以当您将“note”放在方法korrektur中时,它与用note替换VeradenRung相同。换句话说,java用传入方法的局部变量替换局部变量

    为了回答你的问题。。。。现在。。。由于您创建了接受整数数组的方法。。。是的,在调用该方法时,必须始终“在其中放置整数数组”。也就是说,每次你调用方法korrektur2korrektur时,如果你没有在里面放一个整数数组,Java就会像“嘿,我是被创建来获取一个整数数组并处理它的……你为什么让我空着?!”

    我希望这解决了你的问题:)