본문 바로가기

Programming 언어/JAVA

6. 참조 자료형 변수, 접근 제어 지시자 및 정보 은닉, 객체 자신을 가리키는 this

1. 변수의 자료형

기본 자료형 -> int, long, float, double 등

참조 자료형 -> String, Date, Student 등

참조 자료형

1. 자바에서 참조 자료형 변수는 객체를 참조하기 위해 사용되는 변수

2. 참조 자료형 변수는 객체의 주소값을 저장하며,  객체 자체를 직접 저장하는게 아니라 해당 객체가 저장된 메모리 주소 참조

3. 일반적으로 클래스의 인스턴스를 생성하면, 해당 인스턴스는 힙 메모리에 할당됩니다. 이 때, 변수를 선언하고 인스턴스를 할당할 때 참조 자료형 변수 사용

참조 자료형 부분은 생성해서 사용해야한다!!

또한, 참조 자료형은 위와 같이 분리해서 정의해야함!

// ==와 equals() 메소드 //

==

-> 변수에 저장된 객체의 주소를 비교

equals()

-> 변수가 가리키는 객체의 문자열(내용)만 비교

2. 접근 제어 지시자, 정보은닉

접근 제어 지시자

클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드

 1. private 

같은 클래스 내부에서만 접근 가능(외부 클래스, 상속 관계 클래스에서도 접근 불가)

2. default(아무것도 없음)

같은 패키지 내부에서만 접근 가능(상속 관계라도 패키지가 다르면 접근 불가)

3. protected

같은 패키지나 상속 관계의 클래스에서 접근 가능, 이외는 접근 불가

4. public 

클래스의 외부 어디서나 접근 할 수 있음

// getter and setter //

흔히 값을 가져오거나 값을 집어넣는 메서드(getter 는 값을 가져오고, setter는 값을 집어넣는다.)

1. private 으로 선언된 멤버 변수(필드)에 대해 접근, 수정할 수 있는 메서드를 public으로 제공

-> 멤버 변수를 직접적으로 수정할 수 없도록 만드는 것

2. get() 메서드만 제공 되는 경우 -> read-only

3. 보통 idle에서 다 제공이 된다.

정보 은닉

private으로 제어한 멤버 변수도 public 메서드가 제공되면 접근 가능하지만, 변수가 public으로 공개되었을 때 보다 private 일 때 각 변수에 대한 제한을 public 메서드에서 제어할 수 있음

3. 객체 자신을 가리키는 this

1. 인스턴스 자신의 메모리를 가리킴

2. 생성자에서 또 다른 생성자를 호출 할 때 사용

3. 자신의 주소(참조값)을 반환 함

생성된 인스턴스 메모리의 주소를 가짐

생성된 인스턴스 메모리의 주소를 가짐 -> 클래스 내에서 참조변수가 가지는 주소 값과 동일한 주소 값을 가지는 키워드

생성자에서 다른 생성자를 호출 하는 this 

1. 클래스에 생성자가 여러 개인 경우, this를 이용하여 생성자에서 다른 생성자 호출 가능
2. 생성자에서 다른 생성자 호출하는 경우, 인스턴스의 생성이 완전하지 않은 상태이므로 this() statement 이전에 다른 statement 사용 불가

생성자를 호출하는 this

빨간 부분이 생성자를 호출하는 this -> (String, int) 형식이므로 이는 각 자료형에 매핑되는 생성자를 가져온다!

여기서는 바로 아래에 있는 생성자를 가져옴