멍발자의 개발

액세스와 캡슐화 본문

STUDY/Java

액세스와 캡슐화

개발하는 멍발자 2022. 3. 23. 11:57

public과 private를 합쳐서 액세스 한정자라고 부른다.

 

private

 

public과 다르게 private 연산자를 쓰면 해당 클래스 내에서만 볼 수 있게 된다.

class Computer2 { // 기본값 액세스한정자
    private String os; // private 멤버변수
    private int memory; // private 맴버변수

    public void show() { // public 맴버 메소드
        System.out.println("PC의 OS는 " + os + "입니다.");
        System.out.println("메모리는 " + memory + "GB입니다.");
    }
}

public class PrivateMember { // public 액세스한정자

    public static void main(String[] args) {

        Computer2 com = new Computer2();

        com.os = "Windows 11"; // private 멤버변수(os)액세스
        com.memory = -5445; // private 멤버변수(memory)액세스

        com.show();
    }
}
//결과
java: os has private access in chap12.Computer2 
//라는 오류가 뜬다 Computer2라는 클래스에서만 사용이 가능하다는 것이다.

멤버를 private 하다는 건 부정확한 값을 설정하는 것을 막는 것과 동시에 값의 설정도 할 수 없다.

 

public

 

public 메소드는 어디서라도 액세스 할 수 있다는 특징을 가진다.

 

액세스 한정자 정보

1. public : 모든 장소에서 액세스 가능

2. protected : 같은 패키지 및 상속하는 서브클래스에서만 액세스할 수 있고 외부에서는 액세스 할 수 없다.

3. 기본값 (한정자 없음) : 같은 패키지에 속하는 클래스 내에서 액세스할 수 있으나 외부에서는 액세스 할 수 없다.

4.  private: 자신이 포함된 클래스 내에서만 액세스 할 수 있다.

 

캡슐화

 

멤버 변수에 private를 붙여서 다른 사람으로부터의 액세스를 제한하고 전용의 메소드를 준비하는 것이 캡슐화다.

 

1. 필드 변수를 private로 숨긴다.

2. 필드 변수의 값을 취득 + 설정하는 public 메소드를 준비.

3. 멤버 변수로의 직접적인 엑세스는 금지하고 멤버 변수의 값을 설정하는 (setter 메소드나 취득하는 메소드(getter 메소드)를 준비한다. 그럼 필드에 정해진 조작만 할 수 있도록 강제할 수 있다.

** 필요에 따라 getter 메소드만 구현될 수 있고 setter 메소드만 구현될 수 있다.

 

JavaBeans

 

범용성을 갖춘 클래스다.

(1)인수가 없는 생성자를 가지고 + (2)접근자 메소드를 가지는 클래스가 된다.

GUI부품이나 데이터 베이스 액세스 등에서 큰 역할을 담당한다.

 

 

 

'STUDY > Java' 카테고리의 다른 글

Package & import  (0) 2022.03.28
생성자  (0) 2022.03.23
클래스와 메소드  (0) 2022.03.22
객체 지향 언어  (0) 2022.03.21
메소드  (0) 2022.03.18
Comments