
200+ câu trắc nghiệm Java cơ bản có đáp án - Phần 7
30 câu hỏi
public class Man extends Student{ }
public class Man extend Student{ }
public class Man :Student{ }
public class Man => Student{ }
Chọn đáp án A
Vì:
Theo cú pháp khai báo lớp kế thừa trong java, từ khóa extends được dùng để mô tả một lớp là lớp con của lớp khác.
10
11
10
10
11
11
Không in kết quả và báo lỗi
Chọn đáp án A
Vì:
+ Lệnh đầu tiên trong hàm main() sẽ sinh ra đối tượng s từ lớp Man.
+ Lệnh thứ 2 của hàm main sẽ gọi phương thức getAge() của đối tượng s, tuy nhiên s kế thừa từ lớp Student do đó sẽ triệu gọi phương thức getAge của lớp Student => in ra 10
+ Lệnh thứ 3 của hàm main() sẽ gọi phương thức getAge(1) của đối tượng s => gọi đến phương thức getAge(int added) của lớp Man => in ra 11
class A { public A(int x) {} }
class A {}
class B extends A { B() {}}
class A { A() {}}
class B { public B() {} }
class Z { public Z(int) {} }
class A extends Z { }
Chọn đáp án D
Vì:
Tham số truyền cho hàm tạo của lớp Z chưa xác định tên nên sinh lỗi.
public getNum() { }
public float getNum(double d) { }
public float getNum() { return 4.0f; }
public double getNum(float d) { return 4.0d; }
Chọn đáp án A
Vì:
Phương thức này chưa xác định kiểu dữ liệu trả về.
interface Summable {}
interface Eatable {}
class Math implements Summable;Eatable{}
interface Summable {}
interface Eatable {}
class Math implements Summable and Eatable{}
interface Summable {}
interface Eatable {}
class Math: Summable,Eatable{}
interface Summable {}
interface Eatable {}
class Math implements Summable,Eatable{}
Chọn đáp án D
Vì:
dấu phẩn(,) là dấu để cách ra các interface/class trong danh sách thừa kế hoặc triển khai.
Một lớp triển khai interface thì từ khóa implements được dùng.
trinh
java
Lỗi biên dịch ở dòng 1
Không in ra gì
Chọn đáp án C
+ Lỗi ở dòng lệnh 1, sai cú pháp khai báo mảng 2 chiều
Student
Man
Student Man
Man Student
Chọn đáp án A
Vì:
s là đối tượng của Student, nên phương thức được gọi là của Student.
102
104
h
Lỗi biên dịch
Chọn đáp án B
Vì:
s.charAt(6) truy xuất phần tử thứ 7 là kí tự 0, trong mã asscii thì kí tự 0 là 104.
public interface MyInterface {}
public interface MyInterface {
default int x;
}
public interface MyInterface {
protected int sum(int x, int y);
}
public interface MyInterface {
private int sum(int x, int y);
}
Chọn đáp án A
Vì:
Trong đáp án B default là từ khóa dùng trong lệnh switch chứ không phải là một từ khóa truy xuất.
Trong đáp án C, D không thể mức truy xuất private hoặc protected cho thuộc tính cúng như phương thức.
Trong khai báo interface có thể không khai báo gì.
array2 = array1;
array2[0] = array3[0];
array2 = array4;
array1=array2;
Chọn đáp án C
Vì:
Không thể gán mảng một chiều cho mảng 2 chiều được.
s=NULL
s=null
Lỗi sẽ đưa ra dòng 3
Lỗi sẽ đưa ra dòng 4
Chọn đáp án D
Vì:
lỗi sẽ sinh ra ở dòng 4 yêu cầu biến s phải được khởi tạo thì mới được in ra giá trị.
i = 6 and j = 6
i = 5 and j = 5
i = 6 and j = 5
i = 5 and j = 6
Chọn đáp án D
Khi thực hiện chương trình, mỗi lần lặp sẽ tăng i lên 1 và giảm j đi 1. Vòng lặp sẽ kết thúc khi i=5. Do vậy i=5, j=6
2
1
3
4
Chọn đáp án A
Vì:
Khi truyền tham số vào cho phương thức có hai cách là: truyền theo kiểu tham trị và truyền theo kiểu tham biến.
Cài đặt cụ thể phần thân cho phương thức methodA()
Thay thế từ khóa public ở dòng 2 thành private
Xóa từ khóa abstract ở dòng 4
Xóa từ khóa abstract ở dòng 2
Chọn đáp án C
Vì:
Đáp án “Xóa từ khóa abstract ở dòng 4” là đúng vì khi xóa từ khóa abstract thì phương thức methodB() sẽ trở thành phương thức thông thường, có phần thân.
static
public
private
abstract
Chọn đáp án D
Vì:
một lớp kế thừa từ lớp abstract sẽ phải cài đặt tất cả các phương thức abstract trong lớp mà nó kế thừa.
4
5
10
undefined
Chọn đáp án B
Sai. Đáp án đúng là: 5
Vì:
+ Lệnh System.out.println(names.length); sẽ in ra chiều dài thực của mảng names (=5)
public getNum() { }
public float getNum(double d) { }
public float getNum() { return 4.0f; }
public double getNum(float d) { return 4.0d; }
Chọn đáp án A
Vì:
Phương thức này chưa xác định kiểu dữ liệu trả về.
0
Lỗi biên dịch
4
5
Chọn đáp án C
Vì:
khi thực thi đoạn mã giá trị của i sẽ lần lượt tăng lên và cuối cùng nhận giá trị 4.
Finally
Lỗi biên dịch
Đoạn mã thực thi nhưng không in ra kết quả
Lỗi sinh ra trong quá trình chạy.
Chọn đáp án A
Vì:
Khi thực thi khối lệnh finally sẽ luôn được thực thi và in ra kết quả trong khối lệnh là Finally.
abstract class Animal{
abstract void run();
}
public class Horse extends Animal{}
abstract class Animal{
abstract int run();
}
abstract class Horse extends Animal{}
abstract class Animal{
abstract void run();
}
abstract public class Horse {}
abstract class Animal{
abstract void run();
}
abstract class Horse {}
Chọn đáp án A
Vì:
Khi lớp Horse thừa kế Animal, nên nó có phương thức run chưa được triển khai, nên nó phải được khai báo là abstract hoặc phải triển khai phương thức run().
x = 1
x = 3
Lỗi biên dịch
Chương trình chạy nhưng không in ra kết quả
Chọn đáp án C
Vì:
Sử dụng sai phép so sánh trong lệnh if, toán tử = là toán tử gán không sử dụng trong biểu thức của lệnh if.
Không có lỗi biên dịch.
Có lỗi biên dịch:
try without catch or finally
Có lỗi biên dịch:
add import String.
Có lỗi biên dịch:
statement
String s="John";
never throws an exception
Chọn đáp án B
Vì:
Khi bạn dùng try thì cấu trúc sau đó phải dùng ít nhât catch hoặc (và)finally.
String tự động được import vào bất kỳ packge, nên đáp
“Có lỗi biên dịch:
add import String.”
là sai
Đán án
“Có lỗi biên dịch:
statement
String s="John";
never throws an exception”
là sai.
Vì cấu trúc của lênh try sai, nên trình biên dịch sẽ không đi xâu vào tìm hiểu các lỗi này.
Ket qua phep toan: 0
Lỗi biên dich
Ket qua phep toan: Infinity
Ket qua phep toan:
Chọn đáp án C
Vì:
Không xác định khi chia một số nguyên cho một số thực có giá trị là 0.0.
printf()
out.print();
System.out.println();
Printf();
Chọn đáp án C
Sai. Đáp án đúng là: System.out.println();
Vì:
Theo cú pháp à ý nghĩa của lệnh println()
1
0
true
false
Chọn đáp án C
Vì:
+ Đây là biểu thức so sánh => Kết quả là kiểu logic (true/false)
+ 9.5/5=1.8 > 1
s=
s=null
Lỗi biên dịch yêu cầu s phải được khởi tạo
Biên dịch không lỗi, nhưng khi chạy lỗi NullPointerException sẽ ném ra Đáp án
Chọn đáp án C
Vì:
Chuỗi s cần phải được khởi tạo trước khi truy xuất vào.
f2[0] = 0.0
f2[0] = NaN
Lỗi dòng 5
Lỗi dòng 6
Chọn đáp án A
Vì:
+ Lệnh 4 sẽ tạo ra mảng f1 gồm 10 số thực (khởi tạo là 0)
+ Lệnh 5 sẽ gán mảng f2 = f1;
+ Lệnh 6 sẽ in ra phần tử đầu tiên của mảng f2 => in ra số 0.
public abstract class MyClass {}
abstract public class MyClass {}
abstract class MyClass {}
public class MyClass {}
Chọn đáp án D
Vì:
Đây là khai báo của một lớp bình thường.
public abstract class MyClass {
}
abstract public class MyClass {
abstract public int sum(int x, int y);
}
abstract class MyClass {}
public class MyClass {}
Chọn đáp án D
Vì:
Đây là khai báo của một lớp bình thường.
Lỗi biên dịch dòng 2.7
Lỗi biên dịch dòng 2.5
Lỗi biên dịch dòng 2.5, 2.7
xA = 12; a.yA = Hello
Chọn đáp án C
Vì:
thuộc tính xA của lớp ClassA được khai báo với từ khóa protected nên không được truy xuất từ ngoài gói pac02.
Bạn có thích hoạt động này không?
Hãy lưu hoặc chia sẻ nội dung này đến mọi người.


















