Tại sao Java không cần nhập các lớp như Integer, String, vv trong khi cần nhập các lớp khác?Java quyết định thời điểm nhập như thế nào?
Trả lời
Có một lần nhập ẩn là java.lang.*
.
Một đơn vị biên dịch tự động có quyền truy cập vào tất cả các loại khai báo trong gói của nó và cũng có thể tự động nhập tất cả các loại công khai báo trong gói được xác định trước
java.lang
.
java.lang
gói được nhập theo mặc định, không cần nhập một cách rõ ràng.
Vì chúng thuộc về gói java.lang.*
. Và, nó được nhập hoàn toàn bởi trình biên dịch. Nếu bạn làm thế, nó sẽ không phàn nàn bạn.
Các lớp học trong gói java.lang
không cần phải nhập (trình biên dịch hoạt động như chúng luôn được nhập). Gói này bao gồm các lớp lõi như String, Enum, Runnable, NullPointerException, và tất nhiên, các lớp trình bao bọc nguyên thủy như Integer và Double.
java.lang được nhập tự động, bạn không cần nhập thủ công. – sjas
@sjas Có khác biệt gì với những gì tôi đã nêu trong câu trả lời của tôi không? –
'Trình biên dịch hoạt động như chúng luôn được nhập.' ... javac không hành động như thể chúng là, chúng được nhập khẩu. Tôi không muốn chia tóc, bạn chỉ không giải thích một cách chính xác. BTW: Tôi upvoted bài viết của bạn để đề cập đến một số ví dụ được chứa trong java.lang. ;) – sjas
java.lang là trong xây dựng, mặc nhiên nhập khẩu trong java, nhu does'nt được bằng tay nhập khẩu
vì nó có chứa các lớp học rất thường xuyên được sử dụng, họ đã làm cho nó bắt buộc phải nhập khẩu chỉ thuận tiện cho bạn
mỗi lớp trong java là trong một gói và nếu không có gói nào được định nghĩa thì nó được hiểu như trong gói mặc định. Và ở trên cùng của gói là java.lang. * Vì vậy chúng tôi không cần phải nhập nó một yêu cầu để nhập các lớp khác.
Các lớp Integer, String vv có trong gói java.lang được nhập mặc định.
Có phải 'java.lang' là gói tự động nhập duy nhất không? – zatenzu