Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 51

UPDATE-18/4

Thời gian làm bài: 90 phút (Không kể thời gian giao đề)
-------------------------
Họ tên thí sinh: .................................................................
Số báo danh: ......................................................................
Câu 1. Source code của java có tên mở rộng là:
A. .class B. .java C. .com D. Tất cả đều sai.
Câu 2. Đặc điểm của OOP:
A. Diễn đạt thiếu tự nhiên B. Chương trình là sự hoạt động của đối tượng
C. Khó mô tả những quan hệ phức tạp D. Bảo mật kém
Câu 3. Ưu điểm của OOP :
A. Dễ mô tả các quan hệ phân cấp trong thế giới thực
B. Có tính bảo mật cao
C. Câu A, B đúng
D. Câu A, B sai

Câu 4. cho biết kết quả của đoạn code sau?


A. 6 B. 0 C. 5 D. Lỗi cú pháp

Câu 5. cho biết kết quả của đoạn code sau?


A. Lỗi biên dịch (Compile time error referring to a cast problem)
B. Xuất ra số ngẫu nhiên từ 1 đến 10 )
C. Xuất ra số ngẫu nhiên từ 0 đến 1
D. Lỗi khi chạy chương trình
Câu 6. Ngôn ngữ nào sau đây hỗ trợ OOP?
A. Ngôn ngữ C# B. Ngôn Ngữ C++ C. Cả 2 ngôn ngữ A & B D. Ngôn Ngữ C

Câu 7. cho biết kết quả đoạn code sau?


A. true false B. true C. false D. Lỗi cú pháp
Câu 8. Cách đặt tên (identifier) trong Java:
A. Bắt đầu bằng ký tự, ký tự gạch dưới (underscore '’) hay ký tự
B. Sau ký tự đầu là các ký tự ký số hay '_'; '$′, không dùng các ký tự khác như: khoảng trống, ký hiệu phép
toán
C. Từ khóa và tên có tính chất case-sensitive
D. Tất cả đều đúng
Câu 9. Biển đối tượng:
A. Gọi tắt là đối tượng B. Là một thể hiện (instance)
C. Là tham chiếu đến một thực thể của lớp D. Gọi tắt là đối tượng và Là một thể hiện (instance)
Câu 10. Nhược điểm của OOP:
A. Diễn đạt thiếu tự nhiên B. Khó mô tả những quan hệ phức tạp

1
C. Bảo mật kém D. Tất cả các câu đều đúng
Câu 11. JDK bao gồm các thành phần chính:
A. Classes, Compiler, Debugger, Java Runtime Environment
B. Classes, Compiler, Debugger
C. Classes, Compiler, Java Runtime Environment
D. Compiler, Debugger, Java Runtime Environment
Câu 12. OOP là viết tắt của:
A. Object Online Programming B. Object Of a Program
C. Object Oriented Programming D. Tất cả đều đúng
Câu 13. cho biết kết quả của đoạn code sau?
public class Demo {
public static void main(String[] args) {
}
String s = "12345";
System.out.println(Integer.parseInt(s) + 1);
}:
A. 12345 B. 12345 1 C. 12346 D. Báo lỗi cú pháp
Câu 14. Chọn đáp án đúng để tính trị tuyệt đối cho một số nguyên x trong java:
A. abs (x) B. Math.abs (x) C. math.abs (x) D. x.abs ()
Câu 15. Các kiểu dữ liệu cơ bản trong Java gồm:
A. byte, short, int, long, char, float, double
B. Byte, Short, Int, Long, Char, Float, Doubl
C. BYTE, SHORT, INT, LONG, CHAR, FLOAT, DOUBLE
D. Tất cả đều đúng
Câu 16. Bao đóng là một đặc tính của OOP nhằm để:
A. Che dấu dữ liệu
B. Bên ngoài chỉ giao tiếp được với đối tượng thông qua một số phương thức
C. Có 2 đáp án đúng
D. Có 2 đáp án sai
Câu 17. Ngôn ngữ Java:
A. Hỗ trợ OOP B. Hỗ trợ POP C. Hỗ trợ đơn thừa kế D. Câu A, C đúng
Câu 18. Các hằng trong Java gồm:
A. True, False, Null B. TRUE, FALSE, NULL
C. true, false, NULL D. true, false, null
Câu 19. Java source code được trình biên dịch java biên dịch thành:
A. Bytecode B. Executable code C. Machine code D. Tất cả đều sai
Câu 20. Cho biết kết quả của đoạn code sau:
public class test {
public static void main(String[] args) {
int x = 3;
int y = 1;
if (x = y)
else
System.out.println("Not equal");
System.out.println("Equal");
2
}
}
A. Equal
B. Not Equal
C. Lỗi biên dịch tại if (x = y)
D. Chương trình thực thi nhưng không xuất ra kết quả
Câu 21. Định nghĩa mảng tức thời (in-line initialization):
A. int a[] = {1,4,2,7,8}; B. int[] = {1,4,2,7,8); C. int a[4]= {1,4,2,7,8}; D. Câu A, B đúng
Câu 22. Đối tượng (object) là:
A. Bao gói dữ liệu + phương thức B. Dữ liệu mô tả đối tượng
C. Phương thức của đối tượng D. Lớp (class)
Câu 23. Lớp (class) là:
A. Hiện thực của một tập các đối tượng cùng các đặc tính
B. Hiện thực của một tập các đối tượng cùng các phương thức, hành vi
C. Hiện thực của một tập các đối tượng cùng các đặc tính và cùng các phương thức
D. A, B đúng
Câu 24. trong java khi lớp con kế thừa lớp cha và lớp con muốn khởi tạo lớp cha thì từ khóa super phải nằm ở
đâu trong constructor của lớp con?
A. phải ở giữa. B. phải ở cuối. C. phải ở đầu. D. tất cả đều sai.
Câu 25. JRE là gì?
A. Là giai đoạn biên dịch của Java B. Là giai thông biên dịch của Java
C. Là môi trường run-time của Java D. Tất cả đều sai
Câu 26. Các toán tử số học trong Java là:
A. +, -, *, /, %, ++, -- B. +, -, X, /, %, ++, --
C. +, -, *, div, mod, ++, -- D. Tất cả đều sai

Câu 27. Cho biết kết quả đoạn code sau?


A. true B. false C. true & false D. lỗi cú pháp
Câu 28. Ưu điểm của class file trong Java là:
A. Java class file có thể được dùng ở bất kỳ platform nào
B. Tính module hóa cao, dùng bộ nhớ tốt hơn với class file hơn là file thực thi vì class file cần một bước địch
nữa mới được CPU thực thi.
C. Cả 2 câu đều đúng
D. Cả 2 câu đều sai
Câu 29. Lớp Student có các thuộc tính: name, age và các phương thức: getName(), getAge(). Giả sử x là một
đối tượng thuộc lớp Student. Chọn phát biểu đúng trong OOP:
A. int age = x.getAge (); B. getAge (x); C. getName (x); D. int age = getAge (x);
Câu 30. Java cung cấp class System mô tả hệ thống. System.in là:
A. Đối tượng xuất mặc định (màn hình) B. Đối tượng nhập mặc định (bàn phím)
C. Có 2 đáp án đúng D. Có 2 đáp án sai
Câu 31. Ưu điểm của OOP:
A. Dễ tái sử dụng code B. Bảo mật kém C. Có tính bảo mật cao D. Câu A, C đúng
Câu 32. Cơ chế quản lý bộ nhớ của Java gồm 2 heap, static heap và dynamic heap. Chọn phát biểu đúng:
A. Static heap chứa các định nghĩa class + dữ liệu của các đối tượng + code chương trình.
3
B. Static heap chứa các định nghĩa class + code chương trình.
C. Dynamic heap chứa các định nghĩa class + dữ liệu của các đối tượng + code chương trình.
D. Dynamic heap chứa các định nghĩa class + code chương trình.
Câu 33. JVM là gì?
A. Là một phần mềm giả lập một máy tính, trong đó có tập lệnh định nghĩa các tác vụ java.exe
B. Là một phần mềm giả lập một máy tính, trong đó có tập lệnh định nghĩa các tác vụ javac.exe
C. Câu A, B đều sai
D. Câu A, B đều đúng

Câu 34. cho biết kết quả của đoạn code sau
A. Xuất ra màn hình chữ "Hello" B. Xuất ra màn hình chữ "ello"
C. Xuất ra màn hình chữ "elloH" D. Lỗi biên dịch
Câu 35. Từ khóa this trong java là?
A. đối tượng cha của đối tượng đang thao tác B. đối tượng đang thao tác
C. có 2 đáp án đúng D. có 2 đáp án sai

Câu 36. cho biết kết qửa câu sau


A. Lỗi biên dịch complete time B. 200
C. 100 200 D. 100
Câu 37. trong hàm static chỉ được sử dụng?
A. biến static B. hàm static
C. cả biến và hàm static D. chỉ biến và hàm bình thường của lớp
Câu 38. dòng code command xuất ra màn hình:
A. 5,6,7 B. 0.0.0 C. báo lỗi cú pháp D. tất cả đều sai

Câu 39. cho biết kết quả đoạn code sau


A. 19 20 B. 19 21
C. lỗi can't convert lang IntegerD D. 10 1
Câu 40. Đối tượng sống kể từ khi:
A. Khởi tạo đối tượng (bằng toán tử new) cho đến hết chương trình
B. Khởi tạo đối tượng (bằng toán tử new) cho đến hết phương thức chứa nó
C. Khởi tạo đối tượng (bằng toán tử new) cho đến hết khối chứa nó
4
D. Tất cả đều đúng
Câu 41. Câu lệnh nào cho kết quả -4.0:
A. System.out.print(Math.floor(-4.7)); B. System.out.print(Math.round(-4.7));
C. System.out.print(Math.ceil(-4.7)); D. System.out.print(Math.min(-4.7));

Câu 42.
A. lỗi amethod paramter dos not match variable B. 20 và 40
C. 10 và 40 D. 10 va 20
Câu 43. Một thành phần của class có modifier nào thì chỉ giới hạn các đối tượng khác gói, khác lớp, không có
quan hệ cha-con không được truy cập đến thành phần đó:
A. public B. private C. protected D. friendly

Câu 44.
A. Bic B. ic
C. icy D. error: no menthod matching substring(int, char)
Câu 45. Khi xây dựng phương thức khởi tạo (constructor), việc thường làm là:
A. Khởi tạo giá trị cho các thành phần dữ liệu của đối tượng
B. Khai báo kiểu cho các thành phần dữ liệu của đối tượng
C. Khai báo các phương thức của đối tượng
D. Tất cả đều sai
Câu 46. Phương thức khởi tạo (constructor) là phương thức được thực thi:
A. Lúc tạo đối tượng. B. Lúc hủy đối tượng.
C. Lúc sử dụng đối tượng. D. Cả ba câu trên đều đúng.
Câu 47. Trong code static thì chỉ được sử dụng:
A. Biến static B. Hàm static
C. Cả biến và hàm static D. Chỉ sử dụng biến thông thường
Câu 48. Biến đối tượng trong Java là:
A. Tham chiếu (địa chỉ) của vùng nhớ chứa dữ liệu của đối tượng
B. Biến static
C. Biến cục bộ
D. Tất cả đều sai
Câu 49. System.out.print(Math.round(Math.random()*1000000)%100);
A. Kết quả xuất ra giá trị từ 0 đến 99 B. Kết quả xuất ra giá trị từ 0 đến 100
C. Kết quả xuất ra giá trị từ 1 đến 99 D. Kết quả xuất ra giá trị từ 1 đến 99

5
Câu 50.
A. Value for i = 1 Value for j = 1 B. Value for i = 2 Value for j = 1
C. Value for i = 2 Value for j = 2 D. Câu A, B đúng
Câu 51. Cho đoạn code sau:
class HinhHoc {
int x, y;
}
A. x và y có modifier là private B. x và y có modifier là friendly
C. x và y có modifier là protected D. x và y có modifier là public
Câu 52. Trong ngôn ngữ nào cho phép đa kế thừa:
A. C# B. C++ C. Java D. C

Câu 53.
A. Lỗi ở dòng 9 sửa lại bằng cách đặt modifier cho x của lớp Hình học là protected
B. Lỗi ở dòng 9 sửa lại bằng cách đặt modifier cho y của lớp Hình học là protected
C. Câu A, B đúng
D. Đoạn code không có lỗi
Câu 54. Tên của phương thức khởi tạo:
A. Không được trùng với tên lớp B. Phải trùng với tên lớp
C. Đặt tên tùy ý D. Tất cả đều đúng
Câu 55. Kỹ thuật overload cho phép:
A. Khai báo các hàm trùng tên, trùng kiểu tham số nhưng khác kiểu trả trị của hàm.
B. Khai báo các hàm khác tên, khác kiểu tham số, khác kiểu trả trị của hàm.
C. Khai báo các hàm trùng tên, nhưng khác kiểu tham số hoặc khác số lượng tham số
D. Tất cả đều đúng
Câu 56. Chọn câu đúng nhất đối với hướng dẫn tạo lớp:
A. Lấy danh từ chính mô tả khái niệm làm tên lớp.
B. Lấy các danh từ mô tả cho khái niệm chính làm thuộc tính.
C. Lấy các động từ tác động lên đối tượng làm phương thức.
D. Tất cả đều đúng

6
Câu 57.
A. if(s==s2) B. if(s.equals(s2))
C. if(s.equalsIgnoreCase(s2)) D. Câu A, B đều đúng

Câu 58.
A. Thêm phương thức giao tiếp getX() cho lớp Vong Tron
B. Thêm phương thức giao tiếp getY() cho lớp Vong Tron
C. Bỏ từ khoá private ở dòng 4
D. Câu A, B, C đều đúng
Câu 59. Từ khóa static có thể đứng trước:
A. Thành phần dữ liệu của lớp B. Phương thức của lớp
C. Đoạn code D. Tất cả đều đúng

Câu 60.
A. Compile time error B. Runtime error
C. Xuất ra màn hình "Base.method" D. Xuất ra màn hình "Over.method"

Câu 61.
7
A. Xuất ra màn hình: 0
B. Không xuất gì ra màn hình
C. Lỗi biên dịch (A compile time error)
D. Lỗi khi thực thi chương trình (An error at runtime)

Câu 62.
A. Đoạn code có lỗi ở dòng 8 do lớp Vong Tron không có constructor chuẩn
B. Đoạn code có lỗi ở dòng 9 do lớp Demo không thể truy cập đến x
C. Đoạn code có lỗi ở dòng 9 do lớp Demo không thể truy cập đến y
D. Câu B, C đều đúng

Câu 63.
A. Lỗi khi biên dịch (Error at compile time)
B. 99
c. 198
D. Lỗi khi thực thi chương trình (An error at runtime)

Câu 64.
A. for(int i = 0; i < a.length() - 1; i++) B. for(int i = 0; i < a.length(); i++)
C. for(int i = 1; i < 4; i++) D. for(int i = 0; i < a.length; i++)

8
Câu 65.
A. Đoạn code có lỗi ở dòng 6 B. Đoạn code có lỗi ở dòng 7
C. Đoạn code có lỗi ở dòng 12 D. Đoạn code không có lỗi

Câu 66.
A. Đoạn code trên đúng
B. Đoạn code trên sai, phải sửa B b = new A(); thành A b = new B();
C. Đoạn code trên sai, phải sửa B b = newA(); thành A b = new B();
D. Câu A sai
Câu 67.
A. Phải trùng với tên class, phân biệt chữ hoa và chữ thường
B. Phải trùng với tên class, không phân biệt chữ hoa và chữ thường
C. Không phải trùng với tên class
D. Tất cả đều sai
Câu 68. Đối với quyền truy cập nào thì cho phép truy cập các lớp con trong cùng gói với lớp cha?
A. private, friendly, protected. B. friendly, public.
C. friendly, protected, public. D. public, protected.
Câu 69. Khi một thành phần của class được khai báo modifier là friendly thì thành phần đó:
A. Không cho phép các đối tượng thuộc các class cùng package (cùng thư mục) truy cập
B. Cho phép các đối tượng thuộc các class cùng package (cùng thư mục) truy cập
C. Cho phép các đối tượng thuộc các class cùng package (cùng thư mục) và khác package truy cập
D. Tất cả đều đúng
Câu 70. Trong java, khi khai báo một thuộc tính hoặc một hàm của một lớp mà không có từ khóa quyền truy
cập thì mặc định quyền truy cập là gì?
A. public. B. protected. C. friendly. D. private.
Câu 71. Đơn thừa kế là:
A. Lớp con có nhiều lớp cha B. Lớp con có một lớp cha
C. Tất cả đều sai D. Tất cả đều đúng

9
Câu 72.
A. Đoạn code trên có lỗi ở dòng 8 B. Đoạn code trên có lỗi ở dòng 14
C. Đoạn code trên có lỗi ở dòng 15 D. Đoạn code trên không có lỗi

Câu 73.
A. Pha le B. H01 Binh hoa VN 200000.0 Pha le
C. null null 0.0 Pha le D. H01 Binh hoa 200000.0 Pha le
Câu 74. Đa thừa kế là:
A. Lớp con có thể có một hoặc nhiều lớp cha B. Lớp con có một lớp cha
C. Tất cả đều sai D. Tất cả đều đúng
Câu 75. Tỉnh đa hình:
A. Là đa hình thái, nhiều cách phản ứng khác nhau cho cùng một phương thức
B. Có được là nhờ kỹ thuật override phương thức giữa 2 lớp cha con.
C. Tất cả đều đúng
D. Tất cả đều sai
Câu 76. Tất cả các ngôn ngữ hỗ trợ OOP đều hỗ trợ:
A. Đơn thừa kế B. Đa thừa kế
C. Đơn thừa kế và đa thừa kế D. Tất cả đều sai

10
Câu 77.
A. my father B. my son C. null D. Tất cả đều sai

Câu 78.
A. Lớp Hanghoa không có constructor chuẩn
B. Lớp HangSanhSu không có constructor chuẩn
C. Lớp Hanghoa và HangSanhSu không có constructor chuẩn
D. Đoạn code trên không có lỗi

Câu 79.
A. Gom B. null null 0.0 null C. null null 0.0 Gom D. null null null Gom
Câu 80. Các loại thừa kế:
A. Đơn thừa kế B. Đa thừa kế C. Tất cả đều đúng
Câu 81. Khi định nghĩa một lớp con:
A. Được phép khai báo thêm các thành phần dữ liệu B. Được phép khai báo thêm các phương thức
C. Tất cả đều sai D. Tất cả đều đúng

Câu 82.
A. my father my father B. my father my son C. my son my son D. my son my father

11
Câu 83.
A. Đoạn code trên có lỗi ở dòng 5 B. Đoạn code trên có lỗi ở dòng 7 Q
C. Đoạn code trên có lỗi ở dòng 8 D. Đoạn code trên không có lỗi

Câu 84.
A. Có lỗi do dòng 5
B. Có lỗi do dòng
13
C. Có lỗi do dòng
15
D. Không có lỗi

Câu 85.
A. my father B. my son C. null D. Tất cả đều sai
Câu 86. Tính thừa kế là:
A. Khả năng một lớp thừa hưởng data từ một hay nhiều lớp khác.
B. Khả năng một lớp thừa hưởng code từ một hay nhiều lớp khác.
C. Khả năng một lớp thừa hưởng data và code từ một hay nhiều lớp khác.
D. Tất cả đều sai

Câu 87.
A. Đoạn code trên có lỗi ở dòng 5 B. Đoạn code trên có lỗi ở dòng 7
C. Đoạn code trên có lỗi ở dòng 8 D. Đoạn code trên không có lỗi

12
Câu 88.
A. my father B. my son C. null D. Tất cả đều sai
Câu 89. Ưu điểm của tính thừa kế:
A. Giúp tái sử dụng code B. Tiết kiệm công sức lập trình
C. Tiết kiệm công sức kiểm tra code. D. Tất cả đều đúng

Câu 90.
A. Gom B. null null 0.0 null C. null null 0.0 Gom D. null null null Gom
Câu 91. Lớp A có phương thức M(). Lớp B là con của lớp A. Khi đó:
A. Lớp B không được viết đè lên code của phương thức M() được thừa kế từ A
B. Lớp B có thể viết đè lên code của phương thức M() được thừa kế từ A
C. Lớp B bắt buộc phải viết đè lên code của phương thức M() được thừa kế từ
D. Tất cả đều đúng

Câu 92.
A. Dùng từ khóa super trong lớp cha B. Lớp Hanghoa không có constructor chuẩn
C. Không truyền tham số vào super() D. Tất cả đều đúng
Câu 93. Overriding là kỹ thuật:
A. Cho phép sửa code của một phương thức mà lớp con thừa kế từ lớp cha để lớp con phản ứng khác với lớp
cha.
B. Cho phép nhiều phương thức trùng tên nhưng khác tham số trong cùng một lớp.
C. Tất cả đều đúng
13
D. Tất cả đều sai

Câu 94.
A. super(m, t, n, g, tg, da, cs); B. super();
C. super(t, m, n, g); D. super(m, t, n, g);

Câu 95.
A. Đoạn code có lỗi ở dòng 6 B. Đoạn code có lỗi ở dòng 11
C. Đoạn code có lỗi ở dòng 12 D. Đoạn code không có lỗi

Câu 96.
A. 3 6 B. 3 4 C. 3 7 D. 7 3
Câu 97. Cho Parent là lớp cha, Child là lớp con. Phát biểu nào sau đây không hợp lệ?
A. Parent p1=new Child(); B. Child c1=new Child();
C. Parent p1=new Parent(); D. Child c1=new Parent();

14
Câu 98.
A. Đoạn code có lỗi vì chưa khởi tạo cho đối tượng pbk
B. Kết quả của đoạn code: null null null
C. Kết quả của đoạn code: Le Thi Hoa 06/02/2012 P01 Ke hoạch
D. Kết quả của đoạn code: Le Thi Hoa 06/02/2012

Câu 99.
A. Đoạn code có lỗi ở dòng 13 B. Đoạn code có lỗi ở dòng 14
C. Đoạn code có lỗi ở dòng 15 D. Đoạn code không có lỗi
Câu 100. Từ khóa nào cho phép phương thức main() gọi mà không tạo một thể hiện của lớp?
A. public B. static C. final D. throws
Câu 101. Một phương thức có thể được truy cập từ bất kì lớp hay gói phải khai báo là?
A. private B. protectic C. public D. default
Câu 102. Chỉ thị super dùng để làm gì?
A. Truy cập các thuộc tính và hàm của lớp hiện tại. B. Truy cập các thuộc tính và hàm của lớp con.
C. Truy cập các thuộc tính và hàm của lớp cha. D. Tất cả đều đúng.
Câu 103. Khi muốn ghi đè, thay thế code của một hành vi ở lớp cha thì dùng kỹ thuật nào?
A. Kỹ thuật overloading.
B. Kỹ thuật phân cấp và kế thừa.
C. Kỹ thuật overriding.
D. Cả Kỹ thuật overloading và Kỹ thuật phân cấp và kế thừa.

Câu 104.
A. Đoạn code trên dùng kỹ thuật overriding B. Đoạn code trên dùng kỹ thuật overloading
C. Tất cả đều sai D. Tất cả đều đúng
Câu 105. Overriding là kỹ thuật:
A. Cho phép nhiều phương thức trùng tên nhưng khác số lượng tham số hoặc kiểu tham số trong cùng một
lớp

15
B. Cho phép sửa code của một hành vi mà lớp con thừa kế từ lớp cha để lớp con phản ứng khác với lớp cha
C. Cho phép sửa code của các phương thức trùng tên trong các lớp khác nhau
D. Cho phép nhiều phương thức trùng tên nhưng khác số lượng tham số ở lớp cha và lớp con

Câu 106.
A. Đoạn code trên dùng kỹ thuật overriding B. Đoạn code trên dùng kỹ thuật overloading T)
C. Câu A, B đều sai D. Câu A, B đều đúng
Câu 107. Khi khai báo final một class nào đó thì?
A. Lớp đó không cho kế thừa.
B. Lớp đó cho kế thừa.
C. Lớp đó cho kế thừa nhưng không cho viết lại hàm của lớp đó.
D. Không có vụ khai báo final của một lớp.

