Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 참조변수
- MethodArea
- 도커네트워크
- JIT
- LSP
- JVM
- Operating System
- HeapArea
- pg_hba.conf
- RDD
- 42서울
- classloader
- 자바컴파일러
- Compiler
- javac
- SRP
- generics
- jdk
- 포함관계
- 42seoul
- 이노베이션아카데미
- StackArea
- la-piscine
- 라피신
- 제네릭스
- 상속관계
- 운영체제
- 바이트코드
- java
- abstract
Archives
- Today
- Total
while(1) 작심삼일();
접근제어자 (public, protected, private)과 싱글톤 본문
멤버, 클래스, 메서드, 생성자에 사용되어 해당하는 멤버 또는 클래스를 외부에서 접근하지 못하도록(캡슐화) 제한하는 역할을 함.
- private : 같은 클래스 내에서만 접근 가능
- default : 같은 패키지 내에서만 접근 가능
- protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손 클래스에서 접근 가능
- public : 접근 제한이 전혀 없다.
접근 범위 : private < default < protected < public 순으로 보다 많은 접근을 허용한다.
생성자를 private로 지정하면 외부에서 인스턴스를 생성할 수 없고, 클래스 내부에서만 생성이 가능하다. 이 방법을 이용하여 싱글톤 패턴을 만들 수가 있는데, 어떤 클래스가 최초 한번만 메모리를 할당하고(Static) 그 메모리에 객체를 만들어 사용하는 디자인 패턴을 의미한다. 이렇게 되면 한번의 객체 생성으로 인해 재 사용을 하여 메모리 효율을 높일 수 있고, 전역성으로 인해 다른 객체와 공유가 쉽다.
final class Singleton{
private static Singleton s = new Singleton();
private Singleton() {
}
public static Singleton getInstance() {
return s;
}
}
생성자가 private이 되어버리면, 자식클래스에서 부모클래스의 생성자를 호출할 수 없기 때문에 부모클래스가 될 수 없다. 그렇기 때문에 class앞에 final을 명시하는 것이 좋다.
'CS > java' 카테고리의 다른 글
JVM 메모리 구조 (0) | 2021.04.28 |
---|---|
JDK, JRE, JVM (0) | 2021.04.27 |
그 외 제어자(static, final, abstract) (0) | 2021.04.27 |
객체지향 설계 기법 (0) | 2021.02.10 |
SOLID(객체 지향의 설계) 5가지 원칙 (0) | 2021.01.28 |
Comments