
싱글톤(Singleton)
하나의 애플리케이션 내에서 단 하나만 생성되는 객체
< 만드는 방법? >
* 외부에서 new 연산자로 생성자를 호출할 수 없도록 막기
- private 접근 제한자를 생성자 앞에 붙임
* 클래스 자신의 타입으로 정적 필드 선언
- 자신의 객체를 생성해 초기화
- private 접근 제한자 붙여 외부에서 필드 값 변경 불가하도록
* 외부에서 호출할 수 있는 정적 메소드인 getInstance() 선언
- 정적 필드에서 참조하고 있는 자신의 객체 리턴
final 필드
최종적인 값을 갖고 있는 필드 = 값을 변경할 수 없는 필드


* final이 값을 변경할 수 없다는 것은 동일하다.
그럼 언제, 왜 사용?
1. 필드 - 객체가 사라질 때까지 필드값이 바뀌면 안될 때
2. 매개변수 - 인자값을 보호해야할 때
3. 지역변수 - ex) final double pi = 3.14159;
4. 타입선언부 - 상속을 못하게 만든다. class 앞에 붙이면 자식 class를 가질 수 없다.
5. 메소드 - 메소드를 오버라이딩 할 수 없게 한다.
*상수(static final)
= 정적 final 필드
final 필드
- 객체마다 가지는 불변의 인스턴스 필드
ex) 주민번호 -> 바뀌지 않아. 하지만 사람마다 달라
상수
- 객체마다 가지고 있지 않음
- 메소드 영역에 클래스 별로 관리되는 불변의 정적 필드
- 공용 데이터로서 사용
ex) 원주율 PI
--> 전부 대문자로 작성 / 다른 단어가 결합되면 _로 연결
*패키지
클래스를 기능별로 묶어서 그룹 이름을 붙여 놓은 것
- 파일들을 관리하기 위해 사용하는 폴더(디렉토리)와 비슷한 개념
- 패키지의 물리적인 형태는 파일 시스템의 폴더
import문
- 패키지 내에 같이 포함된 클래스간 클래스 이름으로 사용 가능
- 패키지가 다른 클래스를 사용해야 할 경우
-> 패키지 명 포함된 전체 클래스 이름으로 사용
-> import문으로 패키지를 지정하고 사용
'교육과정 기록 > ☕ Java' 카테고리의 다른 글
| [4.11] 접근제한자/어노테이션 (0) | 2022.04.12 |
|---|---|
| for문을 이용해 별찍기 [별피라미드] (0) | 2022.04.11 |
| 4.5~4.6 OOP와 클래스 (0) | 2022.04.07 |
| 자바빈즈 클래스 ( java beans class) (0) | 2022.04.06 |
| 4.4 객체지향프로그래밍(OOP) (0) | 2022.04.05 |