반응형
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 키워드가 없는 경우라면 자바 파일명과 클래스명이 일치하지 않을 수 있다고 생각할 수 있다.
반응형
'Programming > Java' 카테고리의 다른 글
[Java] Log4j에 대해 알아보자 (0) | 2019.11.11 |
---|---|
[JAVA] 날짜와 시간 다루기(java.time) (0) | 2019.11.09 |
[JAVA] TCP 통신 소켓 프로그래밍(양방향 통신) (0) | 2019.08.02 |
[JAVA] TCP 통신 소켓 프로그래밍(단방향 통신) (0) | 2019.08.02 |
[JAVA] 생성자(Contructor)에 대해 알아보자 (0) | 2019.03.30 |