Java

[ java ] 정보 은닉, 접근 제어자

JooKit 주킷 2020. 12. 17. 15:07
목차 접기
728x90
반응형

정보 은닉

  • 객체 지향 프로그램에서는 예약어를 사용해 클래스 내부의 변수나 메서드, 생성자에 대한 접근 권한을 지정할 수 있다.
  • public 이라고 선언한 변수나 메서드는 외부 클래스에서 접근이 가능하며 외부 클래스가 사용할 수 있다는 뜻이다.
  • 반대로 접근 제어자를 private으로 선언한 변수나 메서드는 외부 클래스에서 사용할 수 없다.

변수를 public으로 선언하는 것과 변수를 private으로 선언하고 나서 그 변수를 사용할 수 있도록 public 메서드를 제공하는 것의 차이는 무엇일까?

  • 클래스의 멤버 변수를 public으로 선언하면 접근이 제한되지 않으므로 정보의 오류가 발생할 수 있다.
  • 필요하지 않은 정보를 해당 클래스에 저장을 하게 될 수도 있는 것이다.

이처럼 클래스 내부에서 사용할 변수나 메서드는 private으로 선언해서 외부에서 접근하지 못하도록 하는 것을

객체 지향에서는 정보 은닉(information hiding) 이라고 한다.
정보 은닉은 객체 지향 프로그래밍의 특징 중 하나이다.

  • 모든 변수를 private으로 선언해야 하는 것은 아니지만, 필요한 경우에는 private으로 선언하여 오류를 막을 수 있다.

접근 제어자 종류

  • public : 외부 클래스 어디에서나 접근할 수 있다.
  • protected : 같은 패키지 내부와 상속 관계의 클래스에서만 접근할 수 있고 그 외 클래스에서는 접근할 수 없다.
  • 아무것도 없는 경우 : defatult이며 같은 패키지 내부에서만 접근할 수 있다.
  • private : 같은 클래스 내부에서만 접근할 수 있다.

정리

인스턴스

  • 클래스를 생성하여 메모리에 있는 상태를 인스턴스라 하고 멤버 변수를 다른 말로 인스턴스 변수라고 한다.
728x90
반응형
LIST

'Java' 카테고리의 다른 글

[ java ] static 변수  (0) 2020.12.17
[ java ] 객체. this  (0) 2020.12.17
[ java ] 생성자(constructor)  (0) 2020.12.14
[ java ] 참조 자료형 연습  (0) 2020.12.14
[ java ] 객체 지향 기초 개념 7가지  (0) 2020.12.14