Cho hai lớp Student và Main như sau. 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) {
java.school.Student s = new java.school.Student();
}
}
Hãy suy nghĩ và trả lời câu hỏi trước khi xem đáp án
Lời giải:
Báo saiĐáp án đúng là: Không có lỗi biên dịch.
Vì:
Lớp Student không ở package java.test mà ở java.school, và bạn không import vào gói java.test, nhưng khi dùng bạn đã chỉ rõ lớp ở package java.school.Student. Nên trình biên dịch hiểu.
Nên đáp án: Có lỗi biên dịch:
can not find symbol test.Student Và Có lỗi biên dịch: Add import java.school.Student
sai và đáp án: Không có lỗi biên dịch đúng.
Khi bạn không khai báo một constructor nào thì trình biên dịch tự động tạo ra một constructor mặc định (không có tham số) cho lớp đó. Nên đáp án: Có lỗi biên dịch:
can not find constructor Student() for Student sai.