[JAVA] 패키지(package), 접근 제한자(Access Modifier)

임유빈·2022년 7월 18일
0

JAVA

목록 보기
5/17
post-thumbnail

1. 패키지(package)

(1) 개념

패키지란 클래스를 기능별로 묶어서 그룹 이름을 붙여 놓은 것으로 파일들을 관리하기 위해 사용하는 폴더(디렉토리)와 비슷한 개념이다. 패키지의 물리적인 형태는 파일 시스템의 폴더다.

(2) import 문

▪ 패키지 내에 같이 포함된 클래스간 클래스 이름으로 사용 가능
▪ 패키지가 다른 클래스를 사용해야 할 경우
• 패키지 명 포함된 전체 클래스 이름으로 사용

2. 접근제한자(Access Modifier)

(1) 개념

클래스 및 클래스의 구성 멤버에 대한 접근을 제한하는 역할이다.
• 다른 패키지에서 클래스를 사용하지 못하도록 (클래스 제한)
• 클래스로부터 객체를 생성하지 못하도록 (생성자 제한)
• 특정 필드와 메소드를 숨김 처리 (필드와 메소드 제한)

(2) 접근 제한자의 종류

  • public
    Public은 package, Class가 동일하지 않아도 모든 접근이 가능한 제한자이다.
    같은 클래스내에서 허용, 같은 패키지 내의 다른 클래스 허용, 다른 패키지의 다른 클래스에서 허용

  • protected
    Protected는 같은 package에서만 접근을 허용하고 다른 package에서 접근하려면 해당 Class를 상속받을 시에만 접근이 가능한 제한자이다.
    같은 Class내에서 접근 허용, 같은 package의 다른 Class에서 접근 허용, 다른 package의 상속받은 Class 접근 허용, 다른 package의 다른 Class 접근 불가

  • default
    default는 동일 package에서만 접근을 허용하는 제한자로, 접근 제한자가 생략되어 있을경우엔 기본적으로 default 접근 제한자가 적용된다.
    같은 class 내에서 허용, 같은 package 내의 다른 class에서 허용, 다른 package에서는 접근 불가

    default는 자동으로 선언되어 지므로 변수, 메소드 앞에 명시적으로 적어서는 안된다. 아무것도 선언되지 않았을 경우 default, friendly 접근 제한자로 선언되었다. 표현

  • private
    private는 동일 package, 다른 package 모두 접근이 불가능하고 같은 Class 내에서만 접근을 허용하는 제한자이다.
    같은 java 파일 안의 서로 다른 Class라도 접근 불가

(3) 접근 제한자 별 사용 가능 범위

  • Class에 사용 가능 : public, default

  • Construtor : public, protected, default, private

  • Member 변수 : public, protected, default, private

  • Member method : public, protected, default, private

  • 지역 변수 : 접근 제한자 사용 불가

(4) 캡슐화 (Encapsulation)

캡슐화란 객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것을 말한다. 외부 객체는 객체 내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메소드만 이용할 수 있다.

0개의 댓글