Câu 108.
A. Đoạn code trên dùng kỹ thuật overriding B. Đoạn code trên dùng kỹ thuật overloading
C. Tất cả đều sai D. Tất cả đều đúng
Câu 109. Dùng chỉ thị nào để không cho phép lớp con thay đổi một hàm nào đó của lớp
cha?
A. this. B. super. C. static. D. final.

Câu 110.
A. 3 6 B. 3 3 C. 3 7 D. 7 3

16
Câu 111.
A. Đoạn code có lối ở dòng 2 B. Đoạn code có lỗi ở dòng 7
C. Đoạn code có lỗi ở dòng 8 D. Đoạn code không có lỗi

Câu 112.
A. red B. Lỗi biên dịch C. blue D. green

Câu 113.
A. Không được khởi tạo đối tượng pbk tại dòng 11 B. Được phép khởi tạo đối tượng pbk tại dòng 11
C. Lớp NhanVien là lớp con của lớp PhongBan D. Câu B, C đều đúng
Câu 114. Muốn kiểm tra một đối tượng có phải là thể hiện của một lớp nào đó không thì ta dùng toán tử nào
trong Java?
A. is B. instanceof C. has D. as

Câu 115.
A. Lớp PhongBan và lớp NhanVien có quan hệ cha - con
B. Lớp PhongBan và lớp NhanVien có quan hệ bao gộp
C. Lớp PhongBan và lớp NhanVien không có quan hệ với nhau
D. Câu A, B đều đúng

