저는 Java를 배우는 초보자입니다. Java에서 모든 소스 파일은 공개 클래스를 포함해야하며 해당 소스 파일은 해당 공개 클래스와 동일한 이름을 가져야합니다. 또한 소스 파일에는 두 개의 공개 클래스가 포함될 수 없습니다. 왜이 제한이 있습니까?
4
세부 사항이 없으면 Java가 엔지니어링 된 방식의 역사적인 디자인 아티팩트입니다. C #과 같이 최근에 디자인 된 언어는 Java와 유사하지만이 제한이 없습니다.
—
gahooa
모범 사례를 시행하지 않습니까? 나는 이것이 유일한 이유라고 생각했다. C #에서는 기술 수준에 대해이 제한이 없지만 파일 이름과 클래스 이름이 일치하지 않거나 동일한 파일에 여러 클래스가 있으면 StyleCop에서 여전히 불평합니다. Visual Studio는 클래스 파일 관계를 크게 장려합니다 (파일을 만드는 클래스 다이어그램을 생각하거나 .cs 파일의 이름을 바꿀 때 클래스 이름도 리팩토링할지 묻습니다).
—
Arseni Mourzenko
구식 컴파일 언어에서 링커는 모든 참조 및 외부 기호를 찾습니다. 그러나 Java는 연결되어 있지 않습니다. 원하는 경우 런타임에 jar를로드 할 수 있습니다. 링크 단계가 없으면 찾을 파일 이름을 알고 있으면 클래스 이름을 클래스 경로의 위치에 매핑하는 것이 훨씬 빠릅니다.
—
Paul Tomblin
grep을 사용하는 것은 어떻습니까?
—
사용자