Hi
로그인
Hi
로그인
접근 제한자 및 데이터 은닉과 보호
mingggkeee
·
2022년 1월 20일
팔로우
0
Java
0
Java
목록 보기
3/20
제한자(modifier)
클래스, 변수, 메서드 선언부에 함께 사용되어 부가적인 의미 부여
종류
접근 제한자 : public, protected, (default=package), private
그 외 제한자
static : 클래스 레벨의 요소 설정
final : 요소를 더이상 수정못하게 함
abstract : 추상 메서드 및 추상 클래스 작성
synchronized : 멀티스레드에서의 동기화 처리
하나의 대상에 여러 제한자를 조합 가능하나 접근 제한자는 하나만 사용 가능
final
마지막, 더 이상 바뀔 수 없음.
용도
final class - 더이상 확장 할 수 없음: 상속 금지 -> 오버라이드 금지
final method - 더 이상 재 정의할 수 없음 : 오버라이딩 금지
final variable - 더 이상 값을 바꿀 수 없음 : 상수화
데이터 은닉과 보호(Encapsulation)
정보를 보호하기 위한 대책은???
변수는 private 접근으로 막기
공개되는 메서드를 통한 접근 통로 마련 : getter / setter !!!
메서드에 정보 보호 로직 작성
객체의 생성 제어와 Singleton 디자인 패턴
여러개의 객체가 필요 없는 경우
객체를 구별할 필요가 없는 경우 = 수정 가능한 멤버 변수가 없고 기능만 있는 경우
이런 객체를 stateless한 객체라고 함.
객체를 계속 생성/삭제 하는데 많은 비용이 들어서 재사용이 유리한 경우
Singleton 디자인 패턴
외부에서 생성자에 접근 금지 -> 생성자의 접근 제한자를 private로 설정
내부에서는 private에 접근 가능하므로 직접 객체 생성 -> 멤버 변수이므로 private 설정
외부에서 private member에 접근 가능한 getter 생성 -> setter는 불필요
객체 없이 외부에서 접근할 수 있도록 getter 변수에 static 추가
외부에서는 언제나 getter를 통해서 객체를 참조하므로 하나의 객체 재사용
mingggkeee
만반잘부
팔로우
이전 포스트
상속
다음 포스트
다형성
0개의 댓글
댓글 작성