소스파일의 이름은 public class 이름과 일치해야 함
- public class가 없으면 소스파일의 이름은 소스파일 내의 어떤 클래스 이름으로 해도 상관 없음
- 하나의 소스파일에 둘 이상의 public class가 존재하면 안됨
자주 발생하는 에러
- cannot find symbol cannot resolve symbol
저장된 변수, 메서드 찾을 수 없음- 선언되지 않은 변수/메서드 사용할 경우
- 변수, 메서드 이름 잘못 사용한 경우 발생함
- Exception in thread "main" java.lang.NoSuchMethodError: main
- 클래스 내에 main 메서드가 존재하지 않을 경우
- 메서드 선언부 'public static void main(String[] args)'에 오타 존재하는 경우
- Exception in thread "main" java.lang.NoClassDefFoundError: Hello
Hello 클래스 찾을 수 없음- 클래스 철자 확인 후 이상 없다면 클래스파일(*.class) 생성됐는지 확인하기
- 클래스파일 존재한다면 클래스패스(classpath) 설정 확인하기
- illegal start of expression
문장에 문법적 오류 있음 (괄호, 수식, if/for문 문법적 오류, public, static 키워드 잘못 사용했을 때) - class, interface, enum expected
- 보통 괄호 개수 {} 일치하지 않을 때 발생
권장하는 명명 규칙
- 클래스 이름 첫 글자 항상 대문자로
- 변수, 메서드 이름 첫 글자는 항상 소문자로
- 여러 단어로 이뤄진 이름은 단어의 첫 글자 대문자로 - LastIndexOf, StringBuffer
- 상수 이름은 모두 대문자로, 여러 단어로 이뤄졌으면 '_'로 구분 - MAX_NUMBER