Java의 메소드에 배열 전달

Mohammad Irfan 2023년10월12일
  1. Java의 배열
  2. Java의 메소드
  3. Java의 메소드에 배열 전달
  4. Java의 메소드에 배열 전달
  5. Java의 메소드에 다차원 배열 전달
  6. Java에서 배열이 메서드에 전달되는 방식 이해
  7. Java의 메소드에 배열 전달
Java의 메소드에 배열 전달

이 튜토리얼은 Java에서 메소드에 배열을 전달하는 방법을 소개합니다. 또한 주제를 이해하는 데 도움이 되는 몇 가지 예제 코드를 나열했습니다.

Java는 강력한 객체 지향 프로그래밍 언어입니다. 다양한 용도로 사용할 수 있는 범용 프로그래밍 언어입니다. Java의 배열과 메소드에 대해 배우고 배열을 메소드에 전달하는 방법을 이해합시다.

Java의 배열

배열은 동일한 데이터 유형의 고정 크기 모음입니다. 그것들은 연속적인 블록으로 메모리에 저장되며 일정한 시간에 배열의 모든 요소에 무작위로 액세스할 수 있습니다.

배열의 각 요소에는 연결된 전용 인덱스가 있기 때문에 이러한 임의 액세스가 가능합니다. 특정 요소에 도달하기 위해 전체 배열을 탐색할 필요가 없습니다. 어레이 인덱스는 0에서 시작하여 n-1로 이동합니다. 여기서 n은 어레이의 길이입니다.

다음 코드 줄은 배열을 만들고 해당 요소에 액세스하는 방법을 설명합니다.

public class Main {
  public static void main(String[] args) {
    int[] arr; // Declaration
    arr = new int[5]; // Creation
    // Initialization
    arr[0] = 1;
    arr[1] = 3;
    arr[2] = 5;
    arr[3] = 7;
    arr[4] = 9;
    // Accessing Array Elements
    System.out.println("Second Element: " + arr[1]);
    System.out.println("Fourth Element: " + arr[3]);
  }
}

출력:

Second Element: 3
Fourth Element: 7

Java의 메소드

방법은 특정 작업을 수행하는 데 사용할 수 있는 일련의 지침으로 정의됩니다. 코드의 재사용성을 높이는 데 사용됩니다.

예를 들어, 110 사이의 모든 숫자의 계승을 찾으려면 계승에 대한 방법을 정의하고 계승의 전체 논리를 다시 작성하는 대신 해당 방법을 먼저 10번 호출하는 것이 훨씬 낫습니다. 다른 시간.

Java의 메소드는 다른 프로그래밍 언어의 함수와 매우 유사합니다. 유일한 차이점은 메서드는 개체와 연결되어 있지만 함수는 연결되어 있지 않다는 것입니다. Java는 완전히 객체 지향 언어이기 때문에 Java에는 메소드만 있습니다.

Java의 메소드에 배열 전달

메서드는 고정된 매개변수 집합을 사용하거나 사용하지 않을 수 있습니다. 매개변수는 메서드의 본문을 정의하는 데 사용해야 하는 모든 변수가 될 수 있습니다.

계승 방법의 예에서 매개변수는 계승을 찾아야 하는 숫자가 될 수 있습니다. 그러나 전체 배열을 메서드에 전달해야 하는 경우에는 어떻게 될까요?

메소드 선언에서 메소드에 배열을 전달하려면 메소드가 특정 데이터 유형의 배열을 받아들여야 한다고 Java에 알려야 합니다. 배열의 데이터 유형과 대괄호를 사용하여 매개변수가 배열임을 나타냅니다.

// Method Declaration
public static void addTen(int[] arr) {
  // Method Body
}

메서드가 호출될 때마다 배열의 이름을 메서드에 전달해야 합니다. 다음 예제에서는 배열을 수락하고 해당 메서드를 호출하는 메서드가 포함된 전체 코드를 보여줍니다.

public class Main {
  public static void addTen(int[] arr) // int[] denotes that the parameter is an array
  {
    for (int i = 0; i < arr.length; i++) {
      arr[i] += 10;
    }
  }
  public static void main(String[] args) {
    int[] arr = {1, 3, 5, 7, 9};
    addTen(arr); // Simply pass the name of the array to the method
    for (int i = 0; i < arr.length; i++) {
      System.out.print(arr[i] + " ");
    }
  }
}

출력:

11 13 15 17 19 

