제어자
제어자는 클래스와 클래스의 멤버에 부가적인 의미를 부여한다.
제어자는 2가지러 분류할 수 있는다.
1. 접근 제어자
2. 그 외 제어자
접근 제어자
접근 제어자는 4가지 종류가 있다.
- private: 같은 클래스 내에서 접근 가능
- default: 같은 패키지 내에서 접근이 가능
- protected: 같은 패키지 내에서, 다른 패키지의 자식 클래스에서 접근이 가능
- public: 접근 제한이 없음(모든 영역에서 접근이 가능)
접근 제어자는 4개 중 한 개만 붙일 수 있다.
접근 제어자를 사용하는 이유
접근 제어자를 사용하는 이유는 데이터 캡슐화를 위해서 사용한다.
만약 외부에서 데이터 접근이 가능하면 각 사람들의 개인 정보는 모든 사람이 알 수 있게 될 것이다.
따라서 외부로부터 멤버 변수의 직접 접근을 막기 위해서 접근 제어자를 사용하게 된다.
모든 멤버 변수를 private으로 설정하면 데이터 보호는 가능하겠지만 같은 클래스 내에서 접근이 가능하기 때문에 내부적으로 사용하기 힘들어진다.
이때 사용할 수 있는 것이 get(), set() 메서드이다.
get(), set() 메서드를 통해서 멤버 변수의 간접 접근을 허용해서 사용한다.
위의 사진과 같이 공개된 setHour() 메서드를 통해서 시간 데이터를 저장하고 데이터를 불러올 때는 getHour() 메서드를 사용해서 불러온다. 여기서 중요한 점은 hour 변수에 관한 데이터 직접 접근을 할 수 없다는 것이다.
내부적으로만 활용되고 외부적으로 공개가 불필요한 데이터는 감출 수 있게 된다.
그 외 제어자
접근 제어자 외 제어자는 하나의 대상에 여러 제어자를 같이 사용할 수 있다는 특징이 있다.
1. static - 클래스의, 공통적인
클래스 변수, 클래스 초기화 블록, 클래스 메서드에서 사용되는 제어자이다.
클래스 멤버에 사용되는 제어자이므로 따로 객체 생성 없이 사용이 가능하다.
2. final - 마지막의, 변경될 수 없는
클래스, 메서드, 멤버 변수, 지역 변수에 사용된다.
final 제어자가 붙으면 변경할 수 없는 상수가 되기 때문에 여러 제약이 따른다.
클래스에 final 제어자를 붙이면 다른 클래스의 조상이 될 수 없다.
변수에 final 제어자를 붙이면 상수가 되어서 변경이 불가능 하다.
메서드에 final 제어자를 붙이면 오버라이딩을 할 수 없다. (조상의 메서드를 상속받아 사용하는 것이기 때문에)
3. abstract - 추상의, 미완성의
클래스, 메서드에서 사용된다.
인터페이스와 추상화에 필요한 추상 클래스, 추상 메서드를 만드는데 사용되는 제어자이다.
'자바' 카테고리의 다른 글
객체 지향 프로그래밍 - 인터페이스 (0) | 2023.08.18 |
---|---|
객체 지향 프로그래밍 - 다형성 (0) | 2023.08.17 |
객체 지향 프로그래밍 - Super (0) | 2023.08.15 |
객체 지향 프로그래밍 - 상속 (0) | 2023.08.15 |
객체 지향 프로그래밍 - 생성자 & this (0) | 2023.08.06 |