Cho class như sau: class KiemTra { private int i; private static int nextId; public void setId() { id = nextId; nextId++; } } Nếu khởi tạo 2 đối tượng class A extends KiemTra và class B extends KiemTra, id của đối tượng B có giá trị là ?
Đáp án đúng: A
Đầu tiên, ta thấy nextId
là một biến static, nghĩa là nó được chia sẻ giữa tất cả các đối tượng của class KiemTra
và các class con của nó. Khi chương trình bắt đầu, nextId
được khởi tạo mặc định là 0.
Khi một đối tượng của class A
(kế thừa từ KiemTra
) được tạo và phương thức setId()
được gọi, id
của đối tượng A
sẽ được gán giá trị của nextId
(là 0), sau đó nextId
tăng lên 1.
Tiếp theo, khi một đối tượng của class B
(cũng kế thừa từ KiemTra
) được tạo và phương thức setId()
được gọi, id
của đối tượng B
sẽ được gán giá trị của nextId
(lúc này là 1), sau đó nextId
tăng lên 2.
Vậy, id của đối tượng B có giá trị là 1.
Câu hỏi liên quan
Chương trình sai ở dòng 6.
Trong dòng 6, biến other
đã được khai báo ở dòng 5, việc khai báo lại biến other
trong cùng một scope sẽ gây ra lỗi biên dịch. Hơn nữa, tên biến otherObject
không được định nghĩa.
Để sửa lỗi, cần bỏ khai báo lại biến other
và sử dụng đúng tên biến đã được truyền vào (ví dụ: otherObject
nếu đó là tên tham số dự định):
class Employee implements Comparable { public int compareTo(Object otherObject) { Employee other = (Employee) otherObject; // Sửa thành other = (Employee) otherObject; return 0; }}
A. Sai. Trường final không thể sử dụng với volatile. volatile được dùng để đảm bảo biến được đọc từ bộ nhớ chính, tránh cache của thread, trong khi final đảm bảo giá trị của biến không thay đổi sau khi khởi tạo. Hai tính chất này loại trừ lẫn nhau.
B. Đúng. Phương thức native trong Java được triển khai bằng ngôn ngữ khác (ví dụ C, C++) và không có nội dung (body) trong file Java.
C. Sai. Các trường transient được dùng để chỉ ra rằng một trường không nên được serialize. final và static không nên đi kèm với transient vì final là hằng số và static thuộc về class, không thuộc về instance cụ thể để cần serialize.
Vậy đáp án sai là A và C. Tuy nhiên trong các đáp án thì C sai hơn vì transient, final và static thường không đi chung với nhau.
Để tìm ra đáp án, ta cần xác định có bao nhiêu bộ ba số nguyên dương (traudung, traunam, traugia) thỏa mãn đồng thời các điều kiện sau:
1. 1 <= traudung <= 8
2. 1 <= traunam <= 9 - traudung
3. 1 <= traugia <= 9 - (traudung + traunam)
4. 5 * traudung + 3 * traunam + traugia = 10
Xét các trường hợp:
* Nếu traudung = 1, ta có 3 * traunam + traugia = 5. Vì 1 <= traunam <= 8 và 1 <= traugia <= 9 - (1 + traunam) = 8 - traunam. Ta có:
* traunam = 1 => traugia = 2. Thỏa mãn.
* Nếu traudung = 2, ta có 3 * traunam + traugia = 0. Không có nghiệm thỏa mãn vì traunam và traugia đều >=1.
Vậy, chỉ có một bộ số thỏa mãn là (1, 1, 2). Chương trình sẽ in ra "1 1 2" và `pa` sẽ tăng lên 1. Giá trị cuối cùng của `pa` là 1.
Như vậy, đoạn chương trình in ra 1 kết quả duy nhất là "1 1 2".
- k = 1: Vòng lặp `n` không chạy vì `n` bắt đầu từ 2 và điều kiện là `n <= k`.
- k = 2: Vòng lặp `n` chạy một lần với n = 2. `2 % 2 == 0`, `dem` trở thành 1. Vì `dem > 1` là sai, không in ra gì.
- k = 3: Vòng lặp `n` chạy hai lần với n = 2 và n = 3.
- n = 2: `3 % 2 != 0`.
- n = 3: `3 % 3 == 0`, `dem` trở thành 1. Vì `dem > 1` là sai, không in ra gì.
- k = 4: Vòng lặp `n` chạy ba lần với n = 2, n = 3 và n = 4.
- n = 2: `4 % 2 == 0`, `dem` trở thành 1.
- n = 3: `4 % 3 != 0`.
- n = 4: `4 % 4 == 0`, `dem` trở thành 2. Vì `dem > 1` là đúng, in ra 4.
- k = 5: Vòng lặp `n` chạy bốn lần với n = 2, n = 3, n = 4 và n = 5.
- n = 2: `5 % 2 != 0`.
- n = 3: `5 % 3 != 0`.
- n = 4: `5 % 4 != 0`.
- n = 5: `5 % 5 == 0`, `dem` trở thành 1. Vì `dem > 1` là sai, không in ra gì.
- k = 6: Vòng lặp `n` chạy năm lần với n = 2, n = 3, n = 4, n = 5 và n = 6.
- n = 2: `6 % 2 == 0`, `dem` trở thành 1.
- n = 3: `6 % 3 == 0`, `dem` trở thành 2. Vì `dem > 1` là đúng, in ra 6.
- k = 7: Vòng lặp `n` chạy sáu lần với n = 2, n = 3, n = 4, n = 5, n = 6 và n = 7.
- n = 2: `7 % 2 != 0`.
- n = 3: `7 % 3 != 0`.
- n = 4: `7 % 4 != 0`.
- n = 5: `7 % 5 != 0`.
- n = 6: `7 % 6 != 0`.
- n = 7: `7 % 7 == 0`, `dem` trở thành 1. Vì `dem > 1` là sai, không in ra gì.
- k = 8: Vòng lặp `n` chạy bảy lần với n = 2, n = 3, n = 4, n = 5, n = 6, n = 7 và n = 8.
- n = 2: `8 % 2 == 0`, `dem` trở thành 1.
- n = 3: `8 % 3 != 0`.
- n = 4: `8 % 4 == 0`, `dem` trở thành 2. Vì `dem > 1` là đúng, in ra 8.
- k = 9: Vòng lặp `n` chạy tám lần với n = 2, n = 3, n = 4, n = 5, n = 6, n = 7, n = 8 và n = 9.
- n = 2: `9 % 2 != 0`.
- n = 3: `9 % 3 == 0`, `dem` trở thành 1.
- n = 4: `9 % 4 != 0`.
- n = 5: `9 % 5 != 0`.
- n = 6: `9 % 6 != 0`.
- n = 7: `9 % 7 != 0`.
- n = 8: `9 % 8 != 0`.
- n = 9: `9 % 9 == 0`, `dem` trở thành 2. Vì `dem > 1` là đúng, in ra 9.
- k = 10: Vòng lặp `n` chạy chín lần với n = 2, n = 3, n = 4, n = 5, n = 6, n = 7, n = 8, n = 9 và n = 10.
- n = 2: `10 % 2 == 0`, `dem` trở thành 1.
- n = 3: `10 % 3 != 0`.
- n = 4: `10 % 4 != 0`.
- n = 5: `10 % 5 == 0`, `dem` trở thành 2. Vì `dem > 1` là đúng, in ra 10.
Vậy kết quả là 468910.

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
ĐĂ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.