Câu 116.
A. Đoạn code có lõi, sửa lại bằng cách bỏ dòng 4 đến dòng 7
B. Đoạn code có lỗi, sửa lại bằng cách thêm constructor chuẩn cho lớp Nguoi
C. Câu A hoặc câu B đúng
D. Câu A, B sai
Câu 117. Lớp kế thừa từ lớp khác được gọi là:
17
A. Lớp trừu tượng B. Lớp cơ sở (lớp cha)
C. Lớp dẫn xuất (lớp con) D. Tất cả đều đúng
Câu 118. Lớp con được phép kế thừa các thành phần của lớp cha với phạm vi nào?
A. protected vȧ public B. protected vȧ privated C. privated và public D. Phạm vi tùy ý
Câu 119. Khi định nghĩa lớp con, từ khóa extends trong Java :
A. Đặt trước tên lớp con B. Đặt trước tên lớp cha C. Đặt sau tên lớp cha D. Tất cả đều sai
Câu 120. Khi khai báo một lớp nằm trong một lớp khác thì điều nào sau là đúng:
A. Lớp ngoài không được phép truy cập thẳng các thuộc tính và hàm của lớp trong.
B. Lớp trong thì truy cập thẳng các thuộc tính và hàm của lớp ngoài.
C. Lớp ngoài muốn truy cập lớp trong thì phải định nghĩa một đối tượng lớp trong.
D. Cả 3 câu trên đều đúng.
Câu 121. Chọn câu trả lời đúng:
A. Lớp trừu tượng là lớp có phương thức trừu tượng
B. Lớp trừu tượng là sản phẩm của quá trình khái quát hóa quá cao
C. Lớp trừu tượng là lớp có sử dụng abstract
D. Tất cả đều đúng
Câu 122. Chọn câu đúng:
A. Một biến thuộc lớp trừu tượng không thể chỉ đến lớp con
B. Một biến thuộc lớp trừu tượng có thể chỉ đến lớp con
C. Một biến thuộc lớp trừu tượng không thể chỉ đến lớp con trừ khi lớp con trừu tượng
D. Một biến thuộc lớp trừu tượng có thể chỉ đến lớp con trừ khi lớp con trừu tượng

Câu 123.
A. Có lỗi ở dòng thứ 7 B. Có lỗi ở dòng thứ 9 C. Có lỗi ở dòng thứ 19 D. Không có lỗi
Câu 124. Lớp trừu tượng:
A. Chỉ có thể là lớp cha B. Chỉ có thể là lớp con C. A và B đều đúng D. A và B đều sai

Câu 125.
A. Có lỗi ở dòng thứ 3 B. Có lỗi ở dòng thứ 6 C. Có lỗi ở dòng thứ 18 D. Không có lỗi
Câu 126. Chọn câu trả lời đúng:
A. Không cần dùng từ khóa extends khi kế thừa một lớp trừu tượng
B. Có thể dùng kỹ thuật Overloading trong lớp trừu tượng
C. Cả A và B đều đúng

18
D. Cả A và B đều sai
Câu 127. Những modifier nào không được phép kết hợp với từ khóa abstract:
A. public B. protected C. final D. Tất cả đều sai
Câu 128. Chọn câu trả lời đúng:
A. Lớp trừu tượng có thể thừa kế từ một lớp cụ thể
B. Lớp trừu tượng không thể thừa kế từ một lớp cụ thể
C. Lớp trừu tượng có thể thừa kế từ một lớp cụ thể nếu lớp đó là lớp nội
D. Lớp trừu tượng có thể thừa kế từ một lớp cụ thể nếu lớp đó là lớp ngoại

Câu 129.
A. Có lỗi ở dòng số 7 B. Có lỗi ở dòng số 9 C. Có lỗi ở dòng số 13 D. Có lỗi ở dòng số 18
Câu 130. Chọn cậu trả lời đúng:
A. Phương thức có chỉ thị abstract thì phải có code
B. Phương thức có chỉ thị abstract thì không cần viết code
C. Phương thức có chỉ thị abstract thì phải có từ khóa public
D. Phương thức có chỉ thị abstract thì phải có từ khóa private
Câu 131. Cú pháp khai báo lớp trừu tượng:
A. modifier abstract class ClassName B. abstract modifier class ClassName
C. Có 2 đáp án đúng D. Có 2 đáp án sai
Câu 132. Chọn câu trả lời đúng:
A. Không thể khởi tạo constructor default trong lớp trừu tượng
B. Có thể khởi tạo constructor default trong lớp trừu tượng
C. Chỉ có thể khởi tạo constructor default trong lớp trừu tượng nếu lớp trừu tượng là lớp nội
D. Chỉ có thể khởi tạo constructor default trong lớp trừu tượng nếu lớp trừu tượng là lớp ngoại
Câu 133. Kiểu trả trị của constructor trong lớp trừu tượng:
A. int B. String
C. char D. Không có kiểu trả trị nào
Câu 134. Chọn câu đúng về lớp trừu tượng:
A. Là lớp có những phương thức chỉ được khai báo mà không viết code
B. Là lớp có thể có những phương thức chỉ được khai báo mà không viết code
C. Là lớp không có phương thức nào được khai báo mà không viết code
D. Là lớp rỗng, không có phương thức nào được khai báo
Câu 135. Chọn câu đúng:
A. Phương thức không có chỉ thị abstract thì phải có code
B. Phương thức không có chỉ thị abstract có thể không có code
C. Phương thức không có chỉ thị abstract thì phải có từ khóa public
D. Phương thức không có chỉ thị abstract thì phải có từ khóa private
Câu 136. Chọn câu trả lời đúng:
A. Mỗi lớp trừu tượng chỉ có duy nhất một constructor.

19
B. Mỗi lớp trừu tượng có thể có nhiều constructor nhưng các constructor phải trùng tên với nhau
C. Mỗi lớp trừu tượng chỉ có tối đa ba lớp constructor
D. Mỗi lớp trừu tượng có thể có vô số constructor
Câu 137. Chọn câu trả lời sai:
A. Một lớp cụ thể có thể kế thừa từ nhiều lớp trừu tượng
B. Một lớp cụ thể không thể truy xuất đến nhiều lớp trừu tượng
C. Cả A và B đều đúng
D. Cả A và B đều sai
Câu 138. Constructor trong lớp trừu tượng:
A. Mặc định là friendly B. Mặc định là final C. Mặc định là protected D. Mặc định là private

Câu 139.
A. { System.out.println(Name+":"+ BasicSalary*5);}
B. { Name = "Nguyen Van A"; BasicSalary = "1000";}
C. { System.out.print(Name+":"+ BasicSalary*5);}
D. {}
Câu 140. Khi hiện thực lớp trừu tượng, từ khóa abstract trong java:
A. Đặt trước tên lớp và phương thức trừu tượng
B. Đặt sau tên lớp và phương thức trừu tượng
C. Đặt sau tên lớp con và các phương thức trong lớp con
D. Tất cả đều sai
Câu 141. Trong một lớp, khi có một hành vi trừu tượng thì lớp đó phải là lớp như thế nào?
A. Lớp trừu tượng. B. Lớp giao tiếp. C. Lớp final. D. Lớp bình thường.
Câu 142. Chọn câu trả lời đúng:
A. Không thể khởi tạo đối tượng kiểu lớp trừu tượng vì lớp trừu tượng không được định nghĩa đầy đủ
B. Có thể khởi tạo đối tượng kiểu lớp trừu tượng vì lớp trừu tượng không được định nghĩa đầy đủ
C. Có thể khởi tạo đối tượng kiểu lớp trừu tượng vì lớp trừu tượng được định nghĩa đầy đủ
D. Không thể khởi tạo đối tượng kiểu lớp trừu tượng vì lớp trừu tượng được định nghĩa đầy đủ

Câu 143.
A. Có lỗi ở dòng thứ 7 B. Có lỗi ở dòng thứ 9 C. Có lỗi ở dòng thứ 19 D. Không có lỗi

20
Câu 144.
A. A. Có lỗi do dòng 3 B. Có lỗi do dòng 7 C. Có lỗi do dòng 9 D. Không có lỗi
Câu 145. Quyền truy cập nào không được dùng kết hợp với từ khóa abstract?
A. public. B. protected. C. Private. D. friendly.
Câu 146. Chọn câu phát biểu đúng:
A. Một lớp trừu tượng không thể chứa phương thức final
B. Một lớp final không thể chứa phương thức trừu tượng
C. Có 2 đáp án đúng
D. Có 2 đáp án sai

Câu 147.
A. Có lỗi ở dòng thứ 7 B. Có lỗi ở dòng thứ 9 C. Có lỗi ở dòng thứ 19 D. Không có lỗi
Câu 148. Chọn câu trả lời đúng:
A. Chỉ có thể khởi tạo constructor default trong lớp trừu tượng
B. Có thể khởi tạo constructor có tham số trong lớp trừu tượng trong mọi trường hợp
C. Chỉ có thể khởi tạo constructor có tham số trong lớp trừu tượng nếu lớp trừu tượng là lớp con
D. Chỉ có thể khởi tạo constructor có tham số trong lớp trừu tượng nếu lớp trừu tượng là lớp cha
Câu 149. Tính đa hình của OOP nhờ:
A. Kỹ thuật Overloading B. Kỹ thuật Overriding
C. Tính đa thừa kế D. Tính đơn thừa kế
Câu 150. Chọn câu trả lời sai:
A. Lớp trừu tượng được khai báo bằng từ khóa abstract
B. Lớp trừu tượng kết hợp được với protected
C. Lớp trừu tượng không kết hợp được với private
D. Lớp trừu tượng kết hợp được với final
Câu 151. Chọn câu trả lời đúng:
A. Có thể dùng kỹ thuật Overloading trong lớp trừu tượng
B. Có thể dùng kỹ thuật Overriding trong lớp trừu tượng
C. Cả A và B đều đúng
D. Cả A và B đều sai
Câu 152. Chọn câu trả lời đúng:
A. Không thể sử dụng super và this trong lớp trừu tượng
B. Có thể sử dụng super và this trong lớp trừu tượng
21
C. Có thể sử dụng super nhưng không thể sử dụng this trong lớp trừu tượng
D. Không thể sử dụng super nhưng có thể sử dụng this trong lớp trừu tượng
Câu 153. Chọn câu sai:
A. Lớp trừu tượng không thể chứa các phương thức cụ thể
B. Khai báo lớp trừu tượng bằng từ khóa abstract
C. Lớp trừu tượng có constructor chuẩn
D. Lớp trừu tượng kết hợp được với public
Câu 154. Chọn câu trả lời đúng:
A. Ta có thể khai báo một lớp vừa là abstract vừa là final
B. Ta không thể khai báo một lớp vừa là abstract vừa là final
C. Ta chỉ có thể khai báo một lớp duy nhất vừa là abstract vừa là final trong một project
D. Tất cả đều sai
Câu 155. Chọn câu trả lời đúng:
A. Lớp trừu tượng còn được gọi là lớp cụ thể hóa
B. Lớp trừu tượng còn được gọi là lớp mô hình hóa
C. Lớp trừu tượng còn được gọi là lớp tượng trưng hóa
D. Tất cả đều sai
Câu 156. Chọn câu trả lời đúng:
A. Mọi lớp trừu tượng đều là lớp con của lớp Object
B. Mọi lớp trừu tượng đều không phải là lớp con của lớp Object
C. Lớp trừu tượng chỉ là lớp con của lớp Object khi lớp Object được khai báo
D. Lớp trừu tượng chỉ là lớp con của lớp Object khi lớp Object không được khai báo.

Câu 157.
A. extends Employee B. implements Employee
C. super Employee D. Không cần thêm code
Câu 158. Những modifier nào được phép kết hợp với từ khóa abstract:
A. private B. protected C. final D. Tất cả đều sai
Câu 159. Chọn câu trả lời sai:
A. Các tham số trong lớp trừu tượng là tham trị
B. Lớp trừu tượng không thể kế thừa từ một lớp cụ thể
C. Lớp trừu tượng là lớp con của lớp Object
D. Lớp trừu tượng kết hợp được với static
Câu 160. Chọn câu trả lời đúng về các phương thức trong lớp trừu tượng:
A. Chỉ được khai báo mà không viết code B. Có thể được khai báo mà không viết code
C. Chỉ được khai báo mà phải viết code D. Không cần phải khai báo vì lớp tự hiểu
Câu 161. Đặc điểm của lớp trừu tượng:
A. Không thể khởi tạo một đối tượng thuộc lớp trừu tượng
B. Có thể khởi tạo một đối tượng thuộc lớp trừu tượng
22
C. Chỉ khởi tạo một đối tượng thuộc lớp trừu tượng khi đối tượng đó cũng trừu tượng
D. Tất cả đều sai
Câu 162. NoSuchMethodException là lớp quản lý lỗi gì trong java?
A. Lỗi do không đúng dạng số B. Lỗi do truy cập class bị cấm
C. Lỗi do không tìm thấy file D. Lỗi do viết sai tên phương thức (hành vi)
Câu 163. IllegalAccessException là lớp quản lý lỗi gì trong java?
A. Lỗi do không đúng dạng số B. Lỗi do truy cập class bị cấm
C. Lỗi do không tìm thấy fileD. D. Lỗi do viết sai tên phương thức
Câu 164. ArrayIndexOutOfBoundsException là lớp quản lý lỗi gì trong java?
A. Lỗi do không đúng dạng số B. Lỗi do truy cập class bị cấm
C. Lỗi do truy cập ngoài tầm của mảng D. Lỗi do viết sai tên phương thức
Câu 165. SecurityException là lớp quản lý lỗi gì trong java?
A. Lỗi do không đúng dạng số B. Lỗi do truy cập class bị cấm
C. Lỗi do truy cập bị cấm D. Lỗi do viết sai tên phương thức
Câu 166. IOException là lớp quản lý lỗi gì trong java?
A. Lỗi do không đúng dạng số B. Lỗi nhập xuất
C. Lỗi do không tìm thấy file D. Lỗi do viết sai tên phương thức
Câu 167. NullPointerException là lớp quản lý lỗi gì trong java?
A. Lỗi do truy xuất phương thức mà chưa khởi tạo B. Lỗi do truy cập class bị cấm
C. Lỗi do không tìm thấy file D. Lỗi do viết sai tên phương thức
Câu 168. ArithmeticException là lớp quản lý lỗi gì trong java?
A. Lỗi do không đúng dạng số B. Lỗi do truy cập class bị cấm
C. Lỗi do không tìm thấy file D. Lỗi do thực thi 1 phép toán
Câu 169. Gói nào sau đây là gói mặc định trong java?
A. java.io B. java.math C. java.text D. java.lang
Câu 170. Để đọc một tập tin, ta sử dụng gói nào trong các gói sau đây?
A. Java.io B. Java.util C. Java.Data D. Java.File
Câu 171. Các phương thức trong 1 Interface được dùng với các modifier nào?
A. public và private B. public và friendly C. protected và private D. protected và public
Câu 172. Một lớp có thể hiện thực tối đa bao nhiêu Interface?
A. Nhiều Interface B. 3 Interface C. 5 Interface D. Duy nhất 1 Interface
Câu 173. Khai báo nào sau đây là khai báo của phương thức trừu tượng (abstract)?
A. public void add(); B. public abstract void add() {}
C. public abstract add(); D. public virtual add();
Câu 174. Dùng từ khóa gì để có được đa kế thừa trong java.
A. abstract. B. package. C. interface. D. final.
Câu 175. Câu nào sau đây sai:
A. Interface được xem như 1 lớp trừu tượng
B. Package gồm các Interface, các class và các package con
C. Khi sao chép các tập tin .class trong một gói thì phải sao chép cả các thư mục chứa lẫn cấu trúc của các
thư mục(gói) có liên quan
D. A, B, C đều sai
Câu 176. Chọn câu đúng:
A. Mỗi package chứa các class và interface B. Mỗi interface chứa các class và package
C. Có 2 đáp án đúng D. Có 2 đáp án sai

