JAVA 캡슐화 정보은닉
캡슐화란 데이터와 그와 관련된 연산 함수들을 하나의 객체로 묶는 것이다. 캡슐화를 하게 된다면, 보다 쉽고 안전한 사용이 가능하다. 캡슐화는 반드시 하나의 클래스로 만들어야 하는 것은 아니다. 캡슐화의 이점에 대해 설명하자면 A 클래스가 캡슐화가 잘 되어있다면, A 클래스가 변경되더라도, A와 연관된 나머지 클래스는 변경되지 않거나 변경되더라도 그 범위가 매우 최소화된다.
정보은닉
정보은닉은 객체 외부에 인터페이스만 드러내고 객체의 내부 구현은 숨기는 것이다. 멤버 변수 선언 시 private 접근제어 지정자를 이용한다. 메서드를 통한 안전한 접근만 허용한다. 지역변수와 매개변수는 해당 메서드 안에서만 사용이 가능하고, 메서드 시작 시 자동 할당되며 메서드 반환처리 과정에서 자동 해제된다. 따라서 해제 문장을 따로 쓰지 않아도 된다. 멤버 변수는 모든 멤버 변수들은 그 클래스 객체 전체에서 유효한 범위를 가진다. 객체가 생성되면 할당되고, 객체가 소면 되면 해제된다.
Access 메서드
Access 메서드는 필요에 따라 특정 멤버 변수의 값을 얻어오거나 설정하는 메서드이다. 멤버 변수를 객체 외부에서 직접 조작하는 대신 getter나 setter를 통한 안전한 접근을 제공한다. getter는 지정된 멤버 변수의 값을 반환하는 함수이고, setter는 지정된 멤버 변수를 실 인수의 값으로 설정하는 것이다. 보통 당장 필요하지 않더라도 필요할 것으로 예상되면 멤버에 포함시킨다.
default 클래스와 public 클래스
default 클래스는 같은 패키지 내부에서만 객체 생성이 가능하다. public 클래스는 어디서나 클래스 객체 생성을 허용한다. 클래스 정의 시 class 키워드 앞에 public을 추가한다. 하나의 소스 파일에는 하나의 클래스만 public이 될 수 있다. 소스 파일의 이름과 반드시 일치해야 한다.
캡슐화와 정보 은닉
데이터와 그와 관련된 연산들을 하나의 객체로 묶는다. 보다 쉽고 안전한 사용이 가능하다. 데이터와 함수를 하나의 객체로 묶는 것 자체가 정보은닉이 포함된 개념이다. 일련의 복잡한 행위들을 간단히 수행시킬 수 있는 public 메서드를 제공한다. 패키지 내의 모든 클래스를 public 클래스로 정의할 필요는 없다. 클래스 내의 모든 멤버들을 public 멤버로 정의할 필요도 없다.
'JAVA Programming > JAVA 개념 정리' 카테고리의 다른 글
JAVA Method Overriding 자바 메서드 오버 라이딩 (2) | 2021.11.11 |
---|---|
JAVA 클래스 상속 (1) | 2021.11.10 |
JAVA와 c++의 차이점 (7) | 2021.09.24 |
JAVA의 조상 C++ (4) | 2021.09.23 |
JAVA instance static 메서드 오버 로딩 (1) | 2021.09.22 |