Step it up now

기본형 vs 참조형 - 메서드 호출시 본문

개인공부/java

기본형 vs 참조형 - 메서드 호출시

케잉 2024. 5. 16. 23:15
변수가 기본형일 때
public class MethodChange1 {

    public static void main(String[] args) {
        int a = 10;
        System.out.println("메서드 호출 전: a = " + a);
        changePrimitive(a);
        System.out.println("메서드 호출 후: a = " + a);
    }

    static void changePrimitive (int x){  // a의 값 10을 넘겨서 받아서 10을 가지고 있음
        x = 20;  // 10과 20 둘다 가지고 있음
    }
}

 

결과

 

 

 

 

 

변수가 참조형일 때
public class MethodChange2 {

    public static void main(String[] args) {
        Data dataA = new Data();
        dataA.value = 10;
        System.out.println("메서드 호출 전: dataA.value값: " + dataA.value);
        System.out.println("dataA = " + dataA);
        changeReference(dataA);
        System.out.println("메서드 호출 후: dataA.value값: " + dataA.value);
    }
    static void changeReference(Data dataX){ //dataA가 대입되면서 dataA의 참조값도 전달
        System.out.println("dataX = " + dataX);
        dataX.value = 20; // dataX와 dataA는 같은 참조값을 가지므로 dataA도 20이 됨
    }

}

 

결과

 

'개인공부 > java' 카테고리의 다른 글

package  (1) 2024.06.05
생성자  (0) 2024.06.03
배열 ++ 문제 다시풀기  (0) 2024.04.17
scanner 스캐너  (0) 2024.04.05
반복문  (0) 2024.04.03