Đoạn mã sau có lỗi biên dịch gì?
public class Person {
protected String name;
protected int age;
public static void main(String[] args) {
Person p = new Person();
p.name = "Tom";
System.out.println(p.name);
}
}
public class Person {
protected String name;
protected int age;
public static void main(String[] args) {
Person p = new Person();
p.name = "Tom";
System.out.println(p.name);
}
}
Trả lời:
Đáp án đúng: A
Đoạn mã trên biên dịch thành công. Trong cùng một class, các thuộc tính `protected` có thể truy cập được. Lỗi chỉ xảy ra khi truy cập từ một class khác package.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: B
Sau khi biên dịch, mã nguồn Java (.java) sẽ được chuyển đổi thành bytecode. Bytecode này được lưu trữ trong một file có đuôi mở rộng là .class. File .class này chứa các chỉ thị mà Máy ảo Java (JVM) có thể thực thi được. Do đó, đáp án đúng là B.
Lời giải:
Đáp án đúng: A
Java cung cấp một loạt các chức năng mạnh mẽ để phát triển ứng dụng, bao gồm:
* Giao diện lập trình ứng dụng (API): Java cung cấp một tập hợp lớn các API cho phép các nhà phát triển dễ dàng truy cập và sử dụng các chức năng hệ thống, mạng, đồ họa, cơ sở dữ liệu và nhiều hơn nữa.
* Bộ công cụ giao diện người dùng (UI Toolkit): Java cung cấp các bộ công cụ như Swing và JavaFX để xây dựng giao diện người dùng đồ họa phong phú và tương tác.
* Thư viện tích hợp: Java đi kèm với nhiều thư viện tích hợp sẵn để thực hiện các tác vụ phổ biến như xử lý chuỗi, xử lý số, làm việc với tệp và mạng.
Vì vậy, đáp án chính xác là "Tất cả đáp án trên".
* Giao diện lập trình ứng dụng (API): Java cung cấp một tập hợp lớn các API cho phép các nhà phát triển dễ dàng truy cập và sử dụng các chức năng hệ thống, mạng, đồ họa, cơ sở dữ liệu và nhiều hơn nữa.
* Bộ công cụ giao diện người dùng (UI Toolkit): Java cung cấp các bộ công cụ như Swing và JavaFX để xây dựng giao diện người dùng đồ họa phong phú và tương tác.
* Thư viện tích hợp: Java đi kèm với nhiều thư viện tích hợp sẵn để thực hiện các tác vụ phổ biến như xử lý chuỗi, xử lý số, làm việc với tệp và mạng.
Vì vậy, đáp án chính xác là "Tất cả đáp án trên".
Lời giải:
Đáp án đúng: B
Interface trong Java là một kiểu tham chiếu, tương tự như class, nhưng có một số điểm khác biệt quan trọng. Interface chỉ chứa các khai báo phương thức (method declaration) mà không có phần thân (method body), các hằng số (constants), khai báo các kiểu dữ liệu lồng nhau (nested types). Các class có thể implements một hoặc nhiều interface, và phải cung cấp định nghĩa (implementation) cho tất cả các phương thức được khai báo trong interface đó. Điều này đảm bảo tính đa hình và khả năng mở rộng của chương trình.
Phương án A sai vì interface không chứa các cách rỗng, mà chứa các khai báo (signature) của các phương thức.
Phương án C sai vì interface không phải là một cách thực hiện của lớp khác, mà là một bản thiết kế mà các lớp khác phải tuân theo.
Phương án D sai vì interface không phải là lớp nối giữa lớp cơ sở và lớp cha, mà là một khái niệm hoàn toàn độc lập.
Do đó, phương án B là đáp án đúng nhất.
Phương án A sai vì interface không chứa các cách rỗng, mà chứa các khai báo (signature) của các phương thức.
Phương án C sai vì interface không phải là một cách thực hiện của lớp khác, mà là một bản thiết kế mà các lớp khác phải tuân theo.
Phương án D sai vì interface không phải là lớp nối giữa lớp cơ sở và lớp cha, mà là một khái niệm hoàn toàn độc lập.
Do đó, phương án B là đáp án đúng nhất.
Lời giải:
Đáp án đúng: C
Để một lớp (class) sử dụng (implement) một giao diện (interface) trong Java (và nhiều ngôn ngữ lập trình hướng đối tượng khác), ta sử dụng từ khóa `implements`. Từ khóa `extends` dùng để kế thừa từ một lớp khác, không phải để thực hiện một giao diện.
* Đáp án A: Sai cú pháp, thiếu từ khóa `implements`.
* Đáp án B: Đúng cú pháp, lớp `Xedap1` được khai báo là `public` và sử dụng từ khóa `implements` để thực hiện giao diện `Xedap`.
* Đáp án C: Đúng cú pháp, nhưng lớp `Xedap1` không được khai báo là `public`, điều này có thể gây ra vấn đề về phạm vi truy cập tùy thuộc vào vị trí của lớp và giao diện.
* Đáp án D: Sai, sử dụng `extends` để kế thừa lớp, không phải thực thi giao diện.
Vì vậy, đáp án chính xác nhất là B, vì nó đảm bảo tính đúng đắn về mặt cú pháp và khai báo rõ ràng phạm vi truy cập của lớp.
* Đáp án A: Sai cú pháp, thiếu từ khóa `implements`.
* Đáp án B: Đúng cú pháp, lớp `Xedap1` được khai báo là `public` và sử dụng từ khóa `implements` để thực hiện giao diện `Xedap`.
* Đáp án C: Đúng cú pháp, nhưng lớp `Xedap1` không được khai báo là `public`, điều này có thể gây ra vấn đề về phạm vi truy cập tùy thuộc vào vị trí của lớp và giao diện.
* Đáp án D: Sai, sử dụng `extends` để kế thừa lớp, không phải thực thi giao diện.
Vì vậy, đáp án chính xác nhất là B, vì nó đảm bảo tính đúng đắn về mặt cú pháp và khai báo rõ ràng phạm vi truy cập của lớp.
Lời giải:
Đáp án đúng: B
Trường dữ liệu (data fields) trong lập trình hướng đối tượng (OOP) có thể là:
* Biến thay mặt (Instance variable): Mỗi đối tượng (instance) của một lớp có một bản sao riêng của biến này. Giá trị của biến thay mặt có thể khác nhau giữa các đối tượng khác nhau.
* Biến lớp (Class variable): Biến này thuộc về lớp chứ không phải một đối tượng cụ thể nào. Tất cả các đối tượng của lớp đều chia sẻ cùng một bản sao của biến lớp. Bất kỳ thay đổi nào đối với biến lớp sẽ ảnh hưởng đến tất cả các đối tượng của lớp đó.
Do đó, đáp án đúng là B: Biến thay mặt và biến lớp.
Các đáp án khác không chính xác vì:
* Tham số (parameter) là các biến được truyền vào một hàm hoặc phương thức, không phải là trường dữ liệu của một lớp.
* Biến cục bộ (local variable) là các biến được khai báo bên trong một hàm hoặc phương thức và chỉ có phạm vi trong hàm hoặc phương thức đó, không phải là trường dữ liệu của một lớp.
* Biến thay mặt (Instance variable): Mỗi đối tượng (instance) của một lớp có một bản sao riêng của biến này. Giá trị của biến thay mặt có thể khác nhau giữa các đối tượng khác nhau.
* Biến lớp (Class variable): Biến này thuộc về lớp chứ không phải một đối tượng cụ thể nào. Tất cả các đối tượng của lớp đều chia sẻ cùng một bản sao của biến lớp. Bất kỳ thay đổi nào đối với biến lớp sẽ ảnh hưởng đến tất cả các đối tượng của lớp đó.
Do đó, đáp án đúng là B: Biến thay mặt và biến lớp.
Các đáp án khác không chính xác vì:
* Tham số (parameter) là các biến được truyền vào một hàm hoặc phương thức, không phải là trường dữ liệu của một lớp.
* Biến cục bộ (local variable) là các biến được khai báo bên trong một hàm hoặc phương thức và chỉ có phạm vi trong hàm hoặc phương thức đó, không phải là trường dữ liệu của một lớp.
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp
136 tài liệu563 lượt tải

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp
125 tài liệu585 lượt tải

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng
325 tài liệu608 lượt tải

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất
331 tài liệu1010 lượt tải

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
246 tài liệu802 lượt tải

CEO.22: Bộ Tài Liệu Quy Trình Kiểm Toán, Kiểm Soát Nội Bộ Doanh Nghiệp
138 tài liệu417 lượt tải
ĐĂNG KÝ GÓI THI VIP
- Truy cập hơn 100K đề thi thử và chính thức các năm
- 2M câu hỏi theo các mức độ: Nhận biết – Thông hiểu – Vận dụng
- Học nhanh với 10K Flashcard Tiếng Anh theo bộ sách và chủ đề
- Đầy đủ: Mầm non – Phổ thông (K12) – Đại học – Người đi làm
- Tải toàn bộ tài liệu trên TaiLieu.VN
- Loại bỏ quảng cáo để tăng khả năng tập trung ôn luyện
- Tặng 15 ngày khi đăng ký gói 3 tháng, 30 ngày với gói 6 tháng và 60 ngày với gói 12 tháng.
77.000 đ/ tháng