[210621] reference & reference type

5224 단어 referenceJavaJava

reference & reference type


👨‍💻Goal

기본형 변수와 참조형 변수(reference type)의 차이를 이해한다.
참조와 참조형 변수는 어떻게 다른지 이해한다.


기본형(primitive type) 변수

boolean, char, byte, short, int, long, float, double
등 8가지가 같이 실제 연산에 사용되는 것은 모두 기본형 변수

참조형(reference type) 변수

기본형 8가지를 제외한 나머지 타입
참조형 변수를 선언할 때는 변수의 타입으로 클래스의 이름을 사용하므로 클래스의 이름이 참조형 변수의 타입이 된다.
따라서 새로운 클래스를 작성하는 것은 새로운 참조형 변수를 추가한다고 보면 된다.

Date today = new Date();

Date 클래스 타입의 참조형 변수 today 선언
참조형 변수는 null 또는 주소를 값으로 갖는다.
연산자 new의 결과는 생성된 객체의 주소!
이 주소가 대입연산자 '='에 의해 참조형 변수 today에 저장된다.

참조(reference)

참조와 참조형 변수는 다른데,
참조는 참조형 변수가 아닌 참조값(reference type)이다.
예를 들어

Kuruma bz = new Kuruma();

의 경우 new가 반환한 참조(reference)는 new Kuruma(); 의 반환값이고
참조형 변수(reference variable)는 bz이다.

참조 & 참조형 변수 예시

  1. 우선 People class 선언
public class People {
	public int height;
        public int age;
}    

객체의 참조형 변수를 선언하는데, 메모리가 생성되기 전이기에 null로 초기화

People sungHo = null;
People chanHo = null;

Syso("People의 변수 sungHo의 값은 : " + sungHo);
Syso("People의 변수 chanHo의 값은 : " + chanHo);

여기서 new 연산자를 사용해서 메모리를 생성

People sungHo = null; 
People chanHo = null; 

sungHo = new People(); 
chanHo = new People(); 

System.out.println("People의 변수 sungHo의 값은 : " + sungHo); 
System.out.println("People의 변수 chanHo의 값은 : " + chanHo);


메모리가 생성되면 내부 인덱스 테이블에 주소를 매핑하는 참조값이 하나씩 만들어진다.
이렇게 생성된 참조값이 참조형 변수 sungHo & chanHo에 할당(割り当てられる)된다.

좋은 웹페이지 즐겨찾기