Tôi đã học được rằng lớp công khai duy nhất trong một tệp Java cũng phải có phương thức chính. Tuy nhiên, dưới đây bạn có thể thấy phương pháp chính bên trong một lớp bên trong thay vào đó? Quy tắc liên quan đến định nghĩa phương thức chính trong tệp nguồn là gì?Phương pháp chính trong lớp tĩnh bên trong.
public class TestBed {
public TestBed() {
System.out.println("Test bed c'tor");
}
@SuppressWarnings("unused")
private static class Tester {
public static void main(String[] args) {
TestBed tb = new TestBed();
tb.f();
}
}
void f() {
System.out.println("TestBed::f()");
}
}
Điều đó sẽ có tác dụng nếu bạn thực hiện điều đó public class bên trong. – Thilo
Nó hoạt động như hiện tại. Tuy nhiên, trong trường hợp của tôi, tôi phải thoát khỏi ký tự '$' để khởi động từ trình bao: '$ java TestBed \ $ Tester' – Vlad
@Thilo - lớp NESTED cần ** không ** công khai. Công khai chỉ đúng với các phiên bản Java đầu tiên (rất). Ngày nay Java là _smart_ đủ để tìm phương thức trong các lớp riêng (được thử nghiệm với Java 5, 6 & 7 trên Windows XP) –