[Java] 접근제어자 (3) (feat. 클래스)

SeongEon Kim·2022년 5월 2일
0

JAVA

목록 보기
26/52

지금까지 살펴본것은 클래스 멤버에 대한 접근 제어자이고, 이번에는 클래스의 접근 제어자에 대해 알아보자.
클래스의 접근 제어자는 패키지와 관련된 개념이다.

클래스의 접근 제어자는 public과 default이다.
접근 제어자가 public인 클래스는 다른 패키지의 클래스에서도 사용할 수 있고, default인 경우는 같은 패키지 내에서만 사용 가능하다.

일단 두 개의 클래스를 아래와 같이 작성해보자.

package org.opentutorials.javatutorials.accessmodifier.inner;
public class PublicClass {}
package org.opentutorials.javatutorials.accessmodifier.inner;
class DefaultClass {}

위의 클래스들을 같은 패키지에서 활용해보자.

package org.opentutorials.javatutorials.accessmodifier.inner;
public class ClassAccessModifierInnerPackage {
    PublicClass publicClass = new PublicClass();
    DefaultClass defaultClass = new DefaultClass();
}

위의 코드는 전혀 문제가 없다.

하지만 다른 패키지에 있는 클래스에서 사용해보자.

package org.opentutorials.javatutorials.accessmodifier.outter;
import org.opentutorials.javatutorials.accessmodifier.inner.*;
public class ClassAccessModifierOuterPackage {
    PublicClass publicClass = new PublicClass();
    //DefaultClass defaultClass = new DefaultClass();
}

위에 주석으로 처리된 부분이 오류가 발생한다.
DefaultClass의 접근 제어자가 default이기 때문이다.

주의할 점은 public 클래스가 포함된 소스코드는 public클래스의 클래스명과 소스코드의 파일명이 같아야 한다.

package org.opentutorials.javatutorials.accessmodifier.inner;
//public class PublicName {}
public class PublicNameDemo {}

위 코드의 파일명은 PublicNameDemo.java이다. 잊지말자.

profile
꿈을 이루는 사람

0개의 댓글