23
Câu 177. Cú pháp nào sau đây không hợp lệ khi khai báo 1 hằng a=10 trong Interface:
A. public interface int a=10; B. int a=10;
C. final int a=10; D. public int a=10;
Câu 178. Phát biểu nào sau đây là sai về đặc điểm của interface.
A. Interface là một tập hợp các hành vi mà không có cài đặt code.
B. Hành vi trong interface phải có quyền truy cập là protected hoặc friendly.
C. Các lớp implements một interface thì phải viết code cho các hành vi của interface đó.
D. Lớp trừu tượng implements một interface thì có thể không cần phải viết code cho các hành vi của
interface đó.
Câu 179. Chọn đoạn code gây lỗi khi biên dịch:
A. import java.awt.*;
package Mypackage;
class Myclass {}
B. package MyPackage;
import java.awt.*;
class MyClass{}
```
C. /*This is a comment */
package MyPackage;
import java.awt.*; class MyClass{}
```
D. Tất cả đều sai
Câu 180. Trong các phát biểu sau đây, phát biểu nào sai?
A. 1 package có thể bao gồm các class, các Interface và các package con
B. Câu lệnh khai báo package phải là dòng đầu tiên trong code java
C. Một class khi được định nghĩa mà không định nghĩa package của nó thì trình biên dịch sẽ báo lỗi
D. Mỗi package là một thư mục chứa lớp
Câu 181. Một class muốn thực thi được trong một thread riêng thì phải implements interface nào?
A. Run B. Runnable C. Threadable D. Executable
Câu 182. Khi một lớp cụ thể viết lại các phương thức trong 1 Interface thì modifier của các phương thức trong
lớp đó phải là gì?
A. friendly B. private C. public D. protected
Câu 183. Chọn câu đúng:
A. Các biến Interface là static
B. Một lớp không thể khai báo vừa là final và vừa là abstract
C. Interface không thể kế thừa Interface cha
D. Một lớp trừu tượng bắt buộc phải hiện thực các method của Interface
Câu 184. Để sử dụng được các class không cùng một package, từ khoá nào sau đây sẽ được sử dụng:
A. export B. extend C. import D. include
Câu 185. Interface là gì?
A. Là một lớp hoàn toàn trừu tượng B. Chỉ gồm các hằng
C. Có kiểu tham chiếu là public hoặc friendly D. Tất cả đều đúng.
Câu 186. Chọn câu đúng:
A. Phương thức Interface là ngầm định kiểu public B. Các biến Interface là public, non-static và final
C. Phương thức có thể là static hoặc non-static D. Trong phương thức Interface dùng chỉ thị import

24
Câu 187. Cú pháp nào dùng để sử dụng package?
A. import PackageName.*; và import PackageName.ClassName;
B. import PackageCha.PackageCon.*; và import PackageCha.PackageCon.ClassName;
C. Cả A và B đúng
D. Cả A và B đều sai
Câu 188. Trong một file java, thứ tự đúng của các khai báo import, class, package là gì?
A. package, import, class B. class, import, package
C. import, package, class D. package, class, import
Câu 189. Các từ nào sau đây là từ khoá trong java?
A. implements B. malloc C. calloc D. FALSE
Câu 190. Dùng từ khoá nào sau đây để hiện thực 1 Interface:
A. implement B. implements C. Implement D. Implements
Câu 191. Biểu thức nào dưới đây có kết quả là kiểu dữ liệu String?
A. "0" B. "ab"+"cd" C. '0' D. Cả "ab"+"cd" và "0"
Câu 192. Thuộc tính của lớp là gì?
A. Hành vi của đối tượng
B. Những chức năng của đối tượng
C. Thành phần dữ liệu của đối tượng thuộc lớp đó
D. Liên quan tới những thít mà đối tượng có thể làm.
Câu 193. - Hãy chọn câu đúng để mô tả về biển:
A. Biến local (biến cục bộ) là biến được định nghĩa bên ngoài các phương thức, constructor, hoặc trong các
block
B. Biến instance (biến thực thể) là biển được khai báo định nghĩa trong một lớp (class), bên ngoài các
phương thức, constructor và các block
C. Biến instance (biến toàn cục) là biến được định nghĩa bên ngoài các lớp
D. Tất cả đều sai
Câu 194. Lệnh lấp nào dưới đây là lệnh lặp vô tần?
A. for(;;) B. for(i=0; i<1; i++) C. for(i-0;;i++) D. Tất cả đều đúng
Câu 195. Thuật ngữ nào mô tả sự triều tượng?
A. Inheritance B. Abstraction C. Polymorphism D. Encapsulation
Câu 196. . Một đối tượng phải có đặc điểm nào?
A. Thuộc một phương thức (method) B. Thuộc một lớp (class)
C. Thuộc một hoặc nhiều lớp D. A và B đều sai
Câu 197. Các tính chất cơ bản của lập trình theo hướng đối tượng
A. Tỉnh đóng gói, tính kế thừa, tính đa hình, tính đặc biệt hóa
B. Tính chia nhỏ, tính kế thừa
C. Tính đóng gói, tính kế thừa, tính đa hình, tính trừu tượng
D. Tính đóng gói, tính trừu tượng.
Câu 198. Tính đóng gói, tính kế thừa, tính đa hình, tính trừu tượng là những đặc điểm cơ bản của phương pháp
nào?
A. Lập trình hướng thủ tục. B. Lập trình hướng trừu tượng
C. Lập trình hướng đối tượng D. Tất cả đều sai
Câu 199. Phát biểu nào sau đây đúng?
A. Tên của một lớp (class) chỉ có thể bắt đầu bằng ký tự chữ hoặc dấu gạch dưới ( ) hoặc ký tự $
B. Tên của một lớp (class) không thể chịu ký tự số
C. Tên của một lớp (class) được phép bắt đầu bằng ký tự số
25
D. Tất cả đều đúng
Câu 200. Từ khóa nào dùng để khai báo một lớp (class) trong Java?
A. class B. Class C. Java D. java
Câu 201. Một lớp (class) trong Java có thể bao gồm các thành phần nào?
A. Các thành phần dữ liệu (data)
B. Các phương thức khởi tạo (constructors) và các phương thức khác (methods)
C. Lớp nội (inner class)
D. Tất cả đều đúng
Câu 202. Từ khóa nào dùng để tạo mới một đối tượng trong Java?
A. class B. java C. new D. create
Câu 203. Chọn phát biểu sai
A. protected class A ...} B. public class A {...}
C. protected void msg{...} D. public static void main(String args[]) {...}
Câu 204. Các ngôn ngữ lập trình OOP như Java, C# cho phép loại kế thừa nào?
A. Đơn kế thừa B. Đa kế thừa
C. Đơn kế thừa và đa kế thừa D. Tất cả đều sai
Câu 205. Trong Java, constructor có thể được kế thừa không?
A. Chỉ nếu là constructor mặc định không tường minh
B. Chỉ nếu là constructor mặc định tường minh
C. Không
D. Có
Câu 206. Tính chất nào sau đây mô tả khả năng tái sử dụng mã nguồn trong lập trình hướng đối tượng bằng
Java?
A. Tính đa hình B. Tính đóng gói C. Tính trừu tượng hóa D. Tính kế thừa
Câu 207. Các thừa kế nào sau đây được cho phép trong Java?
A. Lớp con thừa kế hai lớp cha
B. Một interface thừa kế một lớp cha
C. Lớp con thừa kế một lớp cha và hai interface
D. Một interface thừa kế một lớp cha và một interface khác.
Câu 208. Trong Java, phương thức nào dưới đây có tính chất đa hình?
A. final void display() B. static void display()
C. protected void display() D. void display()
Câu 209. Trong lớp Car có thực hiện override hàm toString(). Đối tượng car1 thuộc lớp Car. Phát biểu nào sau
đây là đúng nhất?
A. toString dùng để xuất các giá trị kiểu nguyên thủy, nó được override từ lớp Object.
B. toString trả về một chuỗi biểu diễn của đối tượng thuộc lớp Car.
C. toString sẽ được System.out.print(car1) gọi chạy, nó được override từ lớp Super.
D. toString có kiểu hàm là void, nó được override từ lớp Object.

