Program.java 라는 이름을 가진 클래스 파일로 예시를 들어보자.
Program.java
class Program {
}
문제없이 컴파일이 잘 된다.
위 소스 파일에 아래와 같은 클래스를 하나 더 추가해보자.
class Program {
{
class Program2 {
}
역시나 문제없이 컴파일이 잘 된다.
그렇다면 아래와 같이 수정을 해보자.
class Program {
}
public class Program2 {
}
Program2라는 클래스 앞에 public이라는 접근제어자를 붙였더니 이번에는 컴파일 에러가 발생한다.
그럼 아래와 같이 수정을 해보자.
public class Program {
}
class Program2 {
}
문제없이 컴파일이 잘 된다. 어떤 차이일까?
위와 같이 컴파일되는 이유는 파일명(Program.java)때문이다.
자바에는 클래스명 앞에 public이란 접근제어자를 추가하면 그 클래스의 이름은 파일명과 동일해야만 하는 규칙이 있다.
그렇다면 왜 이런 규칙을 만들었을까?
보통 이렇게 하나의 자바파일에 여러 개의 클래스를 작성하는 경우에는 하나의 대표 클래스를 지정하고 파일명과 동일하게 하는 것이 코드의 가독성에 도움이 된다고 한다.
이제 소스코드를 읽을 때 public 키워드가 붙어있는 class를 보게 된다면 현재 소스코드가 어떤 자바 파일명으로 저장되어 있는지 예상을 할 수 있다. 또한 public 키워드가 없는 경우라면 자바 파일명과 클래스명이 일치하지 않을 수 있다고 생각할 수 있다.
'📌 java > java' 카테고리의 다른 글
java - abstract (0) | 2020.04.04 |
---|---|
java - API (0) | 2020.03.17 |
java - 패키지 (0) | 2020.03.10 |
java - 클래스 패스, 환경 변수 [참고용] (0) | 2020.03.10 |
java - overloading (0) | 2020.03.10 |