[Java] Public 클래스

public 클래스

클래스를 작성할 때 약간 헷갈렸던 부분이 있습니다

public을 앞에 쓴 것과 public을 사용하지않고 그냥 -> class 클래스명 . 차이점이 궁금 하였습니다.

 

다음과 같은 클래스 파일을 MyTest.java라는 이름으로 작성해 보자.

MyTest.java

class MyTest {
}

문제 없이 컴파일이 잘 됩니다. 

다음으로는 위 소스 파일에 다른 클래스를 하나 더 추가 해 보겠습니다.

class MyTest {
}

class MyTest2 {
}

이것 또한 컴파일이 잘 됩니다.

요번엔 다르게 수정 해 보았습니다..

class MyTest {
}

public class MyTest2 {
}

MyTest2라는 클래스 앞에 public 접근제어자를 붙였더니 컴파일 에러가 발생하였다.

다시 다음과 같이 수정 해 보면은 오류가 나지 않습니다.

public class MyTest {
}

class MyTest2 {
}

MyTest2 클래스 앞에 public 제어자를 제거하고 MyTest 앞에 public 제어자를 추가하였습니다.

이번에는 컴파일이 잘 됩니다.

이렇게 되는 이유는 파일명(MyTest.java) 때문이다.

클래스명 앞에 public 접근제어자를 추가하면,  클래스의 이름은 파일명과 동일해야만 하는 규칙이 있기 때문이다.

 

보통  하나의 자바파일에 여러개의 클래스를 작성하는 경우 하나의 대표 클래스를 지정하고

파일명과 동일하게 하는 것이 코드의 가독성에 도움이 된다.

 

이제  소스코드를 읽을 때 public 키워드가 붙어 있는 class를 보게 된다면 현재 소스코드의 자바파일명을 알수 있습니다. 또한 public 키워드가 없는 경우라면 자바 파일명과 클래스명이 일치하지 않다고 생각하면 됩니다.

 

    결론

  • 클래스명과 자바파일명이 다르다고해서 컴파일 문제가 되는 것은 없다.

 

728x90