26
Câu 210.
A. XX B. XY C. Lỗi khi thực thi D. lỗi biên dịch
Câu 211. Lớp Hình Tron (hình tròn) có hàm TinhDienTich. Khi tạo và sử dụng màng các hình tròn, đoạn code
sau đây sinh ra lỗi là do nguyên nhân nào?
public class SuDung {
public static void main(String[] args) {
Hinh Tron[] a;
a=new HinhTron[3];
a[0].TinhDienTich();
}
A. Do a[0] chưa là đối tượng tại dòng 7
B. Do không chịu viết gộp dòng 3 và dòng 4 lại
C. Do không dùng cặp ngoặc tròn tại dòng 4
D. Do không chịu hứng kết quả diện tích trả về tại dòng 5
Câu 212. Trong Java, từ khóa "super()" được sử dụng ở đâu trong constructor?
A. Phải là dòng lệnh cuối cùng B. Phải là dòng lệnh đầu tiên
C. Bất kỳ dòng lệnh nào D. Chỉ được sử dụng trong constructor của lớp con
Câu 213. Trong Java, từ khóa "static" được sử dụng để làm gì?
A. Biến hoặc phương thức được gọi mà không cần tạo một thể hiện của lớp
B. Đảm bảo một biến không thể thay đổi giá trị của nó
C. Cho phép một biến hoặc phương thức được chia sẻ giữa các đối tượng
D. Không cho phép kế thừa lớp hoặc ghi đè phương thức
Câu 214. Giả sử tập hợp (Set) s1 là [1, 2, 5] và tập hợp (Set) s2 là [2, 3, 6]. Sau khi thực hiện s1.addAll(s2), s1
là:
A. [2] B. [1, 2, 3, 5, 6] C. [1, 2, 5, 3, 6] D. [1,5]
Câu 215. Những kiểu dữ liệu nào sau đây có iterators?
A. HashSet B. HashSet, LinkedHashSet
C. LinkedList D. HashSet, ArrayList, LinkedList, LinkedHashSet
Câu 216. Trong đoạn code sau, base case là gì?
static int xMethod(int n) {
if (n == 1)
return 1;
else
return n + xMethod(n - 1);
}
27
A. n > 1 B. n < 1 C. n = 1 D. Không có base case
Câu 217. Nếu bạn muốn chứa những đối tượng không trùng nhau mà có thứ tự đúng như thứ tự mà chúng được
thêm vào, nên sử dụng:
A. LinkedHashSet B. TreeSet C. ArrayList D. HashSet
Câu 218. Hãy cho biết kết quả khi thực hiện đoạn code sau:
Set<String> set = new TreeSet<String>();
set.add("Red");
set.add("Green");
set.add("Blue");
System.out.println(set);
A. [Red, Green, Blue] B. [Blue] C. [Blue, Green, Red] D. [Red]
Câu 219. Phương thức get(int index) được cung cấp trong những cấu trúc nào sau đây?
A. Set B. Map
C. Tất cả đáp án đều đúng. D. List
Câu 220. Cấu trúc dữ liệu nào sau đây không cho phép trùng lặp (duplicates)?
A. Stack B. Vector C. Set D. List
Câu 221. Hãy cho biết kết quả khi chạy đoạn code sau:
LinkedHashSet<String> set1 = new LinkedHashSet<String>();
set1.add("New York");
LinkedHashSet<String> set2 = set1;
set1.add("Atlanta");
System.out.println(set2);
set2.add("Dallas");
A. [New York, Atlanta] B. [New York, Atlanta, Dallas]
C. [New York] D. [New York, Dallas]
Câu 222. Trước đoạn code sau, đoạn code này bị lỗi gì?
int a = 5;
int b = 0;
int result = a / b;
A. ArithmeticException B. DivideByZeroException
C. NullPointerException D. IndexOutOfBoundsException
Câu 223. Trước đoạn code sau, đoạn code này bị lỗi gì?
String str = null;
int length = str.length();
A. DivideByZeroException B. ArithmeticException
C. NullPointerException D. NullReferenceException
Câu 224. Trước đoạn code sau, đoạn code này bị lỗi gì?
int[] arr = new int[5];
int element = arr[10];
A. ArrayOutOfBoundsException B. NullPointerException
C. IndexOutOfBoundsException D. ArrayIndexOutOfBoundsException
Câu 225. Trước đoạn code sau, đoạn code này bị lỗi gì?
String str = "hello";
char ch = str.charAt(10);
A. ArrayIndexOutOfBoundsException B. NullPointerException

28
C. IndexOutOfBoundsException D. StringIndexOutOfBoundsException
Câu 226. Trước đoạn code sau, đoạn code này bị lỗi gì?
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
A. InputMismatchException B. NumberFormatException
C. IllegalArgumentException D. ScannerException
Câu 227. Trước đoạn code sau, đoạn code này bị lỗi gì?
Object obj = "hello";
Integer num = (Integer) obj;
A. ClassCastException B. TypeMismatchException
C. IllegalArgumentException D. CastException
Câu 228. Trước đoạn code sau, đoạn code này bị lỗi gì?
String str = "hello";
int num = Integer.parseInt(str);
A. TypeMismatchException B. IllegalArgumentException
C. CastException D. NumberFormatException
Câu 229. Trước đoạn code sau, đoạn code này bị lỗi gì?
FileInputStream fis = new FileInputStream("nonexistent.txt");
A. FileNotFoundException B. IOException
C. FileException D. NoSuchFileException
Câu 230. Trước đoạn code sau, đoạn code này bị lỗi gì?
try {
Thread.sleep(-1);
} catch (InterruptedException e) {
e.printStackTrace();
}
A. InterruptedException B. ThreadException
C. SleepException D. IllegalArgumentException
Câu 231. Trước đoạn code sau, đoạn code này bị lỗi gì?
String str = "123abc";
int num = Integer.parseInt(str);
A. NumberFormatException
B. TypeMismatchException
C. IllegalArgumentException
D. ParseException
Dưới đây là các đáp án đã được chỉnh sửa:
Câu 232. Trong Java, nested class có bao nhiêu loại chính?
A. Một B. Hai C. Ba D. Bốn
Câu 233. Nested class có thể được kế thừa không?
A. Có B. Không
Câu 234. Trong Java, nested class có thể được khai báo ở đâu?
A. Chỉ bên trong một lớp B. Chỉ bên trong một phương thức
C. Cả hai trên D. Không đúng câu nào
Câu 235. Phương thức `toString()` trong Java được sử dụng để làm gì?
A. Chuyển đối một đối tượng thành một chuỗi.
29
B. Tạo ra một đối tượng mới từ một chuỗi.
C. Kiểm tra xem một đối tượng có tồn tại hay không.
D. Xóa một đối tượng khỏi bộ nhớ.
Câu 236. Khi nào phương thức `toString()` được gọi tự động?
A. Khi bạn gọi nó bằng cách truy cập trực tiếp.
B. Khi bạn sử dụng phương thức `print()` hoặc `println()` của lớp `System.out`.
C. Khi bạn truyền một đối tượng vào trong phương thức `System.out.println()`.
D. Khi bạn gọi phương thức `toString()` bên trong một phương thức khác.
Câu 237. Trong lập trình hướng đối tượng, phương thức `toString()` mặc định trả về gì?
A. Một chuỗi rỗng.
B. Một chuỗi chỉ ra tên của đối tượng.
C. Một chuỗi chứa giá trị của các biến thành viên của đối tượng.
D. Một chuỗi chứa mã nhị phân của đối tượng.
Câu 238. Làm thế nào để tùy chỉnh phương thức `toString()` cho một lớp cụ thể?
A. Override phương thức `toString()` từ lớp `Object`.
B. Sử dụng từ khóa `final` trước phương thức `toString()`.
C. Không thể tùy chỉnh phương thức `toString()`.
D. Sử dụng phương thức `toString()` chỉ cho các lớp giao diện.
Câu 239. Phương thức `toString()` trong Java có thể trả về kiểu dữ liệu nào?
A. Chỉ có thể trả về kiểu dữ liệu `String`.
B. Chỉ có thể trả về kiểu dữ liệu `Object`.
C. Có thể trả về bất kỳ kiểu dữ liệu nào.
D. Chỉ có thể trả về kiểu dữ liệu nguyên thủy (primitive).
Câu 240. Inner class là gì?
A. Lớp được khai báo bên trong một lớp khác.
B. Lớp không thể được khai báo bên trong một lớp khác.
C. Lớp được khai báo bên trong một package khác.
D. Lớp được khai báo bên trong một interface.
Câu 241. Khi khởi tạo generic class, điều gì không được phép?
A. Sử dụng tên chung chung cho class. B. Truyền dữ liệu nguyên thủy.
C. Viết hàm sử dụng generic. D. Kế thừa từ lớp cha.
Câu 242. Để generic class chỉ kế thừa từ một lớp cụ thể, bạn sử dụng cú pháp nào?
A. <T extends A> B. <T extends Object> C. <T> D. <T extends Number>
Câu 243. Khi bạn muốn sử dụng một danh sách (List) có thể chứa các đối tượng có kiểu là con của Number,
bạn sẽ sử dụng cú pháp nào?
A. Map B. List<Number> C. Set<Integer> D. List;
Câu 244. Trong phương thức printElement với generic, cách viết nào sau đây không chạy vì không có kiểu dữ
liệu cụ thể?
A. for(? e: List) B. for(Collection e: List)
C. for(Number n: List) D. for(Object o: List)
Câu 245. Lớp con được thừa kế từ lớp cha bằng cách nào?
A. Include B. Implement C. Extend D. Declare
Câu 246. Lớp con có thể sử dụng constructor của lớp cha. Đúng hay sai?
A. Đúng B. Sai
Câu 247. Một lớp con có thể triển khai nhiều interface, nhưng chỉ kế thừa một lớp cha. Đúng hay sai?

30
A. Đúng B. Sai
Câu 248. Từ khóa "var" trong Java được sử dụng khi nào?
A. Khi biết kiểu dữ liệu. B. Khi chưa biết kiểu dữ liệu.
C. Khi muốn sử dụng hàm "toString". D. Khi sử dụng printf.
Câu 249. Nguyên tắc xây dựng phần mềm cho rằng không nên sử dụng gì trong hàm xử lý ? (câu hỏi thêm sẽ
không có khả năng ra)
A. "var" B. printf
C. toString D. constructor của lớp cha.
Câu 250. Cho biết kết quả đoạn code trên?
public class hoa_Maudo {

void noHoado(){
System.out.print("Nở hoa màu đỏ");
}
}
class hoa_Mauvang {

void nohoavang(){
System.out.print(" Nở hoa vàng");
}
}
class hoaLai extends hoa_Mauvang {
void no2_Mauhoa(){
super.nohoavang();
super.noHoado();
}

public static void main(String[] args) {


hoaLai hoaLaiObj = new hoaLai();
hoaLaiObj.no2_Mauhoa();
}
}
A. in ra "Nở hoa màu đỏ Nở hoa vàng" B. in ra "Nở hoa màu đỏ"
C. in ra "Nở hoa vàng" D. đoạn code trên chạy không được
Câu 251. Cho đoạn code sau:
import java.util.ArrayList;
public class Example {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
System.out.println(list.get(1));
}
}

