OK, do đó, tệp nguồn java phải có ít nhất một lớp công khai và tệp phải được gọi là "class-name.java". Đủ công bằng.Biên dịch Java của tệp .java không có lớp công khai
Do đó, nếu tôi có một lớp học, thì sau đây sẽ biên dịch:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.
}
}
Nhưng điều làm tôi phát cáu là nếu tôi loại bỏ các sửa đổi lần truy cập 'công' từ mã trên, các mã vẫn biên dịch. Tôi chỉ không nhận được nó. Loại bỏ nó, mã trông giống như:
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.
}
}
Trong đoạn mã trên, kể từ khi tôi loại bỏ các sửa đổi lần truy cập 'công cộng', lớp học của tôi có mặc định hoặc đóng gói truy cập riêng, tức là nó không thể được truy cập từ thế giới bên ngoài , chỉ từ bên trong gói.
Câu hỏi của tôi là, mã trên được biên dịch như thế nào? Tệp HelloWorld.java trong trường hợp này không có lớp HelloWorld 'public' (chỉ có lớp HelloWorld.class riêng) và do đó sự hiểu biết của tôi không được biên dịch.
Đánh giá cao thời gian của bạn khi trả lời các câu hỏi của tôi!
regards, anon
* "tệp nguồn java phải có ít nhất một lớp công khai" * Không, [không cần phải có bất kỳ thứ gì.] (Http://stackoverflow.com/q/7791487/1134080) – ADTC