Java의 메소드에 배열 전달

길이가 같은 두 배열을 메서드에 전달하는 또 다른 예를 고려하십시오. 메서드는 두 배열의 합계를 인쇄해야 합니다.

public class Main {
  public static void addArrays(
      int[] arr1, int[] arr2) // Two arrays are mentioned in the method declaration
  {
    for (int i = 0; i < arr1.length; i++) {
      int sum = arr1[i] + arr2[i];
      System.out.print(sum + " ");
    }
  }
  public static void main(String[] args) {
    int[] arr1 = {1, 2, 3, 4, 5};
    int[] arr2 = {2, 4, 6, 8, 10};
    addArrays(arr1, arr2); // Passing two arrays and calling the method
  }
}

출력:

3 6 9 12 15

Java의 메소드에 다차원 배열 전달

Java의 메소드에 다차원 배열을 전달할 수도 있습니다. 배열의 차원에 따라 배열 요소와 대괄호의 데이터 유형을 지정해야 합니다.

2차원 배열에 있는 모든 요소의 합을 찾는 다음 예를 고려하십시오.

public class Main {
  public static void sum(int[][] arr) {
    int sum = 0;
    for (int i = 0; i < arr.length; i++) {
      for (int j = 0; j < arr[0].length; j++) {
        sum = sum + arr[i][j];
      }
    }
    System.out.print("Sum of all elements is: " + sum);
  }
  public static void main(String[] args) {
    int[][] arr = {{1, 2, 3, 4, 5}, {2, 4, 6, 8, 10}, {1, 3, 5, 7, 9}};
    sum(arr);
  }
}

출력:

Sum of all elements is: 70

Java에서 배열이 메서드에 전달되는 방식 이해

메서드에 매개변수를 전달할 때 뒤에서 어떤 일이 일어나는지 살펴보고 이해하려고 노력합시다.

Java에서 매개변수는 값 유형에 의한 전달입니다. 그것은 우리가 메소드에 변수를 전달할 때마다 그 변수 값의 복사본이 원래 변수 자체가 아니라 메소드가 사용하는 것에 의해 전달된다는 것을 의미합니다.

예를 들어, 메소드가 정수를 받아들이고 그 정수에 10을 추가하는 다음 경우를 생각해 봅시다.

public class Main {
  public static void addTen(int num) {
    num = num + 10;
  }
  public static void main(String[] args) {
    int a = 12;
    addTen(a);
    System.out.print(a);
  }
}

출력:

12

위 코드의 출력은 무엇이라고 생각합니까? 숫자 값은 10씩 증가해야 합니다. 맞죠?

정수가 메서드에 전달되더라도 정수 값의 복사본이 메서드가 실제로 받는 것입니다. 따라서 모든 변경 사항은 해당 복사본에 적용되고 원래 정수에는 변경 사항이 없습니다. 그러나 이것은 int와 같은 기본 데이터 유형에서만 발생합니다.

어레이는 기본 데이터 유형이 아니며 힙 메모리의 메모리 위치를 참조하는 컨테이너 개체로 간주되기 때문에 어레이의 경우가 아닙니다. 결과적으로 실제 데이터가 아닌 메모리 위치의 값을 저장합니다.

해당 메모리 위치에서 무언가를 변경할 때마다 해당 변경 사항은 해당 메모리 위치를 가리키는 모든 포인터(또는 참조)에 표시됩니다. 배열은 Java에서도 값으로 전달되지만 해당 값은 실제로 메모리 위치임을 기억하십시오.

배열의 각 요소에 10을 추가하는 메서드를 만든 위에서 언급한 코드를 고려하십시오.

Java의 메소드에 배열 전달

동일한 유형의 데이터 컬렉션을 메서드에 전달해야 하는 경우가 많습니다. 배열은 이러한 작업에 가장 적합하며 배열을 메서드에 전달할 수 있습니다.

메소드 선언에서 메소드가 언급된 데이터 유형의 배열을 허용해야 함을 명확하게 지정해야 합니다. 이는 데이터 유형과 대괄호(예: int[] arrayName)를 사용하여 수행됩니다.

메서드를 호출하는 동안 배열 이름을 입력할 수 있습니다. 이 자습서에서는 메서드가 배열을 처리하는 방법과 배열의 요소를 저장하는 메모리 위치가 업데이트되는 방법도 배웠습니다.

관련 문장 - Java Array

관련 문장 - Java Method