2021. 11. 3. 23:58ㆍJAVA
- 캡슐화
캡슐화란, 1) 객체를 캡슐로 싸서, 2) 내부를 볼 수 없게 하는 것 (=> 외부의 접근으로부터 객체를 보호하는 것)
이는 재사용성과 생산성에 도움을 준다.
자바에서는 클래스를 만드는 것 자체가 캡슐화 작업이다.
객체 모양의 틀을 선언하는 것, 즉 클래스를 만드는 것이 캡슐화로,
method (멤버 함수) 와 field (멤버 변수)가 클래스라는 캡슐 안에 구현되어 외부로부터 보호받는다.
class를 만들 때 field를 private으로 설정해두고,
field값을 외부에서 접근하거나 변경하고 싶다면 메소드를 통해서만 가능하다.
값을 보여주거나 변경할 수 있는 메소드를 만들어두고, 그 메소드에 '음수는 입력불가'라든지, '두 글자 이상 입력 가능' 이라든지 내가 필요로 하는 제한사항들을 걸어두어 외부 사용자가 마음대로 클래스의 값을 변경하지 못하도록 한다.
예를 들어 리모컨 클래스라고 하면, 리모컨에 채널을 입력할 때 음수를 입력해버리면 리모컨의 기능을 제대로 하지 못하게 되므로 이를 방지하기 위해 필드는 private으로 두어 캡슐화하고 필요한 제한사항들이 모두 설정되어있는 공개된 메소드를 통해서만 변경할 수 있게 하는 작업이 캡슐화다.
- 접근지정자
자바에서 접근지정자는 private, protected, public, default가 있다.
우선 default는 접근지정자를 생략했을 때 자동으로 디폴트 접근지정자로 설정된다.
개발자가 직접 private, protected, public을 지정하면
외부로부터 어느 범위까지 접근을 허용할 것인지 지정할 수 있다.
private는 외부로부터 완벽 차단하여 같은 클래스 내에서만 접근이 가능하다.
default는 동일 패키지* 내 타 클래스들의 접근을 허용한다.
protected도 동일 패키지 내 타 클래스들의 접근을 허용하며, 추가적으로 타 패키지의 자식클래스까지 허용한다.
public은 모든 클래스의 접근을 허용한다. 가장 넓은 공개 범위이다.
*패키지(package): 관련 있는 클래스 파일을 저장하는 디렉토리. 자바 응요으로그램은 하나 이상의 패키지로 구성한다.
자바 응용프로그램 > 패키지 1, 2, ... > 패키지 1 내 클래스파일 a, b, ... , 패키지 2 내 클래스 파일 a', b', ... ...
'JAVA' 카테고리의 다른 글
[til_211127][java] 상속 (0) | 2021.11.27 |
---|---|
[til_211126][java] 객체배열 (0) | 2021.11.26 |
[til_211125][java] java API 활용한 예제 - Math.random()과 .substring() (0) | 2021.11.25 |
[til_211123][java] 메시지패싱 (0) | 2021.11.23 |
[til_211123] [java] 입력받은 문자 중 공백을 ','로 대체하는 클래스 (0) | 2021.11.23 |