Câu 1: Khi lập trình, bạn thường khai báo các biến (variables). Tên biến (định danh) nào
sau đây không hợp lệ?
Đ: get-in
T1: A92
T2: _ok
T3: Ho_ten
K: Dễ
M: 20
Câu 2: Để khai báo một hằng (constant) trong Java, bạn sử dụng từ khóa nào?
Đ: final
T1: const
T2: define
T3: constant
K: Dễ
M: 20
Câu 3: Khi tạo một lớp, thành phần nào không thể thiếu trong lớp?
Đ: Không thành phần nào không thể thiếu
T1: Data
T2: Constructors
T3: Methods
K: Dễ
M: 20
Câu 4: Khi tạo một lớp, phát biểu nào sau đây đúng về constructor?
Đ: Bạn thể không cần tạo bất kỳ constructor nào
T1: Bạn phải tạo 1 constructor
T2: Bạn phi tạo ít nhất 2 constructors mới đáp ứng nhu cầu
T3: Không thể không tạo constructor
K: Dễ
M: 20
Câu 5: Khi xây dựng xong một lớp, ta th khai báo các objects của lớp. Số lượng objects
tạo ra từ một lớp bao nhiêu?
Đ: Rất nhiều
T1: Từ 0 đến 20 objects
T2: Từ 20 đến 50 objects
T3: Từ 50 đến 100 objects
K: Dễ
M: 20
Câu 6: Giả sử bạn đã tạo một lớp tên ABC, lớp này không constructor bạn không
cho kế thừa bất kỳ lớp nào. Câu lệnh nào sau đây khai báo tạo một đối tượng của lớp
ABC?
Đ: ABC abc = new ABC();
T1: ABC ABC = new ABC();
T2: ABC abc new ABC;
T3: ABC abc;
K: Khó
M: 70
Câu 7: Hãy chọn câu thích hợp nhất trong các câu sau về constructor?
Đ: Constructor không kiểu trả về tên trùng với tên lớp
T1: Tên của constructor trùng với tên lớp
T2: Constructor không có kiểu trả v
T3: Constructor cũng tương tự như method
K: Khó
M: 70
Câu 8: Cho lớp được tạo n sau:
public class JavaExample {
int x;
public java () {
x = doX();
}
int doX() {
return x+=10;
}
public static void main(String[] args) {
java jv = new java();
System.out.println("X= " + jv.doX());
}
}
Cho biết kết quả biên dịch chạy chương trình
Đ: Biên dịch chạy ra kết quả: X=20
T1: Biên dịch bị li
T2: Biên dịch không li, chạy li
T3: Biên dịch chạy ra kết quả: X=10
K: Rất khó
M: 100
Câu 9: Phát biểu nào sau đây đúng về tính chất Overloading?
Đ: Trong 1 lớp các methods giống tên nhưng khác nhau về danh sách tham số
T1: Trong 2 lớp 2 methods ging tên nhưng khác nhau về danh sách tham số, mi method
nằm trong 1 lớp
T2: Trong 2 lớp 2 methods ging tên ging cả danh sách tham số
T3: Là trường hợp lớp con có 1 method ging 1 method của lớp cha
K: Khó
M: 70
Câu 10: Giả sử bạn tạo 1 lớp tên FastClass trong 1 file source code, câu lệnh khai báo lớp
nào sau đây sai?
Đ: public synchronized class FastClass {}
T1: protected class FastClass {}
T2: public abstract class FastClass {}
T3: class FastClass extends Object
K: Rất khó
M: 100
Câu 11: Cho khai báo lớp như sau:
public class Widget {
static final int maxX = 40;
public Widget(int mx) {
maxX = mx;
}
public static void main(String[] args) {}
}
Khi biên dịch lỗi hay không? Nếu lỗi thì lỗi xảy ra dòng lệnh nào?
Đ: Biên dịch bị lỗi. Lỗi xảy ra dòng 4
T1: Biên dịch không bị li
T2: Biên dịch bị li. Lỗi xảy ra dòng 2
T3: Biên dịch bị li. Lỗi xảy ra dòng 6
K: Rất khó
M: 100
Câu 12: Đóng gói dữ liệu của một lớp kỹ thuật:
Đ: Không cho phép bên ngoài truy cập trực tiếp vào dữ liệu
T1: thể cho phép bên ngoài truy cập trực tiếp vào dữ liu
T2: Chỉ cho phép bên ngoài truy cập trực tiếp vào dữ liệu khi được phép
T3: Làm tăng mức độ chuyên nghiệp của programmers
K: Trung nh
M: 50
Câu 13: Phát biểu nào sau đây về kỹ thuật đóng gói dữ liệu đúng?
Đ: Cho phép truy cập gián tiếp vào dữ liệu thông qua các hàm đặt lệnh kiểm st
T1: Chỉ cho phép truy giản tiếp vào dữ liệu thông qua các hàm read-only
T2: Chỉ cho phép truy cập gin tiếp vào dữ liệu từ bên trong các lớp con của
T3: Chỉ cho phép truy gián tiếp vào dữ liệu tn trong lớp
K: Trung nh
M: 40
Câu 14: Method nào sau đây khai báo hợp lý?
Đ: public void setRange(int range) {}
T1: public void getArrow() {}
T2: public void setBow() {}
T3: public object setBow() {}
K: Rất khó
M: 100
Câu 15: Một biến của một lớp giá tr của được sử dụng cho tất cả các objects
(instance) của lớp đó. Biến đó gọi biến gì?
Đ: static
T1: public
T2: local
T3: instance
K: Khó
M: 70
Câu 16: Cho 1 lớp 1 method được định nghĩa như sau:
public class Calculations {
public int findAverage(int sum) {return sum; }
}
Bạn cần thêm vào lớp trên 1 method overloading với method đã có. Bạn chọn method
nào sau đây?
Đ: public long findAverage(int sum, int divisor) {}
T1: public long findAverage(int sum) {}
T2: public int average(int sum) {}
T3: private void findAverage(int sum) {}
K: Rất khó
M: 100
Câu 17: Phát biểu nào sau đây đúng về sự kế thừa?
Đ: Kế thừa việc tạo lớp con dựa trên lớp cha, sử dụng lại các thành phần sẵn của lớp
cha.
T1: Kế thừa là k thuật của tất cả nn ngữ lập trình
T2: Kế thừa lớp con chn lựa sử dụng lại mt phần của lớp cha
T3: Kế thừa lớp con ginguyên những gì đã có từ lớp cha
K: Trung nh
M: 50
Câu 18: Mục đích cụ thể của việc kế thừa gì? Hãy chọn câu đúng.
Đ: Sử dụng lại nguồn
T1: Tăng kh năng chuyên nghiệp
T2: Theo xu hướng công nghệ
T3: Tối ưu hơn chương trình
K: Trung bình
M: 50
Câu 19: Trong kế thừa, (các) thành phần nào sau đây không thể kế thừa từ lớp cha?
Đ: Constructors
T1: Data
T2: Method
T3: Hàm
K: Trung nh
M: 50
Câu 20: Trong ngôn ngữ Java sử dụng loại kiến trúc kế thừa nào?
Đ: Đơn kế thừa
T1: Đa kế thừa
T2: Không ràng buộc gì về kế thừa
T3: Phải cài thêmi phần mềm về kế thừa t Java mi thể kh năng kế thừa
K: Dễ
M: 20
Câu 21: Trong Java, khi tạo lớp con kế thừa lớp cha, từ khóa nào cần được sử dụng?
Đ: extends
T1: implements
T2: Inheritant
K: Dễ
M: 20
Câu 22: Để gọi constructor của lp cha ta sử dụng lệnh gì?
Đ: super(...)
T1: Gi đúng tên constructor của lớp cha
T2: Ta không cần gọi, constructor sẽ tự động được gọi
T3: parent(...)
K: Trung nh
M: 50
Câu 23: Giả sử ta dùng lệnh super(...) để gọi constructor của lớp cha; Khi đó lệnh super(...)
cần đặt đâu trong constructor của lớp con thích hợp?
Đ: Ngay dòng đầu tiên
T1: Đặt bất kỳ đâu nếu cần thiết
T2: Dùng cấu trúc if (...) để gọi
T3: Đặt ở dòng cuối cùng
K: Trung nh
M: 50
Câu 24: Cho lớp B kế thừa lớp A. Trong lớp A 1 constructor không tham số. Nếu trong
constructor của lớp con không chứa lời gọi tường minh đến constructor của lớp cha thì khi
biên dịch, điều sẽ xảy ra?
Đ: Compiler sẽ tự động thêm vào constructor của lớp con lệnh gọi constructor của lớp cha
super()
T1: o li biên dịch
T2: Không báo li biên dịch nhưng chương trình không chạy
T3: Kết quả không đoán trước được
K: Khó
M: 80
Câu 25: Cho kiến trúc kế thừa với code như sau:
class Parent {
public Parent() {
System.out.println("Hello Dad!");
}
}
class Child extends Parent {
String name;
public Child(String childName) {
super(); // Call to the Parent constructor
System.out.println(childName);
}
}
public class TestDefaultConstructor {
public static void main(String[] args) {
Child child = new Child("Hello Son!");
}
}
Output của chương trình trên gì?
Đ: Hello Dad!
Hello Son!
T1: Hello Son!
T2: Hello Son!
Hello Dad!
T3: Hello Dad! Hello Son!
K: Rất khó
M: 90
Câu 26: Cho kiến trúc kế thừa với code như sau:
class Parent {
public Parent(String str) {
System.out.println("Hello Dad!");
}
}
class Child extends Parent {
String name;
public Child(String childName) {
System.out.println(childName);
}
}
public class TestDefaultConstructor {
public static void main(String[] args) {
Child child = new Child("Hello Son!");
}
}
Output của chương trình trên gì?
Đ: Lỗi biên dịch
T1: Hello Dad!
Hello Son!
T2: Hello Son!
T3: Hello Dad! Hello Son!
K: Rất khó
M: 100
Câu 27: Cho kiến trúc kế thừa với code như sau:
class Parent {
public Parent(String str) {
System.out.println(str);
}
}
class Child extends Parent {
String name;
public Child(String childName) {
super("Hello Dad!");
System.out.println(childName);
}
}
public class TestKeThua {
public static void main(String[] args) {
Child child = new Child("Hello Son!");
}
}
Output của chương trình trên gì?
Đ: Hello Dad!
Hello Son!
T1: Hello Dad!
T2: Hello Dad!
T3: Hello Son!
K: Rất khó
M: 100
Câu 28: Khai báo dữ liệu dạng nào của lớp cha không thể cho lp con kế thừa?
Đ: Khai báo private
T1: Khai báo public
T2: Khai báo protected
T3: Không chỉ định access modifier
K: Trung bình
M: 40
Câu 29: Khai báo method dạng nào của lớp cha không thể cho lớp con kế thừa?
Đ: Khai báo private
T1: Khai báo protected
T2: Khai báo public
T3: Không chỉ định access modifier
K: Trung bình
M: 40
Câu 30: Từ khóa nào dùng để khai báo lớp trừu tượng?
Đ: abstract
T1: Abstract
T2: Extends
T3: Implements
K: Dễ
M: 30
Câu 31: Phát biểu nào sau đây đúng về lớp trừu tượng?
Đ: Lớp trừu tượng thể chứa các thành phần không trừu ợng
T1: Lớp trừu tượng chỉ chứa dữ liệu trừu tượng
T2: Lớp trừu tượng chỉ chứa method trừu tượng
T3: Lớp trừu tượng không thể chứa các thành phần không trừu tượng
K: Trung bình
M: 50
Câu 32: Lớp con của lớp trừu tượng nếu muốn lớp cụ thể thì phải làm gì?
Đ: Phải định nghĩa lại tất cả abstract methods của lớp cha
T1: Phải định nghĩa lại tất cả abstract data của lớp cha
T2: Không bắt buộc phi định nghĩa lại tất cả abstract methods của lớp cha
T3: Chỉ cần định nghĩa lại 1 abstract methods của lớp cha
K: Trung nh
M: 60
Câu 33: Phát biểu nào sai về abstract method?
Đ: Abstract method thể nằm trong một lớp cụ thể
T1: Abstract method phương thức dấu “;” cuối dòng khai báo phương thức
T2: Abstract method là phương thức được khai báo dùng từ khóa abstract
T3: Abstract method phương thức không thân (body)
K: Trung bình
M: 50
Câu 34: Overriding method ?
Đ: trường hợp lớp con thay đổi code trong phương thức kế thừa từ lớp cha
T1: trường hợp 2 methods khai báo giống nhau nhưng code khác nhau
T2: Là trường hợp lớp con kế thừa method của lớp cha
T3: trường hợp bổ sung thân method cho abstract method
K: Trung bình
M: 50
Câu 35: Final class loại class gì?
Đ: loại class không cho phép các classes khác kế thừa
T1: loi lớp hằng (không thay đổi), tương tự như khai báo biến
T2: Là loi lớp mà ta không thể thay đổi dữ liệu của nó
T3: loi lớp không thân lớp, chỉ dòng khai báo lớp
K: Trung bình
M: 50
Câu 36: Khi xây dựng lớp A 2 dữ liệu số nguyên num01 num02. Nếu không cho các
lớp con của lớp A kế thừa dữ liệu num02 nhưng cho phép kế thừa dữ liệu num01, ta phải
làm gì?
Đ: Khai báo dữ liệu num02 private, dữ liệu num01 không khai báo private
T1: Khai báo lớp A là final
T2: Khai báo dữ liệu num01 num02 private
T3: Khai báo dữ liệu num01 là public
K: Trung nh
M: 50
Câu 37: Cho code như sau:
class Cinema {
private String name;
public Cinema(String name) {this.name = name;}
}
public class Movie extends Cinema {
public Movie(String movie) { }
public static void main(String[] showing) {
System.out.print(new Movie("Another Trilogy").name);
}
}
Hãy cho biết code trên lỗi hay không? Nếu thì lỗi các dòng nào?
Đ: 2 lỗi, dòng 6 dòng 8.
T1: Không có lỗi
T2: 1 lỗi, ởng 6
T3: 3 li, các ng: 2, 3, 6
K: Rất khó
M: 100
Câu 38: Cho code như sau:
class A {
private int num;
public A(int n) {
num = n;
}
}
public class B extends A {
public B() {}
public static void main(String[] args) {
System.out.print("Is it OK?");
}
}
Code trên lỗi hay không? Nếu lỗi thì lỗi dòng nào?
Đ: lỗi. Lỗi dòng 6.
T1: Không lỗi.
T2: lỗi. Lỗi dòng 2.
T3: lỗi. Lỗi dòng 8.
K: Rất khó.
M: 100.
Câu 39: Cho chương trình sau:
class Song {
public void playMusic() {
System.out.print("Play!");
}
private int playMusic() {
System.out.print("Music!");
}
public static void main(String[] tracks) {
new Song().playMusic();
}
}
Output của chương trình trên khi biên dịch chạy ?
Đ: Lỗi biên dịch.
T1: Play!
T2: Music!
T3: Play! Music!
K: Rất khó.
M: 100.
Câu 40: Cho code khai báo lớp như sau:
class Song {
public playMusic() {
return this;
}
}
Dấu gạch dưới trong khai báo hàm playMusic chỗ của kiểu trả về của hàm. Theo bạn,
chỗ gạch dưới này bạn nên điền vào nội dung dưới đây để cho hàm playMusic hợp lệ?
Đ: Song
T1: Music
T2: void
T3: String
K: Rất khó.
M: 100.