31
```
A. apple B. banana C. orange D. Compile error
Câu 252. Cho đoạn code sau:
import java.util.HashMap;
public class Example {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
System.out.println(map.get("banana"));
}
}
```
A. apple B. 1 C. banana D. 2
Câu 253. Cho đoạn code sau:
```java
import java.util.HashSet;
public class Example {
public static void main(String[] args) {
HashSet<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(3);
System.out.println(set.contains(2));
}
}
A. false B. true C. Compile error D. NullPointerException
Câu 254. Cho đoạn code sau:
import java.util.LinkedList;
public class Example {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<>();
list.add("apple");
list.add("banana");
list.add("orange");
System.out.println(list.getLast());
}
}
```
A. apple B. banana C. orange D. Compile error
Câu 255. Cho đoạn code sau:
import java.util.ArrayList;
public class Example {
public static void main(String[] args) {
32
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
System.out.println(list.size());
}
}
```
A. 1 B. 2 C. 3 D. 4
Câu 256. Cho đoạn code sau:
```java
import java.util.HashMap;
public class Example {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<>();
map.put("a", "apple");
map.put("b", "banana");
map.put("c", "orange");
System.out.println(map.containsKey("d"));
}
}
```
A. false B. true C. NullPointerException D. Compile error
Câu 257. Cho đoạn code sau:
import java.util.HashSet;
public class Example {
public static void main(String[] args) {
HashSet<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
set.add("orange");
System.out.println(set.size());
}
}
A. 1 B. 2 C. 3 D. Compile error
Câu 258. Cho đoạn code sau:
import java.util.LinkedList;
public class Example {
public static void main(String[] args) {
LinkedList<Integer> list = new LinkedList<>();
list.add(1);
list.add(2);
list.add(3);
System.out.println(list.peek());
}
33
}
A. 1 B. 2 C. 3 D. null
Câu 259. Cho đoạn code sau:
import java.util.HashMap;
public class Example {
public static void main(String[] args) {
HashMap<Integer, String> map = new HashMap<>();
map.put(1, "apple");
map.put(2, "banana");
map.put(3, "orange");
System.out.println(map.get(4));
}
}
```
A. apple B. banana C. orange D. null
Câu 260. Cho đoạn code sau:
import java.util.ArrayList;
public class Example {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
System.out.println(list.indexOf("banana"));
}
}
```
A. 0
B. 1
C. 2
D. -1
Dưới đây là các câu hỏi đã chỉnh sửa với dấu chấm sau ABCD như yêu cầu của bạn:
Câu 261. Trong Java, constructor được sử dụng cho mục đích nào sau đây?
A. Tạo đối tượng.
B. Hủy đối tượng.
C. Thay đổi thuộc tính của đối tượng.
D. Truy cập đến các thuộc tính private của đối tượng.
Câu 262. Destructor tồn tại trong Java?
A. Đúng. B. Sai.
Câu 263. Garbage collector trong Java được sử dụng để làm gì?
A. Tạo đối tượng. B. Hủy đối tượng.
C. Giải phóng bộ nhớ không sử dụng. D. Sắp xếp các đối tượng trong bộ nhớ.
Câu 264. Trong Java, constructor có thể được gọi bằng cách nào sau đây?
A. Tự động khi đối tượng được tạo. B. Bằng cách gọi phương thức tạo().
C. Chỉ bằng cách gọi tên của constructor. D. Chỉ qua phương thức static.
34
Câu 265. Constructor mặc định trong Java thực hiện công việc gì?
A. Khởi tạo tất cả các thuộc tính của đối tượng. B. Không làm gì cả.
C. Tạo ra một bản sao của đối tượng. D. Hủy đối tượng.
Câu 266. Garbage collector trong Java hoạt động dựa trên nguyên tắc gì?
A. FIFO (First In First Out). B. LIFO (Last In First Out).
C. Thăm dò theo chiều sâu (DFS). D. Quét và xóa các đối tượng không còn tham chiếu.
Câu 267. Trong Java, làm thế nào để buộc garbage collector chạy?
A. Gọi phương thức clear() trên các đối tượng không còn sử dụng.
B. Gọi phương thức finalize() trên các đối tượng không còn sử dụng.
C. Gọi phương thức collect() của lớp System.
D. Không thể buộc garbage collector chạy.
Câu 268. Trong Java, constructor có thể có kiểu trả về không?
A. Có. B. Không.
Câu 269. Garbage collector trong Java có thể được vô hiệu hóa không?
A. Có. B. Không.
Câu 270. Trong Java, lớp được sử dụng để làm gì?
A. Tạo đối tượng. B. Thực hiện phương thức.
C. Định nghĩa biến cục bộ. D. Khai báo hằng số.
Câu 271. Đối tượng trong Java là gì?
A. Một phương thức của lớp. B. Một biến cục bộ.
C. Một thể hiện của lớp. D. Một biến static.
Câu 272. Lớp inner class trong Java là gì?
A. Lớp nằm trong một package khác. B. Lớp chứa các phương thức static.
C. Lớp được khai báo trong một phương thức. D. Lớp được khai báo bên trong một lớp khác.
Câu 273. Trong Java, đối tượng được tạo từ lớp thông qua điều gì?
A. Phương thức init(). B. Phương thức new(). C. Phương thức main(). D. Phương thức create().
Câu 274. Thuộc tính của một đối tượng trong Java được gọi như thế nào?
A. Bằng cách truy cập trực tiếp từ bên ngoài lớp.
B. Bằng cách gọi phương thức get().
C. Bằng cách gọi phương thức set().
D. Bằng cách sử dụng "tên_đối_tượng.tên_thuộc_tính".
Câu 275. Lớp inner static class trong Java có thể truy cập vào thành phần nào của lớp bao bọc?
A. Chỉ có các biến static.
B. Chỉ các phương thức static.
C. Tất cả các thành phần của lớp bao bọc.
D. Không thể truy cập vào thành phần nào của lớp bao bọc.
Câu 276. Trong Java, cách khai báo đối tượng của một lớp inner class là gì?
A. LớpBênNgoài.lớpInner biến = new LớpBênNgoài.lớpInner();.
B. LớpInner biến = new LớpInner();
C. LớpInner biến = new LớpBênNgoài.lớpInner();
D. LớpBênNgoài.lớpInner biến = new LớpBênNgoài.lớpInner();
Câu 277. Trong Java, lớp inner class có thể truy cập vào biến instance của lớp bao bọc như thế nào?
A. Không thể truy cập được. B. Chỉ qua phương thức getter.
C. Trực tiếp. D. Chỉ qua phương thức setter.
Câu 278. Lớp inner class non-static trong Java có thể truy cập vào biến instance của lớp bao bọc không?
35
A. Có. B. Không.
Câu 279. Trong Java, lớp inner class non-static có thể được khởi tạo ra ngoài lớp bao bọc không?
A. Có. B. Không.
Câu 280. Câu hỏi:
```java
public class Main {
public static void main(String[] args) {
String str = "Hello";
str[0] = 'J';
System.out.println(str);
}
}
```
Chọn phương án nào dưới đây là kết quả khi chạy chương trình?
A. Hello B. Jello C. Compilation error D. Runtime error
Câu 281. Câu hỏi:
public class Main {
public static void main(String[] args) {
String str = null;
System.out.println(str.length());
}
}
Chọn phương án nào dưới đây là kết quả khi chạy chương trình?
A. Compilation error B. NullPointerException C. 0 D. Runtime error
Câu 282. Câu hỏi:
```java
public class Main {
public static void main(String[] args) {
String str = "Hello";
System.out.println(str.charAt(5));
}
}
```
Chọn phương án nào dưới đây là kết quả khi chạy chương trình?
A. Compilation error B. IndexOutOfBoundsException
C. Space D. StringIndexOutOfBoundsException
Câu 283. Câu hỏi:
```java
public class Main {
public static void main(String[] args) {
String str = "Hello";
str.concat(" World");
System.out.println(str);
}
}
36
```
Chọn phương án nào dưới đây là kết quả khi chạy chương trình?
A. HelloWorld B. Hello World C. World D. Hello
Câu 284. Câu hỏi:
```java
public class Main {
public static void main(String[] args) {
String str = "Java";
StringBuilder sb = new StringBuilder(str);
sb.append(" is");
sb.append(" fun");
System.out.println(sb.reverse());
}
}
```
Chọn phương án nào dưới đây là kết quả khi chạy chương trình?
A. nuf si avaJ B. fun is Java C. avaj si nuf D. Compilation error
Câu 285. Câu hỏi:
public class Main {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("Hello");
sb.replace(0, 2, "Hi");
System.out.println(sb);
}
}
```
Chọn phương án nào dưới đây là kết quả khi chạy chương trình?
A. Hi B. ello C. Hillo D. Compilation error
Câu 286. Câu hỏi:
```java
public class Main {
public static void main(String[] args) {
String[] arr = new String[5];
arr[0] = "Java";
arr[1] = "Python";
System.out.println(arr.length);
}
}
```
Chọn phương án nào dưới đây là kết quả khi chạy chương trình?
A. 2 B. 5 C. Compilation error D. Runtime error
Câu 287. Câu hỏi:
```java
public class Main {
public static void main(String[] args) {
37
String[] arr = {"Java", "Python", "C++"};
System.out.println(arr[3]);
}
}
```
Chọn phương án nào dưới đây là kết quả khi chạy chương trình?
A. Java B. NullPointerException
C. Compilation error D. ArrayIndexOutOfBoundsException
Câu 288. Câu hỏi:
```java
public class Main {
public static void main(String[] args) {
String[] arr = new String[5];
arr[0] = "Java";
System.out.println(arr[1]);
}
}
```
Chọn phương án nào dưới đây là kết quả khi chạy chương trình?
A. Compilation error B. NullPointerException C. null D. Runtime error
Câu 289. Câu hỏi:
```java
public class Main {
public static void main(String[] args) {
String str = "Java";
str.concat(" Programming");
System.out.println(str);
}
}
```
Chọn phương án nào dưới đây là kết quả khi chạy chương trình?
A. Java Programming B. Programming C. Java D. Compilation error
Câu 290. cho đoạn code sau.
public class Main {
public static void main(String[] args) {
Integer x = 5;
if (x instanceof Integer) {
System.out.println("x is an instance of Integer.");
} else {
System.out.println("x is not an instance of Integer.");
}
}
}
A. Compilation Error B. x is an instance of Integer.
C. x is not an instance of Integer. D. NullPointerException
38
Câu 291. public class Main {
public static void main(String[] args) {
Double x = 3.14;
if (x instanceof Number) {
System.out.println("x is an instance of Number.");
} else {
System.out.println("x is not an instance of Number.");
}
}
}
A. Compilation Error B. x is an instance of Integer.
C. x is not an instance of Integer. D. NullPointerException
Câu 292. public class Main {
public static void main(String[] args) {
int x = 100;
if (x instanceof Integer) {
System.out.println("x is an instance of Integer.");
} else {
System.out.println("x is not an instance of Integer.");
}
}
}
A. Compilation Error B. x is an instance of Integer.
C. x is not an instance of Integer. D. NullPointerException
Câu 293. public class MyClass {
static int num;
public MyClass(int n) {
num = n;
}
public static void main(String[] args) {
MyClass obj1 = new MyClass(10);
MyClass obj2 = new MyClass(20);
System.out.println(obj1.num);
System.out.println(obj2.num);
}
}
sửa lỗi đoạn code sau
A. Thêm từ khóa final vào trước khai báo biến num
B. Thêm từ khóa static vào trước khai báo biến num
C. Loại bỏ từ khóa static khỏi trước khai báo biến num
D. Sử dụng obj2.num thay vì obj1.num
Câu 294. public class MyClass {
static final int num = 100;
public static void main(String[] args) {
num = 200; // Lỗi ở đây
39
System.out.println("Value of num: " + num);
}
}
sửa lỗi đoạn code sau
A. Thêm từ khóa static vào trước khai báo biến num
B. Loại bỏ từ khóa final khỏi trước khai báo biến num
C. Thay đổi giá trị của biến num trong hàm main thành 200
D. Không thể sửa giá trị của biến num
Câu 295. Câu hỏi: Trong Java, lớp là gì?
A. Định nghĩa một hành vi hoặc tính năng
B. Đại diện cho một phiên bản cụ thể của một đối tượng
C. Định nghĩa một tập hợp các đối tượng có cùng thuộc tính và hành vi
D. Định nghĩa một hằng số hoặc biến
Câu 296. Câu hỏi: Trong Java, đối tượng là gì?
A. Định nghĩa một hành vi hoặc tính năng
B. Đại diện cho một phiên bản cụ thể của một lớp
C. Định nghĩa một tập hợp các đối tượng có cùng thuộc tính và hành vi
D. Định nghĩa một hằng số hoặc biến
Câu 297. [Câu hỏi: Trong Java, tính đa hình (polymorphism) là gì?
A. Quá trình một lớp được kế thừa từ một lớp khác
B. Quá trình một lớp được sử dụng để tạo các đối tượng mới
C. Quá trình một phương thức có thể được triển khai dưới nhiều hình thức
D. Quá trình một lớp tự thực hiện một phương thức từ một lớp khác
Câu 298. Câu hỏi: Trong Java, tính đóng gói (encapsulation) là gì?
A. Khả năng một lớp kế thừa từ lớp khác
B. Khả năng một lớp được sử dụng để tạo các đối tượng mới
C. Quá trình ẩn thông tin chi tiết về cách lớp hoạt động và khả năng tác động đến chúng
D. Quá trình một lớp tự thực hiện một phương thức từ một lớp khác
Cho đoạn code sau. Chọn đáp án đúng:

Câu 299.
A. Đoạn code có lỗi ở dòng 18 vì chưa khởi tạo cho đối tượng phi
B. Đoạn code có lỗi ở dòng 18 vì lớp PhongBan không có phương thức khởi tạo mặc định.
40
C. Kết quả của đoạn code: Pham Ngoc 0602/2012
D. Kết quả của đoạn code: Pham Ngoc. 0602/2012 P01 Kehoach
Câu 300. Cho đoạn code sau. Chọn đáp án đúng:
class PhongBan {
string map = "001";
string tenp = "Ke hoach";
public string tostring() {
return map + "\t" + tenp;
}
}
class NhanVien {
string hoten = "Le Lan";
string nnv = "06/02/2012";
PhongBan pbk = new PhongBan();
string luong = "250.5F";
}
A. Lớp PhongBan và lớp NhanVien có quan hệ cha - con
B. Lớp PhongBan và lớp NhanVien có quan hệ bao gồp
C. Lớp PhongBan và lớp NhanVien không có quan hệ với nhau
D. Cả A và B đều đúng
Câu 301. Khi muốn ghi đè, thay thế code của một phương thức ở lớp cha thì dùng kỹ thuật nào?
A. Kỹ thuật overloading. B. Kỹ thuật phân cấp và kế thừa.
C. Kỹ thuật overriding. D. Kỹ thuật đệ quy

Câu 302. dòng số 17 lỗi do:


A. Dòng từ khóa super trong lớp cha. B. Lớp Hanghoa không có constructor mặc định.
C. Không truyền tham số vào super() . D. Tất cả đều đúng.
Câu 303. Cho đoạn code sau. Trong đoạn code có:
public class Nguoi {
private String ten;
private int namSinh;
public Nguoi() {
this.ten = "Hong";
41
this.namSinh = 2022;
}
}
A. Phương thức khởi tạo sao chép. B. Phương thức khởi tạo mặc định.
C. Phương thức khởi tạo có tham số. D. Tất cả đều đúng.
Câu 304. Phương thức khởi tạo (constructor) là phương thức:
A. Được thực thi ngay vào lúc khởi tạo đối tượng.
B. Được thực thi ngay vào lúc khởi hủy đối tượng.
C. Được thực thi ngay vào lúc khởi tạo hoặc khởi hủy đối tượng.
D. Tất cả đều sai.
Câu 305. Khai báo lớp nào dưới đây là đúng?
A. public class default {} B. protected inner class engine {}
C. final class outer {} D. Tất cả đều sai.
Câu 306. - Hãy cho biết kết quả khi thực thi đoạn chương trình sau:
class Box {
int width = 0;
int height = 0;
int length = 0;
}
class Demo {
public static void main(String args[]) {
Box obj1 = new Box();
Box obj2 = new Box();
obj1.height = 1;
obj1.length = 2;
obj1.width = 1;
obj2 = obj1;
System.out.println(obj2.height);
}
}
A. 0
B. 1
C. Chương trình không chạy được do lỗi biên dịch.
D. Chương trình không chạy được do không được phép gán obj2=obj1.
Câu 307. - Hãy cho biết kết quả khi thực thi của đoạn chương trình dưới đây:
class Test {
public void m1(int i, float f) {
System.out.println(i + "," + f);
}
public void m1(float f, int i) {
System.out.println(f + "," + i);
}
}
class Demo {
public static void main(String[] args) {
42
Test s = new Test();
float a = 1;
int b = 1;
s.m1(a, b);
}
}
A. 1.0, 1 B. 1, 1 C. 1.0, 1.0 D. 1, 1.0
Câu 308. - Phát biểu nào sau đây là sai:
A. Mỗi đối tượng chỉ thuộc một lớp.
B. Overloading là kỹ thuật cho phép xây dựng các phương thức trùng tên nhưng khác chữ ký (signature)
trong cùng một lớp.
C. Một lớp (class) chỉ có duy nhất một phương thức khởi tạo (constructors).
D. Phương thức khởi tạo có thể không có hoặc có nhiều tham số.
Câu 309. - Phương thức khởi tạo mặc định (default constructor) là phương thức:
A. Không có tham số. B. Có một tham số.
C. Có ít nhất hai tham số.
Câu 310. Cho biết kết quả khi thực thi của đoạn chương trình dưới đây?
public class A {
int b = 1;
public static void main(String[] args) {
System.out.println("b is " + b);
}
*}
A. Compilation error B. Runtime Error C. Runtime Exception D. b is 1
Câu 311. - Khai báo biến nào sau đây hợp lệ trong Java?
A. _SinhVien B. Sinh Vien C. Sinha Vien D. Sinh-Vien
Câu 312. - Khai báo biến nào sau đây hợp lệ trong Java?
A. _SinhVien B. Sinh Vien C. Sinha Vien D. Sinh-Vien
Câu 313. - Khai báo mảng nào sau đây là không hợp lệ trong Java?
A. int al = new int[][3]; B. int a2[][] = new int[2][3];
C. int a3[][] = new int[2][]; D. int a4 = new int[0.0.0];
Câu 314. - Phân tích và cho biết kết quả khi thực thi của đoạn chương trình dưới đây?
public class Test {
public static void main(String[] args) {
double radius;
final double PI = 3.15169;
double area = radius * radius * PI;
System.out.println("Area is " + area);
}
}
A. Chương trình có lỗi cú pháp bởi vì biến radius không được khởi tạo.
B. Chương trình có lỗi cú pháp bởi vì hằng số PI được định nghĩa bên trong một phương thức.
C. Chương trình biên dịch và chạy tốt.
D. Chương trình không có lỗi cú pháp nhưng có lỗi khi chạy bởi vì biến radius không được khởi tạo.
Câu 315. - Cho biết kết quả khi thực thi của đoạn chương trình dưới đây:

43
public class MyProgram {
public static void main(String[] args) {
int a = 5 + 5 * 2 + 2 * 2 + (2 * 3);
System.out.println(a);
}
}
A. 138 B. 264 C. 41 D. 25
Câu 316. - Phương thức là gì?
A. Dữ liệu trình bày các đặc điểm của một đối tượng B. Thuộc tính của đối tượng
C. Mô tả các hành vi của một đối tượng (lớp) D. Tất cả đều đúng
Câu 317. Đặc điểm của Lớp là gì?
A. Khuôn mẫu để tạo ra các dữ liệu B. Khuôn mẫu để tạo ra các biến
C. Khuôn mẫu để tạo ra các tính chất D. Tất cả đều sai
Câu 318. - Cho biết kết quả khi thực thi của đoạn chương trình dưới đây:
public class MyProgram {
public static void main(String[] args) {
int a = 5 + 5 / 2 + 2 / 2 + (2 * 3);
System.out.println(a);
}
}
A. 6 B. 14 C. 9 D. 10
Câu 319. Lập trình hướng đối tượng là:
a. Lập trình hướng đối tượng là phương pháp mới của lập trình máy tính, chia chương trình thành các hàm;
quan tâm đến chức năng của hệ thống.
b. Lập trình hướng đối tượng là phương pháp đặt trọng tâm vào các đối tượng, nó không cho phép dữ liệu đặt
một cách tự do trong hệ thống; dữ liệu được gói với các hàm thành phần.
c. Lập trình hướng đối tượng là phương pháp đặt trọng tâm vào các chức năng, cấu trúc chương trình được
xây dựng theo cách tiếp cận hướng chức năng.
d. Lập trình hướng đối tượng là phương pháp lập trình cơ bản gần với mã máy.
Câu 320. Đặc điểm cơ bản của lập trình hướng đối tượng thể hiện ở:
a. Tính đóng gói, tính kế thừa, tính đa hình, tính đặc biệt hóa.
b. Tính đóng gói, tính trừu tượng.
c. Tính chia nhỏ, tính kế thừa.
d. Tính đóng gói, tính kế thừa, tính đa hình, tính trừu tượng.
Câu 321. Hãy chọn câu trả lời đúng:
a. Ngôn ngữ lập trình C, C++, C# là ngôn ngữ lập trình cấu trúc.
b. Ngôn ngữ lập trình C#, C++ là ngôn ngữ lập trình hướng đối tượng.
c. Ngôn ngữ lập trình pascal, C là ngôn ngữ lập trình cấu trúc.
d. Ngôn ngữ lập trình C++, Java là ngôn ngữ lập trình cấu trúc.
Câu 322. Chọn câu sai:
a. C++ là ngôn ngữ lập trình cấu trúc.
b. Ngôn ngữ C++, Java là ngôn ngữ lập trình hướng đối tượng.
c. Ngôn ngữ Pascal là ngôn ngữ lập trình hướng đối tượng.
d. C, Pascal là ngôn ngữ lập trình cấu trúc.
Câu 323. Tính đóng gói là:
a. Cơ chế chia chương trình thành các hàm và thủ tục thực hiện các chức năng riêng rẽ.
44
b. Cơ chế cho thấy một hàm có thể có nhiều thể hiện khác nhau ở từng thời điểm.
c. Cơ chế ràng buộc dữ liệu và thao tác trên dữ liệu đó thành một thể thống nhất, tránh được các tác động bất
ngờ từ bên ngoài. Thể thống nhất này gọi là đối tượng.
d. Cơ chế không cho phép các thành phần khác truy cập đến bên trong nó.
Câu 324. Tính kế thừa:
a. Khả năng sử dụng lại các hàm đã xây dựng.
b. Khả năng xây dựng các lớp mới từ các lớp cũ, lớp mới được gọi là lớp dẫn xuất, lớp cũ được gọi là lớp cơ
sở.
c. Khả năng sử dụng lại các kiểu dữ liệu đã xây dựng.
d. Tất cả đều đúng.
Câu 325. Sự đóng gói:
a. Polymorphism. b. Abstraction. c. Encapsulation. d. Inheritance.
Câu 326. Sự trừu tượng:
a. Encapsulation. b. Polymorphism. c. Inheritance. d. Abstraction.
Câu 327. Sự kế thừa: a. Abstraction. b. Encapsulation. c. Polymorphism. *d. Inheritance.
Câu 328. Tính đa hình:
a. Inheritance. b. Abstraction. c. Polymorphism. d. Encapsulation.
Câu 329. Trong lớp kế thừa, lớp mới có thuật ngữ tiếng Anh là:
a. Inheritance Class. b. Object Class. c. Derived Class. d. Base Class.
Câu 330. Trong lớp kế thừa, lớp cha có thuật ngữ tiếng Anh là:
a. Base Class. b. Derived Class. c. Object Class. d. Inheritance Class.
Câu 331. Lớp đối tượng là:
a. Một thể hiện cụ thể cho các đối tượng.
b. Tập các phần tử cùng loại.
c. Tập các giá trị cùng loại.
d. Một thiết kế hay mẫu cho các đối tượng cùng kiểu.
Câu 332. Sau khi khai báo và xây dựng thành công lớp đối tượng Sinh viên, khi đó đối tượng Sinh viên còn
được gọi là:
a. Kiểu dữ liệu cơ bản. b. Lớp đối tượng cơ sở.
c. Kiểu dữ liệu trừu tượng. d. Đối tượng.
Câu 333. Muốn lập trình hướng đối tượng, bạn cần phải phân tích chương trình, bài toán thành các:
a. Các module.
b. Hàm, thủ tục.
c. Các thông điệp.
d. Các đối tượng từ đó xây dựng các lớp đối tượng tương ứng.
Câu 334. Trong các phương án sau, phương án mô tả tính đa hình là:
a. Lớp Điểm, Hình tròn cùng có hàm tạo, hàm hủy.
b. Lớp Hình vuông kế thừa lớp Hình chữ nhật.
c. Lớp hình tròn kế thừa lớp điểm.
d. Các lớp Điểm, hình tròn, Hình vuông, hình chữ nhật... đều có phương thức Vẽ.
Câu 335. Phương pháp lập trình tuần tự là:
a. Phương pháp lập trình với cách liệt kê các lệnh tiếp theo.
b. Phương pháp xây dựng chương trình ứng dụng theo quan điểm dựa trên các cấu trúc dữ liệu trừu tượng,
các thể hiện cụ thể của cấu trúc và quan hệ giữa chúng.
c. Phương pháp lập trình với việc cấu trúc hóa dữ liệu và cấu trúc hóa chương trình để tránh các lệnh nhảy.
d. Phương pháp lập trình được cấu trúc nghiêm ngặt với cấu trúc dạng module.
45
Câu 336. Khi khai báo và xây dựng thành công lớp đối tượng, để truy cập vào thành phần của lớp ta phải:
a. Chỉ có thể truy cập thông qua tên đối tượng của lớp.
b. Truy cập thông qua tên lớp hay tên đối tượng của lớp.
c. Chỉ có thể truy cập thông qua tên lớp.
d. Không thể truy cập vào được.
Câu 337. Trừu tượng hóa là:
a. Phương pháp quan tâm đến mọi chi tiết của đối tượng.
b. Phương pháp chỉ quan tâm đến những chi tiết cần thiết (chi tiết chính) và bỏ qua những chi tiết không cần
thiết.
c. Không có phương án chính xác.
d. Phương pháp thay thế những chi tiết chính bằng những chi tiết tương tự.
Câu 338. Đối tượng là:
a. Một thực thể cụ thể trong thế giới thực. b. Một lớp vật chất trong thế giới thực.
c. Một vật chất trong thế giới thực. d. Một mẫu hay một thiết kế cho mọi lớp đối tượng.
Câu 339. Khi khai báo và xây dựng một lớp ta cần phải các định rõ thành phần:
a. Vô số thành phần.
b. Thuộc tính (dữ liệu) và phương thức (hành vi) của lớp.
c. Dữ liệu và đối tượng của lớp.
d. Khái niệm và đối tượng của lớp.
Câu 340. Chọn câu đúng:
a. Tại chương trình chính chỉ có thể truy cập đến thành phần public của lớp.
b. Tại chương trình chính chỉ có thể truy cập đến thành phần private của lớp.
c. Tại chương trình chính chỉ có thể truy cập đến bất kì thành phần nào của lớp.
d. Tại chương trình chính không thể truy cập đến bất kì thành phần nào của lớp.
Câu 341. Khi khai báo lớp trong các ngôn ngữ lập trình hướng đối tượng phải sử dụng từ khóa:
a. File. b. Record. c. Object. d. class.
Câu 342. Thành phần private của lớp là thành phần:
a. Cho phép truy xuất từ bên ngoài lớp.
b. Không cho phép truy xuất từ bên ngoài của lớp nhưng cho phép lớp kế thừa truy xuất tới.
c. Không cho phép truy xuất từ bên ngoài của lớp chỉ có các phương thức bên trong lớp mới có thể truy xuất
được.
d. Cho phép truy xuất từ bên ngoài lớp và cho phép kế thừa.
Câu 343. Thành phần protected của lớp là thành phần:
a. Cho phép truy xuất từ bên ngoài lớp.
b. Không cho phép truy xuất từ bên ngoài của lớp nhưng cho phép lớp kế thừa truy xuất tới.
c. Không cho phép truy xuất từ bên ngoài của lớp chỉ có các phương thức bên trong lớp mới có thể truy xuất
được.
d. Cho phép truy xuất từ bên ngoài lớp và cho phép kế thừa.
Câu 344. Thành phần public của lớp là thành phần:
a. Cho phép truy xuất từ bên ngoài lớp.
b. Không cho phép truy xuất từ bên ngoài của lớp nhưng cho phép lớp kế thừa truy xuất tới.
c. Không cho phép truy xuất từ bên ngoài của lớp chỉ có các phương thức bên trong lớp mới có thể truy xuất
được.
d. Cho phép truy xuất từ bên trong và ngoài lớp và cho phép kế thừa.
Câu 345. Hàm thành viên (phương thức) của lớp:
a. Tất cả các hàm (hàm trả về giá trị và không trả về giá trị) được khai báo bên trong lớp.
46
b. Tất cả các hàm (hàm và thủ tục) được sử dụng trong lớp.
c. Tất cả những hàm (hàm và thủ tục) được khai báo và xây dựng bên trong các lớp mô tả các dữ liệu của đối
tượng.
d. Tất cả những hàm (hàm và thủ tục) trong chương trình có lớp.
Câu 346. Trong một chương trình có thể xây dựng tối đa bao nhiêu lớp:
a. 1 lớp duy nhất. b. 3 lớp.
c. 10 lớp. d. Vô số tùy theo bộ nhớ.
Câu 347. Cần in danh sách thí sinh dự thi theo phòng gồm các thông tin: SBD,
Họ và tên, Ngày sinh , Giới tính , Phòng thi, Giờ thi. Người ta xây dựng hai
lớp đối tượng là lớp đối tượng Thí sinh và , lớp đối tượng Danh sách thí sinh
theo phòng . Thuộc tính của lớp thí sinh có thể là :
a. Tất cả các phương án gộp lại
b. SBD,Họ và tên, Ngày sinh , Giới tính, phòng thi, giờ thi
c. Số thí sinh, mảng các thí sinh
d. Mảng SBD, mảng Họ và tên , mảng Ngày sinh , Mảng giới tính , Mảng
Phòng thi , Mảng giờ thi
Câu 348. Xây dựng lớp Hinh_hoc là lớp cơ sở cho các lớp Hinh_Vuong,
Hinh_tron, Hinh_cn, Hinh_tamgiac. Nhận thấy các lớp này đều có phương
thức tính D_Tich( diẹn tích ). Tuy nhiên cách tính diện tích của các phương
thức D_Tich ứng với các đối tượng của các lớp dẫn xuất là khác nhau . Điều
này thể hiện tính :
a. Đóng gói b. Trừu tượng c. Đa hình d. Ảo của phương thức
Câu 349. Câu lệnh nào dùng để khai báo thủ tục khởi tạo cho class điem
a. Tất cả câu trên đều sai b. public diem (){} c. public diem{} d. public string diem(){}
Câu 350. Tính kế thừa là
A. Khả năng sử dụng lại các hàm đã xây dựng.
B. Khả năng xây dựng các lớp mới từ các lớp cũ, lớp mới được gọi là lớp dẫn
xuất, lớp cũ được gọi là lớp cơ sở.
C. Khả năng sử dụng lại các kiểu dữ liệu đã xây dựng.
D. Khả năng sử dụng lại các hàm đã xây dựng.
Câu 351. JRE (Java Runtime Environment) là gì?
A. Là giai đoạn biên dịch của Java
B. Là giai đoạn thông biên dịch của Java
C. Là môi trường cung cấp các thư viện (Class Library) cần thiết để thực thi một chương trình Java
D. Tất cả đều sai
Câu 352. Java khuyến khích lập trình theo?
A. hướng cấu trúc B. hướng đối tượng C. Hướng thủ tục D. Tất cả để đúng
Câu 353. Ngôn ngữ nào sau đây hỗ trợ OOP (lập trình hướng đối tượng)?
A. Basic, C++, Pascal B. C, C#, C++ C. C#, C++, Java D. Tất cả đều sai
Câu 354. Biến đối tượng là gì?
A. Tham chiếu tới int, long, float B. Tham chiếu tới boolean
C. Tham chiếu tới một phương thức cụ thể của lớp D. Tham chiếu tới một thực thể của lớp (class)
Câu 355. Phương thức là gì?
A. Dữ liệu trình bày các đặc điểm của một đối tượng B. Thuộc tính của đối tượng
C. Mô tả các hành vi của một đối tượng (lớp) D. Tất cả đều đúng

47
Câu 356. Chọn một phát biểu đúng về lớp (class):
A. class = các thuộc tính
B. class = các hàm thao tác lên dữ liệu
C. class = các thuộc tính + các phương thức thao tác lên dữ liệu
D. Tất cả đều sai
Câu 357. Chọn một phát biểu đúng:
A. Có thể xây dựng một ứng dụng hướng thủ tục trong Java
B. Không thể xây dựng một ứng dụng hướng thủ tục trong Java
C. Có thể xây dựng một ứng dụng hướng thủ tục hoặc hướng đối tượng trong Java
D. Chỉ có thể xây dựng ứng dụng hướng thủ tục
Câu 358. Tính kế thừa là gì?
A. Cho phép một lớp có thể định nghĩa lại các đặc tính mà lớp khác đã có, thông qua tính kế thừa
B. Cho phép một lớp có thể có sẵn các đặc tính mà lớp khác đã có, cũng như mở rộng các đặc tính sẵn có mà
không cần phải định nghĩa lại toàn bộ
C. Cho phép một lớp thay thế những chi tiết chính bằng chi tiết tương tự
D. Tất cả đều đúng
Câu 359. Kiểu dữ liệu nào trong Java chứa giá trị bao gồm cả chữ và chữ số?
A. int B. byte C. char D. String
Câu 360. Trong Java, phát biểu nào dưới đây đúng?
A. Thực thi các ứng dụng Java bắt đầu tại phương thức main
B. Các từ khóa trong Java không thể sử dụng để đặt tên biến
C. Một định danh không thể bắt đầu bằng một ký tự số và chứa các khoảng trắng
D. Tất cả đều đúng
Câu 361. Đặc điểm của các đối tượng thuộc cùng chung một lớp là gì?
A. Khác nhau những định nghĩa về các phương thức và dữ liệu.
B. Có chung những định nghĩa về các phương thức và dữ liệu.
C. Có chung hoặc khác nhau những định nghĩa về các phương thức và dữ liệu
D. Tất cả đều đúng
Câu 362. Lệnh nào dùng để thoát khỏi vòng lặp?
A. continue B. goto C. break D. exit
Câu 363. Thực thể (instance) của đối tượng là gì?
A. Một đối tượng gồm các phương thức và dữ liệu.
B. Một lớp gồm các phương thức và dữ liệu.
C. Thông tin về một đối tượng có trong bộ nhớ của chương trình khi chương trình thực thi.
D. Tất cả đều sai
Câu 364. Cần phải xác định rõ những thành phần nào khi định nghĩa và xây dựng một lớp?
A. Dữ liệu và đối tượng của lớp
B. Vô số thành phần
C. Khái niệm và đối tượng của lớp
D. Thuộc tính (dữ liệu) và phương thức (hành vi) của lớp
Câu 365. Một đối tượng x thuộc lớp A trong chương trình OOP có thể?
A. Thực hiện các phương thức bất kỳ
B. Thực hiện các phương thức public được định nghĩa trong lớp A
C. Thực hiện các phương thức được định nghĩa ngoài lớp A
D. Tất cả đều đúng

48
Câu 366. Đặc điểm của OOP (lập trình hướng đối tượng) là gì?
A. Diễn đạt thiếu tự nhiên B. Chương trình là sự hoạt động của đối tượng
C. Khó mô tả những quan hệ phức tạp D. Bảo mật kém
Câu 367. Ngôn ngữ nào hỗ trợ cả lập trình hướng thủ tục lẫn lập trình hướng đối tượng?
A. C++, C#, Java B. C#, Java C. C++ D. Tất cả đều sai
Câu 368. Đối tượng (object) là gì?
A. Sự đóng gói dữ liệu và phương thức B. Dữ liệu mô tả đối tượng
C. Phương thức của đối tượng D. Lớp (class)
Câu 369. Đặc điểm của phương thức private là gì?
A. Giúp đối tượng giao tiếp với môi trường bên ngoài
B. Có thể giao tiếp bên trong lẫn bên ngoài đối tượng
C. Chỉ hiện hữu và xử lý dữ liệu bên trong của đối tượng
D. Tất cả đều đúng
Câu 370. Tính đóng gói là gì?
A. Cơ chế chia chương trình thành các hàm và thủ tục thực hiện các chức năng riêng rẽ
B. Cơ chế ràng buộc dữ liệu và thao tác trên dữ liệu đó thành một thể thống nhất, tránh được các tác động bất
ngờ từ bên ngoài.
C. Cơ chế cho thấy một hàm có thể có nhiều thể hiện khác nhau ở từng thời điểm
D. Cơ chế không cho phép các thành phần khác truy cập đến bên trong nó
Câu 371. Java có những đặc điểm nào sau đây?
A. Hướng đối tượng. B. Độc lập với platform C. Bảo mật D. Tất cả đều đúng
Câu 372. Vai trò của một lớp (class) có thể là gì?
A. Lớp cha của một lớp khác B. Lớp con của một lớp khác
C. Lớp độc lập với một lớp khác D. Tất cả đều đúng
Câu 373. JVM tạo ra 1 hệ thực thi phụ thuộc platform bao gồm các tác vụ nào?
A. Nạp mã chương trình đã biên dịch thành bytecode từ tập tin .class.
B. Quản lý bộ nhớ
C. Thu hồi bộ nhớ (Garbage Collector)
D. Tất cả đều đúng
Câu 374. Yêu cầu cần thiết nào để lớp MyProgram biên dịch và thực thi được?
A. MyProgram.java phải bao gồm một khai báo package
B. MyProgram phải có một phương thức main() được hiện thực phù hợp
C. MyProgram phải import java.lang
D. MyProgram phải để public
Câu 375. Đặc tính của ngôn ngữ lập trình Java là gì?
A. Đơn thừa kế B. Đa thừa kế
C. Đơn thừa kế và đa thừa kế D. Tất cả đều sai
Câu 376. Tính trừu tượng là gì?
A. Cho phép lập trình hướng đối tượng có khả năng tập trung vào những cái cốt lõi, cần thiết nhất của đối
tượng.
B. Cho phép lập trình hướng đối tượng quan tâm hết mọi chi tiết của đối tượng
C. Cho phép lập trình hướng đối tượng thay thế những chi tiết chính bằng chi tiết tương tự
D. Tất cả đều sai
Câu 377. Kiểu dữ liệu nào dưới đây không phải là kiểu dữ liệu nguyên thủy trong ngôn ngữ lập trình Java?
A. class B. byte C. short D. long

49
Câu 378. Đặc điểm của Lớp là gì?
A. Khuôn mẫu để tạo ra các dữ liệu B. Khuôn mẫu để tạo ra các biến
C. Khuôn mẫu để tạo ra các tính chất D. Tất cả đều sai
Câu 379. Hãy chọn câu đúng để mô tả về biến
A. Biến local (biến cục bộ) là biến được định nghĩa bên ngoài các phương thức, constructor, hoặc trong các
block
B. Biến instance (biến thực thể) là biến được khai báo/định nghĩa trong một lớp (class), bên ngoài các
phương thức, constructor và các block
C. Biến instance (biến toàn cục) là biến được định nghĩa bên ngoài các lớp
D. Tất cả đều sai
Câu 380. Đối tượng A muốn đối tượng B thực hiện một yêu cầu, thì:
A. Đối tượng A gửi một thông điệp/thông báo (message) cho đối tượng A
B. Đối tượng A gửi một thông điệp/thông báo (message) cho đối tượng B
C. Đối tượng B gửi một thông điệp/thông báo (message) cho đối tượng A
D. Tất cả đều đúng
Câu 381. Mã nguồn (Source code) của chương trình Java có tên mở rộng là gì?
A. .class B. .java C. .com D. Tất cả đều đúng
Câu 382. Class là gì?
A. Dữ liệu mô tả cho một khái niệm.
B. Một đoạn code trong chương trình.
C. Khuôn mẫu để tạo ra một tập các đối tượng có cùng thuộc tính và hành vi.
D. Tất cả đều sai.
Câu 383. Phương thức toString() được định nghĩa trong lớp nào?
A. java.lang.String B. java.lang.Object C. java.util.Scanner D. java.lang.util
Câu 384. Đặc điểm của phương thức public là gì?
A. Giúp đối tượng giao tiếp với môi trường bên ngoài
B. Có thể giao tiếp bên trong lẫn bên ngoài đối tượng
C. Chỉ xử lý dữ liệu bên trong của đối tượng
D. Tất cả đều sai
Câu 385. Thuộc tính của lớp là gì?
A. Hành vi của đối tượng B. Những chức năng của đối tượng
C. Thành phần dữ liệu của đối tượng thuộc lớp đó D. Liên quan tới những thứ mà đối tượng có thể làm
Câu 386. Java có đặc điểm nào sau đây?
A. Hướng đối tượng. B. Độc lập với platform C. Bảo mật D. Tất cả đều đúng
Câu 387. Vai trò của một lớp (class) có thể là gì?
A. Lớp cha của một lớp khác B. Lớp con của một lớp khác
C. Lớp độc lập với một lớp khác D. Tất cả đều đúng
Câu 388. JVM tạo ra 1 hệ thực thi phụ thuộc platform bao gồm các tác vụ nào?
A. Nạp mã chương trình đã biên dịch thành bytecode từ tập tin .class.
B. Quản lý bộ nhớ
C. Thu hồi bộ nhớ (Garbage Collector)
D. Tất cả đều đúng
Câu 389. Yêu cầu cần thiết nào để lớp MyProgram biên dịch và thực thi được?
A. MyProgram.java phải bao gồm một khai báo package
B. MyProgram phải có một phương thức main() được hiện thực phù hợp

50
C. MyProgram phải import java.lang
D. MyProgram phải được khai báo public
Câu 390. Tính trừu tượng là gì?
A. Cho phép lập trình hướng đối tượng có khả năng tập trung vào những cái cốt lõi, cần thiết nhất của đối
tượng.
B. Cho phép lập trình hướng đối tượng quan tâm hết mọi chi tiết của đối tượng
C. Cho phép lập trình hướng đối tượng thay thế những chi tiết chính bằng chi tiết tương tự
D. Tất cả đều sai
Câu 391. Kiểu dữ liệu nào dưới đây không phải là kiểu dữ liệu nguyên thủy trong ngôn ngữ lập trình Java?
A. byte B. short C. long D. class
Câu 392. Đặc điểm của Lớp là gì?
A. Khuôn mẫu để tạo ra các dữ liệu B. Khuôn mẫu để tạo ra các biến
C. Khuôn mẫu để tạo ra các tính chất D. Tất cả đều sai
Câu 393. Hãy chọn câu đúng để mô tả về biến
A. Biến local (biến cục bộ) là biến được định nghĩa bên ngoài các phương thức, constructor, hoặc trong các
block
B. Biến instance (biến thực thể) là biến được khai báo/định nghĩa trong một lớp (class), bên ngoài các
phương thức, constructor và các block
C. Biến instance (biến toàn cục) là biến được định nghĩa bên ngoài các lớp
D. Tất cả đều sai
Câu 394. Đối tượng A muốn đối tượng B thực hiện một yêu cầu, thì:
A. Đối tượng A gửi một thông điệp/thông báo (message) cho đối tượng A
B. Đối tượng A gửi một thông điệp/thông báo (message) cho đối tượng B
C. Đối tượng B gửi một thông điệp/thông báo (message) cho đối tượng A
D. Tất cả đều đúng
----HẾT---

51

You might also like