Chapter 6-5 인스턴스멤버와 정적 멤버
1.1 This와 This()의 차이
This 참조변수
: this는 인스턴스가 자기 자신을 참조하는데 사용하는 변수로, 자신의 객체에 접근할 때 사용된다
: 이러한 this 참조변수는 해당 인스턴스의 주소를 가지고 있다.
: 주로 멤버변수와 매개변수의 이름이 동일할때 이를 구분짓기 위해 사용함
🔎 기본형과 참조형
(1) 기본형 : 변수가 값 자체를 보관함
(2) 참조형 : 변수가 값 자체를 보관하는게 아니라 변수가 저장된 영역을 가르킨다.
This() 생성자
: This()는 같은 클래스에서 생성자가 다른 생성자를 호출할 때 사용된다
: this() 메소드에 인수를 전달하면, 생성자 중에서 메소드 시그니처가 일치하는 다른 생성자를 찾아 호출해준다.
: 주로 코드의 중복을 줄일 목적으로 사용되며, this()는 생성자 코드에서만 사용할 수 있다.
*) 주의할점 : 생성자 코드 안에서 사용될 때 첫번째 문장으로 다른 코드보다 가장 윗줄에 위치해야한다.
class Car{
String color; // 인스턴스 변수
String gearType;
int door;
Car(){
this("white", "auto", 4); // Car(String color, string gearType, int door)를 호출
}
Car(String color){
this(color, "auto", 4); // Car(String color, string gearType, int door)를 호출
}
Car(String color, String gearType, int door){
this.color = color;
this.gearType = gearType;
this.door = door;
}
}
1.2 Static과 싱글톤
Static 변수
: 여러 인스턴스가 하나의 값을 공유할때 사용
: Static으로 선언한 변수는 인스턴스가 생성될 때 마다 새로 생성되는 변수가 아니며, 프로그램이 실행되어 메모리에
적재되었을 때 한번 메모리에 공간이 할당되어 모든 인스턴스가 공유한다.
Singleton 패턴
: static을 응용하여 프로그램 전반에서 사용하는 인스턴스를 하나만 구현하는 방식
public class Company {
private static Company instance = new Company(); //2. 생성자가 Private이므로 외부에서 인스턴스를 생성할 수 없기때문에 내부에 유일한 인스턴스를 생성한다.
private Company() {} //1. 생성자를 private 형식으로 만든다
public static Company getInstance() { // 3. 유일한 인스턴스를 외부에서 사용할 수 있게 하기 위해서 Public으로 메서드를 선언한다.
if (instance == null) { // 해당 메서드는 static으로 선언해야하는데, 외부에서 getInstance()메서드를 호출할 때 생성과 관계없이 호출되어야 하기 때문
instance = new Company();
}
return instance;
}
}
# 외부 클래스
Company myCompany = Company.getInstance(); // 생성된 인스턴스를 가져와 사용한다.
1.3 Final 키워드
: final 키워드는 상황에 맞게 더 이상의 상속이나, 오버라이딩을 금지하고자 할 때 사용함.
- Final 필드 : Final 키워드를 필드에 사용하면 그 필드는 더이상 수정이 불가능 함
- Final 클래스 : Final 키워드를 클래스에 사용하면 그 클래스는 더이상 상속이 불가능함
- Final 메소드 : Final 키워드를 메소드에 사용하면 그 메소드는 더이상 오버라이딩이 불가능함
'✏️ Java' 카테고리의 다른 글
| 혼공자 | Chapter 7.1 상속 (0) | 2022.12.05 |
---|---|
| 혼공자 | Chapter 6 . 클래스 5️⃣ (0) | 2022.11.30 |
| 혼공자 | Chapter 6 . 클래스 3️⃣ (0) | 2022.11.28 |
Java | Extend와 Implements(인터페이스) (0) | 2022.11.25 |
| 혼공자 | Chapter 6 . 클래스 2️⃣ (2) | 2022.11.25 |