Khi biên dịch lớp Main có lỗi biên dịch không? Nếu có là lỗi nào?
package java.school;
public class Student {}
--
package java.test;
public class Main {
public static void main(String[] args) {
Student s = new Student();
}
}
package java.school;
public class Student {}
--
package java.test;
public class Main {
public static void main(String[] args) {
Student s = new Student();
}
}
Trả lời:
Đáp án đúng: A
Đoạn code trên có lỗi biên dịch. Lớp `Student` được định nghĩa trong package `java.school`, trong khi lớp `Main` nằm trong package `java.test`. Trong phương thức `main` của lớp `Main`, chúng ta cố gắng tạo một đối tượng `Student` bằng cách sử dụng `new Student()`. Tuy nhiên, vì lớp `Main` và `Student` nằm trong các package khác nhau và lớp `Main` không import lớp `Student`, trình biên dịch sẽ không thể tìm thấy lớp `Student`. Do đó, sẽ có lỗi biên dịch.
Đáp án A không chính xác hoàn toàn, vì lỗi chính xác là "cannot find symbol Student", chứ không phải "test.Student".
Đáp án B sai vì có lỗi biên dịch.
Đáp án C chính xác. Để khắc phục lỗi này, ta cần thêm dòng `import java.school.Student;` vào đầu file `Main.java`.
Đáp án D sai vì lỗi không phải do thiếu constructor mà là do không tìm thấy class.
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
