이번 포스팅은 접근 제어와 정보은닉에 대한 포스팅입니다.
1. 접근 제어 지시자 (access modifier)
1) 클래스 외부에서 클래스의 멤버변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정
2) public : 클래스의 외부 어디서나 접근 할 수 있음.
3) protected : 같은 패키지나 상속관계의 클래스에서 접근 가능. 그 외 외부에서는 접근 할 수 없음.
4) (아무 것도 없음 - default) : 같은 패키지 내부에서만 접근 가능 (상속 관계라도 패키지가 다르면 접근 불가)
5) private : 같은 클래스 내부에서만 접근 가능, 외부 클래스나 상속관계의 클래스에서도 접근 불가
6) 변수나 메서드에 접근 제한자를 지정하면 접근을 제한 할 수 있음.
2. get() / set() 메서드
1) private으로 선언된 멤버 변수(필드)에 대해 접근, 수정할 수 있는 메서드를 public으로 제공
2) get() 메서드만 제공되는 경우 read-only 필드
3. 정보 은닉 (information hiding)
1) OOP에서 정보 은닉은 외부에서 접근 가능한 최소한의 정보를 오픈함.
2) 객체의 오류를 방지함으로써 클라이언트 객체가 더 효율적으로 활용할 수 있도록함.
4. 캡슐화 (endcapsulation)
1) 꼭 필요한 정보와 기능만 외부에 오픈함.
2) 대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만 제공하여 일관된 기능을 구현하게 함.
5. 객체 자신을 가리키는 this
1) 역할
- 인스턴스 자신의 메모리를 가리킴
- 생성자에서 또 다른 생성자를 호출 할 때 사용
- this()
- 자신의 주소(참조값)를 반환함.
2) 생성자에서 다른 생성자를 호출하는 this()
- 클래스에 생성자가 여러 개인 경우, this()를 이용하여 생성자에서 다른 생성자를 호출할 수 있음.
- 생성자에서 다른 생성자를 호출하는 경우, 인스턴스의 생성이 완전하지 않은 상태이므로 this()이전에 다른 statement를 쓸 수 없음.
'프로그래밍 > Java' 카테고리의 다른 글
[자바 - Java] 자바 배열 선언 정렬 출력 추가 복사 자르기 (0) | 2022.08.31 |
---|---|
[자바 - Java] 스태틱 클래스 변수 메소드 싱글톤패턴 (0) | 2022.08.30 |
[자바 - Java] 생성자 (오버로딩-overloading, 오버라이딩-overriding) (0) | 2022.08.28 |
[자바 -Java] 메모리 - 메서드, 인스턴스, 힙메모리, method, instance, heap memory (0) | 2022.08.27 |
[자바 - Java] 객체와 객체 지향 프로그래밍 (클래스, 참조변수, 생성자, 객체) (0) | 2022.08.26 |