자바에서 참조형 매개변수 (Reference Parameters)는 메서드에 객체 또는 배열을 전달하는 데 사용되는 매개변수 유형입니다. 참조형 매개변수는 실제 객체나 배열에 대한 참조(주소)를 복사하여 메서드에 전달하므로 메서드 내에서 해당 객체 또는 배열의 데이터를 변경하면 호출자에게도 영향을 미칩니다. 이를 통해 메서드는 객체의 내부 상태를 변경하거나 객체의 메서드를 호출하여 작업을 수행할 수 있습니다.
참조형 매개변수를 설명하면 다음과 같은 중요한 점을 고려할 수 있습니다.
1. 참조(주소)의 복사
참조형 매개변수는 객체 또는 배열의 실제 데이터가 아닌 해당 객체 또는 배열에 대한 참조(주소)를 전달합니다. 이것은 메모리 효율성과 성능을 향상시키는데 도움이 됩니다.
2. 메서드 내부에서 객체 변경
메서드 내부에서 전달된 객체 또는 배열의 내부 상태를 변경할 수 있습니다. 이러한 변경 사항은 호출자에게도 영향을 미칩니다.
3. 메서드 반환 값이 없어도 변경 가능
참조형 매개변수를 사용하면 메서드는 반환값을 사용하지 않더라도 객체의 상태를 변경할 수 있습니다. 이것은 메서드의 부수 효과(side effect)를 허용합니다.
4. NullPointerException 주의
메서드 내에서 객체가 null인지 확인하고 해당 객체에 접근하기 전에 안전하게 확인하는 것이 중요합니다. 그렇지 않으면 NullPointerException 예외가 발생할 수 있습니다.
예를 들어, 다음은 참조형 매개변수를 사용한 간단한 예제입니다.
class Person {
String name;
public Person(String name) {
this.name = name;
}
}
public void changeName(Person person) {
person.name = "Alice";
}
public static void main(String[] args) {
Person person = new Person("Bob");
changeName(person);
System.out.println(person.name); // 출력 결과: Alice
}
위의 예제에서 changeName 메서드는 person 객체의 name 속성을 변경하고, 이 변경 사항이 main 메서드에서 출력됩니다. 이는 참조형 매개변수를 사용하여 객체의 상태를 변경하는 간단한 예를 보여줍니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 재귀 호출(Recursion) (0) | 2023.11.07 |
---|---|
자바 참조형 변환타입 (0) | 2023.11.07 |
자바 기본형 매개변수 (0) | 2023.11.07 |
자바 JVM의 메모리구조 (0) | 2023.11.07 |
자바 메서드 예외 목록 (Throws Exception List) (0) | 2023.11.07 |