romworld

Chapter 06 객체지향 프로그래밍 (2) 본문

JAVA/개념정리

Chapter 06 객체지향 프로그래밍 (2)

inderrom 2022. 9. 30. 00:32

싱글톤 (singleton)

-  단 하나의 객체

public class 클래스{
//정적필드
private static 클래스 singleton = new 클래스();

//생성자
private 클래스(){}

//정적 메서드
static 클래스 getInstance(){
return singleton;
}
}

- 싱글톤은 클래스 외부에서 new 연산자로 생성자를 호출할 수 없도록 막아야한다.

private 제한자를 걸어준다. (참고로 클래스 내부에서는 new연산자로 생성자 호출 가능)

정적 필드도 private 제한자를 붙혀서 필드값 변경을 하지 못하게 막고 

대신, 외부에서 호출할 수 있는 정적 메서드인 getInstance()을 선언하고 정적 필드에서 참조하고 있는 자신의 객체를 리턴해준다.

 

외부에서 객체를 얻는 유일한 방법은 getInstance()메소드를 호출하는 방법이다

getInstance() 메서드는 단 하나의 객체만 리턴하기 때문에 아래 코드에서 변수1과 변수2는 동일한 객체를 참조한다.

 

클래스 변수1 = 클래스.getInstance();
클래스 변수2 = 클래스.getInstance();

 

 

final 필드 

-  초기값이 저장되면 이것이 최종적인 값이 되어서 프로그램을 실행 도중에 수정할 수 없다.

 

 

상수

- 상수는 대문자로 작성하는 것이 관례!

- [static filnal 타입 상수 = 초기값;]

- 한 번 초기값 저장되면 변경할 수 없음!!

- 원주율 파이나 지구의 무게 및 둘레 같은 불변의 값 저장하는 필드

 

접근 제한자

 

public : 외부 클래스 다른 패키다 다 가능

protected : 같은 패키지 또는 자식클래스에서 사용 가능

private: 외부에서 사용될 수 없음!! 

default : 같은 패키지에 소속된 클래스만 가능

 

 

Getter Setter

-필드를 private를 선언하면 getter setter로 메서드를 작성해서 피드값을 안전하게 변경/사용한다.

외부로 전달하는 메서드가 getter  값을 변경하는 역할을 setter

 

getter 는 리턴타입이 있고, 리턴값을 받는다.

setter는 리턴타입이 void 매개 변수는 필드타입이다.

 

-source - generate Getters and Seggers 를 누르면 자동 생성 가능!

'JAVA > 개념정리' 카테고리의 다른 글

추상 클래스와 인터페이스  (0) 2022.10.09
Chapter 07 상속  (0) 2022.10.04
Chapter 06. 객체지향 프로그래밍(1)  (1) 2022.09.23
Chapter 05-4. 다차원 배열, for each  (0) 2022.09.19
Chapter 05-3. 정렬, 석차 구하기  (0) 2022.09.19
Comments