한파일에 하나의 클래스만 있을 수 있는 것은 아닙니다.
중간코드(.class)가 클래스 단위로 만들어지므로 이말이 틀린말은 아니나,
Inner Class 가 있어서 한 파일에 여러개 클래스파일이 들어갈 수 있습니다.
자바 문법은 엄격한 편입니다. 코딩에 제약도 많고 같은 내용을 코딩해도 자바는 LOC 가 큰 편입니다. 이것이 장점이자 단점이기도 하지요.
자바에 푹젖어서 자바의 모든 것을 이해하면 다른 언어를 더 잘 이해할 수도 있을 것이고, 자바를 결코 쓰지 않겠다는 결심을 할 수도 있을 것 같네요...
네 한 파일안에는 여러가지의 클래스 파일이 들어갈 수는 있지만 하나의 클래스 파일은 하나의 public class만을 가질 수 있다고 배웠는데... @kdj님의 말씀은 이러한 public class도 여러개가 존재할 수 있다는 말씀이신가요?
// A.java class A { class sub { } }
소스파일에서는 이런 구조가 가능하고
이를 컴파일 하면 A.class 와 A$sub.class 두개의 클래스 파일이 만들어집니다.
이러한 구조를 Inner class 라고 합니다.
Private 클래스를 만들 필요가 있을까요? 예 그렇습니다.
외부에 알려지기를 원하지 않는 정보를 숨기기 위해서 private 을 사용합니다.
위 소스에서 private class sub 로 선언하면 sub 클래스는 A 안에서만 사용되는 클래스입니다.