본문 바로가기
어딘가에 맞춰질 퍼즐 조각들

[JAVA] public class VS class

by 팡펑퐁 2022. 9. 17.
728x90

 ※ 본 게시물은 컴퓨터 및 프로그래밍을 공부중인 비전공자가 개인적인 공부를 위해 적어둔 것으로 내용이 정확하지 않을 수 있으며, 언제든지 추가되거나 수정될 수 있음.

 

인텔리제이를 사용하면서 항상 들었던 의문.
왜? public class Main{}에서 Main의 이름을 바꾸면 에러가 나면서 실행이 되지 않을까?

 

이것 때문에 엄청 스트레스였다. 과제를 하기 위해 깃으로 파일을 내려받고 실행하려고 하면 항상 테스트를 해볼 수 없어 답답했다. 아직 정확한 이유를 모르지만 지금까지 알아낸 것은,

 

  • Main.java라는 이름은 자바 소스 파일의 기본 이름인듯하다.
  • public class는 다른 패키지에서 접근이 가능한 클래스라는 의미이다.
  • 하나의 소스 파일에 여러 클래스가 위치한 경우 public class라고 선언한 클래스 명은 반드시 소스 파일명과 일치해야한다.
  • 그래서 대부분의 경우 맨 처음에 class를 선언할 때 public class Main{}이라고 쓰는 것이었다.

 정리하면, 하나의 자바 소스 파일에는 하나의 public class가 온다. 이 클래스는 다른 패키지에서 접근이 가능하다. 자바는 public class의 클래스 명과 소스파일의 파일명을 같게 강제한다.

728x90