접근제어자

이수보🧑🏻‍💻·2022년 1월 11일
0

초급

목록 보기
14/25


너의 접근 불허한다...오글

- 접근제어자

우리는 앞서 클래스를 만들고 그 안에 다양한 변수, 메소드를 만들어 왔다.
때문에 우리는 클래스가 나만의 타입이 될 수 있다는 사실을 알고 있다.

하지만 만약 나만의 클래스가 내 설계 의도와는 다르게 누구나 접근하여 무분별하게 사용하는 것을 우리는 보고 있을 수만 없다.
우리가 만들었는데 우리가 제어하지 못한다면 얼마나 슬플까 ㅠㅠ

그러니 이번 시간에는 접근 제어자를 공부해 보자.

대부분 사람들이 자바를 공부하기 앞서 자바에 대한 여러 검색을 하고 공부를 시작했을 것!

그렇다면 캡슐화라는 말을 잘 들어 봤을 것이다.

캡슐화는 변수와 메소드를 하나의 클래스로 묶고 외부에서 쉽게 접근하지 못하도록 은닉하는 것이 핵심인 이론!!

위 핵심만 봐도 느낌이 오실겁니다.
우리가 지금 필요로 하는 기능이라는 것을!!!

캡슐화의 가장 큰 장점은 정보 은닉입니다.

왜 좋으냐?

  • 외부에서 객체접근하는데 있어서 정보를 숨기고 객체의 연산을 통해서만 접근이 가능하게 하는 것입니다.
  • 정보은닉의 장점은 외부에서 특정 객체의 데이터 및 함수를 직접 접근을 막음으로써 변경을 못하게 하고 유지보수나 확장시 오류의 범위를 최소화 할 수 있고,
  • 객체내 정보손상, 오용을 방지하고, 조작법이 바뀌어도 사용방법 자체는 바뀌지 않고, 데이터가 변경되어도 다른 객체에 영향을 주지 않기 때문에 독립성이 좋고,
  • 처리된 결과사용으로 이식성이 좋고, 객체를 모듈화 할 수있어 새로운 시스템의 구성에 하나의 모듈처럼 사용이 가능하다.

이제 왜 해야하고 무엇이 좋은지 알아 봤으니 방법을 알아야 합니다.

접근제어자

  1. 캡슐화를 위해선 접근제어자를 통해 설계가 잘 이루어져야 합니다.
  2. 자신 내부를 감추고 직접적으로 개입하지 못하도록 설계해야 합니다.

public : 접근제한이 없음 다른 패키지에서도 가능

public String publicVar;

protected : 같은 패키지 + 상속받은 클래스에서 접근 가능 상속받은 클래스의 객체로 사용해야함

protected String protectedVar;

default : 같은 패키지에서만 접근 가능 다른패키지에서 상속을 받았다고 해도 접근제어됨

String defaultVar; // 기본 생략됩니다

private : 클래스 내에서만 접근 가능 다른패키지에서 상속을 받았다고 해도 접근제어됨

private String privateVar;
  • 위 4개는 기본적으로 외우는 것이 좋을 것이다. 앞으로 더욱 쓸 일이 많아지기 때문

그렇다면 위 4개 중 캡슐화 하기 위해서 가장 우선 시 되어야 하는 제어자는 무엇일까??

바로 Private 이다.

보통 자주 쓰는 형식으로는
private 로 변수를 감추고

public 제어자인 getter와 setter로 데이터에 접근하여 사용한다는 것을 알아두면 좋을 것이다.

0개의 댓글

관련 채용 정보