목차
제어자
: 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여함
접근 제어자 | public, protected, default, private |
그 외 | static, final, abstract, native, transient, synchronized, volatile, strictfp |
static
: '클래스의' 또는 '공통적인'의 의미를 가지고 있다.
클래스 변수는 인스턴스를 생성하지 않고도 사용 가능하다.
final
: '마지막의' 또는 '변경될 수 없는'의 의미를 가지고 있다.
변수에 사용되면 값을 변경할 수 없는 상수가 된다.
대표적인 final 클래스로는 String과 Math가 있다.
abstract
: '미완성'의 의미를 가지고 있다.
메서드의 선언부만 작성하고
실제 수행내용은 구현하지 않은 추상 메서드를 선언하는 데 사용된다.
접근 제어자
: 멤버 또는 클래스에 사용되어,
해당ㅇ하는 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역할을 한다.
접근 제어자를 사용하는 이유
> 외부로부터 데이터를 보호하기 위해
> 외부에는 불필요한, 내부적으로만 사용되는 부분을 감추기 위해
제어자 | 같은 클래스 | 같은 패키지 | 자손클래스 | 전체 |
public | o | o | o | o |
protected | o | o | o | |
default | o | o | ||
private | o |
class Singleton {
...
private static Singleton s= new Singleton();
private Singleton(){
....
}
// 인스턴스를 생성하지 않고도 호출을 해야하므로 static이어야 함.
public static Singleton getInstance(){
return s;
}
생성자가 private인 클래스는 다른 클래스의 조상이 될 수 없다.
자손 클래스의 인스턴스 생성시
조상 클래스의 생성자를 호출해야 하는데
private이면 자손 클래스에서 호출이 불가능하다.
따라서 클래스 앞에 final을 추가하여
상속할 수 없는 클래스임을 나타내는 것이 좋다.
참고 출처 : 자바의 정석
'여니의 프로그래밍 study > Java' 카테고리의 다른 글
[Java] 패키지 및 import (0) | 2023.05.28 |
---|---|
[Java] 자바 프로그램 실행 과정 및 동작 원리 (feat. JVM) (0) | 2023.05.24 |
[Java] 자바 기본 API (0) | 2022.07.30 |
[Java] 생성자, 객체 생성 (0) | 2022.07.30 |
[Java] 상속 (0) | 2022.07.24 |