Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 비전공자를 위한 데이터베이스 입문
- 오라클 캐릭터셋 확인
- ora-01722
- Orace 18c
- oracle 18c
- Oracle 윈도우 설치
- 오라클 캐릭터셋 조회
- 윈도우 Oracle
- Oracle 18c HR schema
- 무료 오라클 데이터베이스
- Oracle 18c HR
- oracle
- Oracle 테이블 띄어쓰기
- Oracle 초기 사용자
- 무료 오라클 설치
- Oracle Express Edition
- 오라클 캐릭터셋 변경
- Oracle 사용자명 입력
- Oracle 사용자명
- Oracle 18c 설치
- 서평단
- ORA-12899
- Oracle 테이블 대소문자
- ORA-00922
Archives
- Today
- Total
Nirsa's Learning Lab
[JAVA] 자바 참조형 매개변수 이해하기 (java reference type parameter) 본문
반응형
자바 참조형 매개변수 이해하기 (java reference type parameter)
매개변수는 기본형과 참조형 매개변수로 나눠집니다. 기본형의 경우 값이 복사되지만, 참조형의 경우 해당 인스턴스의 주소를 복사하여 값 자체에 영향을 줄 수 있습니다.
아래 이미지들을 참고하여 본다면 참조형 매개변수의 경우 실제 값을 가져가는것이 아니라, 주소값을 참고하여 접근하고 실제 값이 담긴 객체에 접근하기 때문에 수정이 되는것을 확인할 수 있습니다.
기본형 매개변수 | 변수의 값을 읽기만 가능 (read only) |
참조형 매개변수 | 변수의 값을 읽고 수정 가능 (read & write) |
1. Class01 타입(참조형)의 num 인스턴스 생성 → num의 x에 100 대입 → 출력
아래 이미지와 같이 바로 값이 들어가지 않고, 해당 값이 들어있는 객체의 주소값을 저장하여 접근하는 방식으로 됩니다.
2. method01 메소드 호출 및 num 전달 → num의 주소값 참고 (값 X) → x에 1000 대입 → 출력
method01 메소드를 호출하며 num을 전달합니다. 이때 값이 들어가는것이 아닌 주소값을 참고하며, x에 1000을 대입할 때 실제 그 주소를 가지고 있는 값이 수정 됩니다.
3. method01 실행 후 실제로 값이 변경되었는지 다시 출력
실제로 method01에서 1000을 대입한 후 실제로 값이 변경된것인지 확인을 위한 출력 입니다. , method01 종료된 후 출력한다면 아래와 같이 변경된 값 1000이 출력 됩니다.
4. 테스트 코드
class Class01 {
int x;
}
public class test {
public static void main(String[] args) {
Class01 num = new Class01();
num.x = 100;
System.out.println("Class : "+num.x);
System.out.println("method : "+method01(num));
System.out.println("Class : "+num.x);
}
static int method01(Class01 test) {
test.x = 1000;
return test.x;
}
}
반응형
'Programming > JAVA' 카테고리의 다른 글
[JAVA] 자바 HashMap Null이 아닌 값 꺼내기 (0) | 2022.05.20 |
---|---|
[JAVA] 자바 인터페이스란? (1) | 2022.05.16 |
[JAVA] intellij Run 비활성화 시 해결 방법 (2) | 2022.04.12 |
[JAVA] intellij에서 Spring 실행 시 finished with non-zero exit value 1 에러 해결 방법 (0) | 2022.04.05 |
[JAVA] 자바 int a = 011 -> 9가 나오는 이유 ( what is "int a = 011" and not 9 why, The literal 09 of type int is out of range ) (0) | 2022.03.16 |