메모리상에 생성된 인스턴스를 가리키는데 사용되는 변수
클래스를 사용하기 위해서는 반드시 메모리에 생성을 해주어야 하며, 이렇게 메모리 상에서 생성된 클래스를 클래스 객체 또는 인스턴스라고 함.
모든 인스턴스는 레퍼런스 변수만을 통해서 사용이 가능함.
레퍼런스 변수는 일반적인 데이터를 넣어두는 변수가 아니라서 인스턴스를 가리키는 값이 없음.
레퍼런스 변수는 인스턴스의 멤버변수와 함수를 가리킬 수 있도록 되어있음.
레퍼런스변수.멤버변수
레퍼런스변수.함수()
사용 방식은 다음과 같이 .
를 이용함.
즉, 레퍼런스 변수는 참조형 변수이며, 실제 값이 아닌 주소 값을 가리키는 변수임.
EX) 사용 예시
class Car {
...
public void speedUp()
...
}
public static void main(String[] args) {
Car myCar; // 레퍼런스 변수의 정의(선언)
myCar = new Car(); // 인스턴스(객체) 생성
myCar.speedUp(); // 인스턴스 접근
}
일반적으로 변수를 정의하는 것은 데이터형 변수이름
의 형태를 가지는데 이 점은 데이터형 대신에 클래스 이름이 들어가는 것을 제외하면 인스턴스 변수도 다른 일반적인 데이터와 다르지 않음을 보여줌.
EX) Car myCar
자바에서 인스턴스를 생성하기 위해서는 new
연산자가 필요하며 보통은 new 클래스이름()
형식임. 이렇게 인스턴스를 생성하면 메모리 상에 Car
인스턴스가 생성되고, new
연산자는 생성된 인스턴스를 가리키는 레퍼런스를 반환함. 이 값은 =
연산자에 의해 myCar
레퍼런스 변수에 저장됨.
★ 레퍼런스 변수는 인스턴스 그 자체가 아니고, 단지 인스턴스를 가리키기 위한 변수라는 점임.
인스턴스의 생성을 통해 레퍼런스 변수를 얻으면 해당 객체의 멤버변수와 함수를 사용할 수 있음. 사용법은 레퍼런스 변수명 뒤에 .
를 붙이고 함수명이나 변수명을 붙이면 됨.
레퍼런스변수.함수이름()
레퍼런스변수.멤버변수이름
null 레퍼런스 상수가 의미하는 것은 해당 값을 가진 레퍼런스 변수의 경우 가리키고 있는 인스턴스가 없다는 것을 의미함. 이렇게 null 레퍼런스로 지정된 경우에는 레퍼런스 변수를 사용해도 컴파일 에러는 발생하지 않지만 실행시에 NullPointerException
이 발생함.
분명 자바 공부하고 있었는데 포스팅 공부거리가 나와버렸다.
하나를 공부하면 둘을 공부해야되니깐 역시 사람은 공부를 해야 돼.