Preview text:

Câu 1: Khi lập trình, bạn thường khai báo các biến (variables). Tên biến (định danh) nào
sau đây không hợp lệ?
Đ: get-in T1: A92 T2: _ok T3: Ho_ten K: Dễ M: 20
Câu 2: Để khai báo một hằng (constant) trong Java, bạn sử dụng từ khóa nào?
Đ: final T1: const T2: define T3: constant K: Dễ M: 20
Câu 3: Khi tạo một lớp, thành phần nào không thể thiếu trong lớp?
Đ: Không thành phần nào không thể thiếu T1: Data T2: Constructors T3: Methods K: Dễ M: 20
Câu 4: Khi tạo một lớp, phát biểu nào sau đây đúng về constructor?
Đ: Bạn thể không cần tạo bất kỳ constructor nào
T1: Bạn phải tạo 1 constructor
T2: Bạn phải tạo ít nhất 2 constructors mới đáp ứng nhu cầu
T3: Không thể không tạo constructor K: Dễ M: 20
Câu 5: Khi xây dựng xong một lớp, ta thể khai báo các objects của lớp. Số lượng objects
tạo ra từ một lớp bao nhiêu?
Đ: Rất nhiều T1: Từ 0 đến 20 objects T2: Từ 20 đến 50 objects
T3: Từ 50 đến 100 objects K: Dễ M: 20
Câu 6: Giả sử bạn đã tạo một lớp tên ABC, lớp này không constructor bạn không
cho kế thừa bất kỳ lớp nào. Câu lệnh nào sau đây khai báo tạo một đối tượng của lớp ABC?
Đ: ABC abc = new ABC(); T1: ABC ABC = new ABC(); T2: ABC abc new ABC; T3: ABC abc; K: Khó M: 70
Câu 7: Hãy chọn câu thích hợp nhất trong các câu sau về constructor?
Đ: Constructor không kiểu trả về tên trùng với tên lớp
T1: Tên của constructor trùng với tên lớp
T2: Constructor không có kiểu trả về
T3: Constructor cũng tương tự như method K: Khó M: 70
Câu 8: Cho lớp được tạo như sau:
public class JavaExample { int x;
public java () {
x = doX(); }
int doX() { return x+=10; }
public static void main(String[] args) {
java jv = new java();
System.out.println("X= " + jv.doX()); } }
Cho biết kết quả biên dịch chạy chương trình
Đ: Biên dịch chạy ra kết quả: X=20 T1: Biên dịch bị lỗi
T2: Biên dịch không lỗi, chạy có lỗi
T3: Biên dịch và chạy ra kết quả: X=10 K: Rất khó M: 100
Câu 9: Phát biểu nào sau đây đúng về tính chất Overloading?
Đ: Trong 1 lớp các methods giống tên nhưng khác nhau về danh sách tham số
T1: Trong 2 lớp có 2 methods giống tên nhưng khác nhau về danh sách tham số, mỗi method nằm trong 1 lớp
T2: Trong 2 lớp có 2 methods giống tên và giống cả danh sách tham số
T3: Là trường hợp lớp con có 1 method giống 1 method của lớp cha K: Khó M: 70
Câu 10: Giả sử bạn tạo 1 lớp tên FastClass trong 1 file source code, câu lệnh khai báo lớp
nào sau đây sai?
Đ: public synchronized class FastClass {}
T1: protected class FastClass {}
T2: public abstract class FastClass {}
T3: class FastClass extends Object K: Rất khó M: 100
Câu 11: Cho khai báo lớp như sau:
public class Widget {
static final int maxX = 40;
public Widget(int mx) {
maxX = mx; }
public
static void main(String[] args) {} }
Khi biên dịch lỗi hay không? Nếu lỗi thì lỗi xảy ra dòng lệnh nào?
Đ: Biên dịch bị lỗi. Lỗi xảy ra dòng 4
T1: Biên dịch không bị lỗi
T2: Biên dịch bị lỗi. Lỗi xảy ra ở dòng 2
T3: Biên dịch bị lỗi. Lỗi xảy ra ở dòng 6 K: Rất khó M: 100
Câu 12: Đóng gói dữ liệu của một lớp kỹ thuật:
Đ: Không cho phép bên ngoài truy cập trực tiếp vào dữ liệu
T1: Có thể cho phép bên ngoài truy cập trực tiếp vào dữ liệu
T2: Chỉ cho phép bên ngoài truy cập trực tiếp vào dữ liệu khi được phép
T3: Làm tăng mức độ chuyên nghiệp của programmers K: Trung bình M: 50
Câu 13: Phát biểu nào sau đây về kỹ thuật đóng gói dữ liệu đúng?
Đ: Cho phép truy cập gián tiếp vào dữ liệu thông qua các hàm đặt lệnh kiểm soát
T1: Chỉ cho phép truy giản tiếp vào dữ liệu thông qua các hàm read-only
T2: Chỉ cho phép truy cập giản tiếp vào dữ liệu từ bên trong các lớp con của nó
T3: Chỉ cho phép truy gián tiếp vào dữ liệu từ bên trong lớp K: Trung bình M: 40
Câu 14: Method nào sau đây khai báo hợp lý?
Đ: public void setRange(int range) {} T1: public void getArrow() {} T2: public void setBow() {} T3: public object setBow() {} K: Rất khó M: 100
Câu 15: Một biến của một lớp giá trị của được sử dụng cho tất cả các objects
(instance) của lớp đó. Biến đó gọi biến gì? Đ: static T1: public T2: local T3: instance K: Khó M: 70
Câu 16: Cho 1 lớp 1 method được định nghĩa như sau:
public class Calculations {
public int findAverage(int sum) {return sum; } }
Bạn cần thêm vào lớp trên 1 method overloading với method đã có. Bạn chọn method
nào sau đây?
Đ: public long findAverage(int sum, int divisor) {}
T1: public long findAverage(int sum) {}
T2: public int average(int sum) {}
T3: private void findAverage(int sum) {} K: Rất khó M: 100
Câu 17: Phát biểu nào sau đây đúng về sự kế thừa?
Đ: Kế thừa việc tạo lớp con dựa trên lớp cha, sử dụng lại các thành phần sẵn của lớp cha.
T1: Kế thừa là kỹ thuật của tất cả ngôn ngữ lập trình
T2: Kế thừa là lớp con chọn lựa sử dụng lại một phần của lớp cha
T3: Kế thừa là lớp con giữ nguyên những gì đã có từ lớp cha K: Trung bình M: 50
Câu 18: Mục đích cụ thể của việc kế thừa gì? Hãy chọn câu đúng.
Đ: Sử dụng lại nguồn
T1: Tăng khả năng chuyên nghiệp
T2: Theo xu hướng công nghệ
T3: Tối ưu hơn chương trình K: Trung bình M: 50
Câu 19: Trong kế thừa, (các) thành phần nào sau đây không thể kế thừa từ lớp cha?
Đ: Constructors T1: Data T2: Method T3: Hàm K: Trung bình M: 50
Câu 20: Trong ngôn ngữ Java sử dụng loại kiến trúc kế thừa nào?
Đ: Đơn kế thừa T1: Đa kế thừa
T2: Không ràng buộc gì về kế thừa
T3: Phải cài thêm gói phần mềm về kế thừa thì Java mới có thể có khả năng kế thừa K: Dễ M: 20
Câu 21: Trong Java, khi tạo lớp con kế thừa lớp cha, từ khóa nào cần được sử dụng? Đ: extends T1: implements T2: Inheritant K: Dễ M: 20
Câu 22: Để gọi constructor của lớp cha ta sử dụng lệnh gì? Đ: super(...)
T1: Gọi đúng tên constructor của lớp cha
T2: Ta không cần gọi, constructor sẽ tự động được gọi T3: parent(...) K: Trung bình M: 50
Câu 23: Giả sử ta dùng lệnh super(...) để gọi constructor của lớp cha; Khi đó lệnh super(...)
cần đặt đâu trong constructor của lớp con thích hợp?
Đ: Ngay dòng đầu tiên
T1: Đặt bất kỳ đâu nếu cần thiết
T2: Dùng cấu trúc if (...) để gọi
T3: Đặt ở dòng cuối cùng K: Trung bình M: 50
Câu 24: Cho lớp B kế thừa lớp A. Trong lớp A 1 constructor không tham số. Nếu trong
constructor của lớp con không chứa lời gọi tường minh đến constructor của lớp cha thì khi
biên dịch, điều sẽ xảy ra?
Đ: Compiler sẽ tự động thêm vào constructor của lớp con lệnh gọi constructor của lớp cha super() T1: Báo lỗi biên dịch
T2: Không báo lỗi biên dịch nhưng chương trình không chạy
T3: Kết quả không đoán trước được K: Khó M: 80
Câu 25: Cho kiến trúc kế thừa với code như sau:
class Parent {
public Parent() {
System.out.println("Hello Dad!"); } }
class Child extends Parent { String name;
public Child(String childName) {
super(); // Call to the Parent constructor
System.out.println(childName); } }
public class TestDefaultConstructor {
public static void main(String[] args) {
Child child = new Child("Hello Son!"); } }
Output của chương trình trên gì?
Đ: Hello Dad! Hello Son! T1: Hello Son! T2: Hello Son! Hello Dad! T3: Hello Dad! Hello Son! K: Rất khó M: 90
Câu 26: Cho kiến trúc kế thừa với code như sau:
class Parent {
public Parent(String str) {
System.out.println("Hello Dad!"); } }
class Child extends Parent { String name;
public Child(String childName) {
System.out.println(childName); } }
public class TestDefaultConstructor {
public static void main(String[] args) {
Child child = new Child("Hello Son!"); } }
Output của chương trình trên gì?
Đ: Lỗi biên dịch T1: Hello Dad! Hello Son! T2: Hello Son! T3: Hello Dad! Hello Son! K: Rất khó M: 100
Câu 27: Cho kiến trúc kế thừa với code như sau:
class Parent {
public Parent(String str) {
System.out.println(str); } }
class Child extends Parent { String name;
public Child(String childName) {
super("Hello Dad!");
System.out.println(childName); } }
public class TestKeThua {
public static void main(String[] args) {
Child child = new Child("Hello Son!"); } }
Output của chương trình trên gì?
Đ: Hello Dad! Hello Son! T1: Hello Dad! T2: Hello Dad! T3: Hello Son! K: Rất khó M: 100
Câu 28: Khai báo dữ liệu dạng nào của lớp cha không thể cho lớp con kế thừa?
Đ: Khai báo private T1: Khai báo public T2: Khai báo protected
T3: Không chỉ định access modifier K: Trung bình M: 40
Câu 29: Khai báo method dạng nào của lớp cha không thể cho lớp con kế thừa?
Đ: Khai báo private T1: Khai báo protected T2: Khai báo public
T3: Không chỉ định access modifier K: Trung bình M: 40
Câu 30: Từ khóa nào dùng để khai báo lớp trừu tượng? Đ: abstract T1: Abstract T2: Extends T3: Implements K: Dễ M: 30
Câu 31: Phát biểu nào sau đây đúng về lớp trừu tượng?
Đ: Lớp trừu tượng thể chứa các thành phần không trừu tượng
T1: Lớp trừu tượng chỉ chứa dữ liệu trừu tượng
T2: Lớp trừu tượng chỉ chứa method trừu tượng
T3: Lớp trừu tượng không thể chứa các thành phần không trừu tượng K: Trung bình M: 50
Câu 32: Lớp con của lớp trừu tượng nếu muốn lớp cụ thể thì phải làm gì?
Đ: Phải định nghĩa lại tất cả abstract methods của lớp cha
T1: Phải định nghĩa lại tất cả abstract data của lớp cha
T2: Không bắt buộc phải định nghĩa lại tất cả abstract methods của lớp cha
T3: Chỉ cần định nghĩa lại 1 abstract methods của lớp cha K: Trung bình M: 60
Câu 33: Phát biểu nào sai về abstract method?
Đ: Abstract method thể nằm trong một lớp cụ thể
T1: Abstract method là phương thức có dấu “;” cuối dòng khai báo phương thức
T2: Abstract method là phương thức được khai báo dùng từ khóa abstract
T3: Abstract method là phương thức không có thân (body) K: Trung bình M: 50
Câu 34: Overriding method gì?
Đ: trường hợp lớp con thay đổi code trong phương thức kế thừa từ lớp cha
T1: Là trường hợp 2 methods khai báo giống nhau nhưng code có khác nhau
T2: Là trường hợp lớp con kế thừa method của lớp cha
T3: Là trường hợp bổ sung thân method cho abstract method K: Trung bình M: 50
Câu 35: Final class loại class gì?
Đ: loại class không cho phép các classes khác kế thừa
T1: Là loại lớp hằng (không thay đổi), tương tự như khai báo biến
T2: Là loại lớp mà ta không thể thay đổi dữ liệu của nó
T3: Là loại lớp không có thân lớp, chỉ có dòng khai báo lớp K: Trung bình M: 50
Câu 36: Khi xây dựng lớp A 2 dữ liệu số nguyên num01 num02. Nếu không cho các
lớp con của lớp A kế thừa dữ liệu num02 nhưng cho phép kế thừa dữ liệu num01, ta phải làm gì?
Đ: Khai báo dữ liệu num02 private, dữ liệu num01 không khai báo private
T1: Khai báo lớp A là final
T2: Khai báo dữ liệu num01 và num02 là private
T3: Khai báo dữ liệu num01 là public K: Trung bình M: 50
Câu 37: Cho code như sau:
class Cinema {
private String name;
public Cinema(String name) {this.name = name;} }
public class Movie extends Cinema {
public Movie(String movie) { }
public static void main(String[] showing) {
System.out.print(new Movie("Another Trilogy").name); } }
Hãy cho biết code trên lỗi hay không? Nếu thì lỗi các dòng nào?
Đ: 2 lỗi, dòng 6 dòng 8. T1: Không có lỗi T2: Có 1 lỗi, ở dòng 6
T3: Có 3 lỗi, ở các dòng: 2, 3, 6 K: Rất khó M: 100
Câu 38: Cho code như sau:
class A {
private int num;
public A(int n) { num = n; } }
public class B extends A {
public B() {}
public static void main(String[] args) {
System.out.print("Is it OK?"); } }
Code trên lỗi hay không? Nếu lỗi thì lỗi dòng nào?
Đ: lỗi. Lỗi dòng 6. T1: Không lỗi.
T2: Có lỗi. Lỗi ở dòng 2.
T3: Có lỗi. Lỗi ở dòng 8. K: Rất khó. M: 100.
Câu 39: Cho chương trình sau:
class Song {
public void playMusic() {
System.out.print("Play!"); }
private int playMusic() {
System.out.print("Music!"); }
public static void main(String[] tracks) {
new Song().playMusic(); } }
Output của chương trình trên khi biên dịch chạy gì?
Đ: Lỗi biên dịch. T1: Play! T2: Music! T3: Play! Music! K: Rất khó. M: 100.
Câu 40: Cho code khai báo lớp như sau:
class Song { public playMusic() { return this; } }
Dấu gạch dưới trong khai báo hàm playMusic chỗ của kiểu trả về của hàm. Theo bạn,
chỗ gạch dưới này bạn nên điền vào nội dung dưới đây để cho hàm playMusic hợp lệ? Đ: Song T1: Music T2: void T3: String K: Rất khó. M: 100.
Document Outline

  • T1: A92
  • M: 20
  • M: 20 (1)
  • M: 70
  • M: 100
  • M: 100 (1)
  • M: 100 (2)
  • M: 100 (3)
  • M: 20 (2)
  • M: 90
  • M: 100 (4)
  • M: 100 (5)
  • M: 40
  • M: 40 (1)
  • M: 30
  • M: 50
  • M: 50 (1)
  • M: 100 (6)
  • M: 100.