Câu trả lời sau đây không đáp ứng yêu cầu của tôi: "Bởi vì James Gosling không muốn."
Đó là câu trả lời đúng, mặc dù. Nhóm thiết kế ngôn ngữ (Gosling, Sheridan, Naughton, sau này là Bill Joy, Ken Arnold, v.v.) đã quyết định các tiêu đề gây ra nhiều vấn đề hơn họ đã giải quyết . Vì vậy, họ đã thiết kế chúng ra, và chứng minh rằng họ có thể tạo ra một ngôn ngữ hoàn toàn hữu ích mà không cần đến chúng.
Từ Phần 2.2.1 của sách trắng Môi trường ngôn ngữ Java :
Mã nguồn được viết bằng Java rất đơn giản. Không có tiền xử lý, không có #define và các khả năng liên quan, không có typedef và không có các tính năng đó, không còn cần bất kỳ tệp tiêu đề nào nữa. Thay vì các tệp tiêu đề, các tệp nguồn ngôn ngữ Java cung cấp các định nghĩa của các lớp khác và các phương thức của chúng.
Các định nghĩa dư thừa, giữ các tệp đồng bộ hóa, các định nghĩa mâu thuẫn, các định nghĩa ẩn - không có điều nào trong số này xảy ra trong Java, vì bạn không có tiêu đề. Nếu bạn muốn xem một định nghĩa lớp trần, bạn có thể trực tiếp tạo một định nghĩa từ tệp .java - ví dụ: hầu hết các IDE sẽ hiển thị cho bạn cấu trúc của một lớp trong một thanh bên, tương đương với điều tương tự.