Tôi có đoạn mã sau:Tôi có nên đặt giao diện công khai trong một tệp riêng biệt không?
import com.apple.dnssd.*;
public interface IServiceAnnouncer {
public void registerService();
public void unregisterService();
public boolean isRegistered();
}
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Mã này được lưu trong một tập tin gọi là "HelloWorld.java". Trình biên dịch Java phàn nàn về mã này. Nó viết rằng lớp IServiceAnnouncer
là công khai và nó phải được khai báo trong một tệp có tên là "IServiceAnnouncer.java".
Tôi có một số câu hỏi về vấn đề này:
Tại sao trình biên dịch sẽ nói rằng
IServiceAnnouncer
là một lớp học? Đó là một giao diện. Hoặc giao diện là một trường hợp một phần của một lớp học?Nếu tôi đặt giao diện
IServiceAnnouncer
trong một tệp riêng biệt gọi là "IServiceAnnouncer.java" (như trình biên dịch muốn), thì tôi có thể sử dụng nó từ "HelloWorld.java" như thế nào?public interface
có nghĩa là gì? Sự khác biệt giữa giao diện công khai và giao diện công cộng là gì?
Không liên quan đến câu hỏi của bạn, nhưng theo tiêu chuẩn mã hóa Java chuẩn, bạn nên đặt "I" trước giao diện. –
@Steve Kuo: Lời khuyên tốt, nhưng bạn có thể có một từ. :-) http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html – trashgod