Tôi là một người mới học Java. Trong Java, mọi tệp nguồn phải chứa một lớp chung và tệp nguồn đó phải có cùng tên với lớp chung đó. Hơn nữa, không có tệp nguồn nào có thể chứa hai lớp công khai. Tại sao hạn chế này?
Tôi là một người mới học Java. Trong Java, mọi tệp nguồn phải chứa một lớp chung và tệp nguồn đó phải có cùng tên với lớp chung đó. Hơn nữa, không có tệp nguồn nào có thể chứa hai lớp công khai. Tại sao hạn chế này?
Câu trả lời:
Trong một trong những Bản tin của Chuyên gia Java của mình, Heinz Kabutz đã đào sâu thông số kỹ thuật của Ngôn ngữ Oak . Anh ấy viết:
Tại sao mỗi lớp công khai trong một tệp riêng biệt? (Phần 1)
Đây là một câu hỏi mà tôi thường xuyên được hỏi trong các khóa học của mình. Cho đến bây giờ tôi chưa có câu trả lời tốt cho câu hỏi này. Trong phần 1, chúng tôi đọc: "Mặc dù mỗi đơn vị biên dịch Oak có thể chứa nhiều lớp hoặc giao diện, tối đa một lớp hoặc giao diện cho mỗi đơn vị biên dịch có thể được công khai".
Trong thanh bên, nó giải thích tại sao: "Hạn chế này chưa được trình biên dịch thực thi, mặc dù nó cần thiết để nhập gói hiệu quả"
Điều này khá rõ ràng - giống như hầu hết mọi thứ là một khi bạn biết lý do thiết kế - trình biên dịch sẽ phải thực hiện thêm thông qua tất cả các đơn vị biên dịch (tệp .java) để tìm ra các lớp đang ở đâu và điều đó sẽ khiến quá trình biên dịch chậm hơn .
Những lý do tôi có thể nghĩ ra