본문 바로가기

Programing/JVM(Java, Kotlin)

[Java] Class 생성 실험

자바에서 클래스란 매우 기본적인 지식이다.

카페에서 질문을 보고 한 .java 파일에 여러 클래스를 넣은 것을 보고 궁금해져서 실험을 해보았다.

평상시에서는 하나의 .java 파일에는 하나의 클래스, 혹은 중첩된 클래스(nested class)를 사용하기 때문에 이런 경험을 할 일이 없었기 때문이다.

 

1. 하나의 .java 파일에는 public 클래스 하나만 가능하다.

아래와 같이 두 public 클래스가 있다고 하자. 다음과 같이 에러가 발생한다.

ClassAnother는 잘못되었다.

2. public이 아닌 클래스는 여러 개가 가능하다.

1번의 해결책: ClassAnother를 public이 아니게 만든다.

'ClassAnother'을 public이 아니게 만든다. 다른 ClassAnother.java로 옮긴다.

3. package 스코프(default)는 여러개가 가능하다.

Java 파일 이름의 클래스도 public 을 없애는 것이 가능하다. 다른 클래스도 non-public이라면 가능하다.

package scope 클래스들

4. public class 이름은 .java 파일명과 같아야 한다.

위에 설명했지만 다시 추가.

ClassTests.java의 public 클래스는 ClassTests만 가능하다.

5. 바깥의 클래스는 protected나 private으로는 불가능하다.

선택권은 public이거나 non-public인데 non-public은 default (package scope)만 가능하다.