inblog logo
|
chodong
    java

    030_인수 전달 방법

    Dec 21, 2023
    030_인수 전달 방법
    Contents
    인수 전달 방법

    인수 전달 방법

    기초형 값이 전달되는 경우

    • 호출자가 전달하는 인수의 값이 매개 변수로 복사된다. → ‘값에 의한 호출’ 방식으로 전달

    객체가 전달되는 경우

    • 객체의 참조 값만 복사되어 전달된다. → 참조 변수는 주소 값을 가진다.
    • 참조 값이 매개 변수로 복사되면 메소드의 매개 변수도 동일한 객체를 참조하게 된다.
    • 매개 변수를 통하여 객체의 내용을 변경하게 되면 인수가 가리키는 객체도 변경된다.
    예시 코드
    package ex05; class Pizza { int radius; public Pizza(int r) { this.radius = r; } Pizza whosLargest(Pizza p1, Pizza p2) { if (p1.radius > p2.radius) { return p1; } else { return p2; } } } public class PizzaTest { public static void main(String[] args) { Pizza obj1 = new Pizza(14); Pizza obj2 = new Pizza(18); Pizza largest = obj1.whosLargest(obj1, obj2); System.out.println(largest.radius + "인치 피자가 더 큼."); } }
    ☝
    whosLargest() 메소드는 실제 p1, p2의 값을 가져오는 것이 아닌 주소 값을 가져온다는 것을 꼭 기억해두자!

    배열이 전달되는 경우

    • 배열은 객체이기 때문에 배열 참조 변수를 복사한다. → 주소 값을 복사 한다.
    • 배열이 전달되는 것이 아닌 배열을 가리키는 주소 값만 복사한다.
    • 메소드에서 매개 변수를 통하여 배열을 변경하면 원본 배열이 변경된다.
    예시 코드
    package ex05.eg; public class ArrayArgumentTest { public static double minArray(double[] list) { double min = list[0]; for (int i = 1; i < list.length; i++) { if (list[i] < min) { min = list[i]; } } return min; } public static void main(String[] args) { double[] a = {1.1, 2.2, 3.3, 4.4, 0.1, 0.2}; double[] b = {-2.0, 3.0, -9.0, 2.9, 1.5}; double min; min = minArray(a); System.out.println("첫 번째 배열의 최소값=" + min); min = minArray(b); System.out.println("두 번째 배열의 최소값=" + min); } }
    Share article

    chodong

    RSS·Powered by Inblog