[java] 객체 접근 권한

송어·2023년 11월 12일

접근권한(Access Modifier)이란

객체지향 프로그래밍에서는 객체 상호간에 접근을 제어할 수 있어야한다. 예를 들어 A,B 두 클래스가 가지고 있는 상태와 동작을 상호간에 접근을 허용할 수도 있어야 하고 접근을 막아야 하는 경우도 있기 때문이다.

객체의 상태정보(멤버 변수)는 중요하기 때문에 접근을 못하게 해야한다.(정보은닉)
객체의 행위정보(멤버 메서드)는 상호작용을 해야 되기 때문에 접근을 허용한다.

접근을 제어하는 방법(클래스 상호간)

4가지의 접근 제한자(Access Modifier)를 사용한다.
클래스와 클래스 내부에 만들어지는 멤버 변수에 접근 제한자를 사용할 수 있다.

접근제한자설명
public모든 패키지에서 접근 가능(모든 클래스 & 메서드는 public)
private모든 패키지에서 접근 불가(모든 멤버변수 private)
protected상속관계 중 하위클래스에서 상위클래스에 접근가능
default동일한 패키지에서만 접근가능(단어로 존재X)

서로 다른 패키지에선 public만 접근 가능
동일한 패키지 내에선 public, default만 접근가능(상속관계X)

같은 패키지 안에 있는 클래스들은 기본적으로 다른 클래스에 접근이 가능하다.(default접근O)

패키지(Package)란?

  • 서로 기능이 비슷한 클래스들끼리 모아서 관리를 쉽게 하기 위해서 사용(폴더개념)
  • 패키지 외부에서 클래스의 접근을 할 수 없도록 하기 위해서 사용(보안측면)
  • 자바에서 제공해주는 API도 패키지의 형태로 배포된다.

자바에서 제공해주는 대표적인 패키지

패키지이름설명
java.lang
(default package)
자바에서 자주 사용하는 클래스(String, System 등)
java.io입출력 관련 클래스(InputStream 등)
java.net네트워킹 관련 클래스
java.util필요한 부가기능을 지원(Scanner 등)
java.sqlDB관련 클래스, SQL
java.math수학관련 클래스

0개의 댓글