
200+ câu trắc nghiệm Java cơ bản có đáp án - Phần 8
30 câu hỏi
throws Exception.
catch (Exception e).
throws RuntimeException.
catch (TestException e).
Chọn đáp án A
Vì:
tại dòng 4 phải đưa vào lệnh throws Exception thì chương trình sẽ biên dịch thành công.
abstract public class MyClass{
public static void main(String[] args) {
}
}
abstract public class MyClass{
public static void main(String[] args) {
MyClass m = new MyClass() {};
}
}
abstract public class MyClass{
public static void main(String[] args) {
Object m = new MyClass(){};
}
}
abstract public class MyClass{
public static void main(String[] args) {
MyClass m = new MyClass();
}
}
Chọn đáp án D
Vì:
Lớp MyClass được khai báo là lớp abstract, nên bạn không thể tạo object trực tiếp từ nó được.
!thenew
@thenew
_the_new
1the_new
Chọn đáp án C
Vì:
Theo quy tắc khai báo biến thì tên biến nên bắt đầu bởi ký tự hoặc ký tự gạch dưới (_), không có khoảng cách giữa tên biến và tên biến không được bắt đầu bởi số
public void in(){return;}
public int in(){return;}
public double in(){return "";}
public float in(){return "24";}
Chọn đáp án A
Vì:
Khi khai báo phương thức in có kiểu dữ liệu trả về là void thì viết lệnh return;. Các đáp án còn lại kiểu dữ liệu trả về cho phương thức không phù hợp với khai báo.
NullPoiterException
Exception
ArrayIndexOutOfBoundsException
ArithmeticException
Chọn đáp án C
Vì:
+ ArrayIndexOutOfBoundsException là đối tượng được định nghĩa trong java nhằm xử lí các lỗi về chỉ số của mảng
4,4
4,5
5,4
5,5
Chọn đáp án A
Vì:
+ Trong chương trình đã tạo ra 2 lớp là Super và Sub kế thừa từ Super. Trong hàm main lệnh 10,11,12,13 sẽ gọi phương thức getLength() của lớp Super (vì lớp Sub kế thừa từ Super) => in ra 4,4
name has private access in Student.
Không có lỗi biên dịch.
class Man has no attribute name.
class Man has no attribute or method name.
Chọn đáp án A
Vì:
thuộc tính name ở Student là private, nên không lớp con Man không được thừa kế.
Lớp Man vẫn chứa thuộc tính name thông qua lớp Student, nhưng không thể truy xuất được.
Không có lỗi biên dịch.
name has protected access.
age has protected access.
name has public access.
Chọn đáp án B
Vì:
+ name là thành phần protected do đó không thể truy xuất từ bên ngoài lớp (chỉ có thể truy xuất từ bên trong lớp và các lớp con).
x = 10
x = 30
Biên dịch lỗi.
Đoạn code không có lỗi nhưng không đưa ra kết quả gì. Đáp án
Chọn đáp án C
Vì:
+ Không thể đặt lệnh gán x=y vào làm biểu thức kiểm tra điều kiện của lệnh if
class A {abstract void unfinished(){}}
class A {abstract void unfinished();}
abstract class A {abstract void unfinished();}
public class abstract A {abstract void unfinished();}
Chọn đáp án C
Vì:
cú pháp khai báo lớp abstract
abstract class ten_lop{ … }
Tên của chương trình
Số lượng tham số
Tham số đầu tiên của danh sách tham số
Không Câu nào đúng
Chọn đáp án C
Vì:
+ Trong khai báo đối số của hàm main() thì agrs là một mảng xâu kí tự, đồng thời hàm main có thể nhận nhiều đối số => agrs[0] là đối số đầu tiên trong danh sách đối số của hàm main()
2variable
variable2
_whatarevariable
_3_
Chọn đáp án A
Vì:
theo quy tắc đặt tên biến
public abstract class MyClass {}
abstract public class MyClass { public int sum(int x, int y){return x+y;}}
abstract class MyClass {}
public class MyClass {}
Chọn đáp án D
Sai. Đáp án đúng là: public class MyClass {}
Vì: đây là khai báo của một lớp bình thường.
class Cat {String name = "noname";}
public class Cat{
String name;
public Cat(){name = "noname";}
}
public class Cat{
String name;
public Cat(String x){name = x;}
}
public class Cat{
String name;
public Cat(){
String name = "noname";
}
}
Chọn đáp án D
Vì: Sai về cách thức khởi tạo thuộc tính name của lớp Cat sai về cách thức khởi tạo thuộc tính name của lớp Cat
Biến name trong hàm tạo là biến cục bộ, không phải là thuộc tính name.
System.out.println("\t Hello \n Hello");
System.out.println("\t Hello \t Hello");
System.out.println("\n Hello \t Hello");
System.out.println("\n Hello Hello");
Chọn đáp án A
Vì:
Để in ra màn hình ở dòng mới ta phải dùng ký tự đặc biệt \n, nên chỉ có ở đáp án A đúng. Đáp án C kí tự xuống dòng (\n) ở ngay đầu dòng do đó 2 chữ Hello vẫn in trên một dòng.
finally
exception, finished
finally, exception, finished
Lỗi biên dịch.
Chọn đáp án C
Vì:
+ Lệnh đầu tiên trong hàm main() được gọi thực hiện => gọi phương thức aMethod() => lệnh trong khối finally của aMethod() được thực hiện => in ra chữ finally, đồng thời phương thức này ném ra một ngoại lệ do đó lệnh trong khối catch của hàm main() sẽ được thực hiện => in ra chữ exception và cuối cùng lệnh
System.out.println("finished"); sẽ thực hiện để in ra chữ finished
Kết quả là: finally, exception, finished
Không điền gì
package a;
import a;
import a.;
Chọn đáp án D
Vì:
Lệnh import a. cho phép lớp b có thể sử dụng tất cả các thành phần của gói a
Có lỗi biên dịch:getAge() in Man cannot override getAge() in Student return type int is not compatible with java.lang.int
Không có lỗi biên dịch.
Có lỗi biên dịch:getAge() in Man cannot override getAge() in Student because it is final
Có lỗi biên dịch:getAge() in Man and in Student has the same access modifier
Chọn đáp án A
Vì:
lớp Man định viết đè getAge() được viết ở Student, nhưng có kiểu dữ liệu trả về là double không thể chuyển thành int được. Nên đáp án B sai. Và getAge() không được đánh dấu là final, nên có thể được ghi đè, nên đáp án C là sai. getAge() ở cả hai lớp đều có cùng access modifier, điều này là hợp lệ. Nên đáp án D là sai.
Có lỗi biên dịch:Incompatible type, requiered Man, found Student.
Không có lỗi biên dịch. In ra màn hình "man"
Có lỗi biên dịch:access modified of sayHello in Student and Man are different
Không có lỗi biên dịch. In ra màn hình "student"
Chọn đáp án A
Vì:
m thuộc lớp Man, nhưng lại dùng để trỏ đển đối tượng của Student mà Man không phải là lớp con của Student.
Và access modified của cùng phương thức ở lớp con chỉ cần mạnh hơn hoặc bằng cảu lớp cha la được.
Scanner input= new Scanner(System.in);
Scanner input= new Scanner("System.in");
Scanner input= new Scanner(Systemin);
Scanner input= new Scanner(in);
Chọn đáp án A
Vì:
Luồng dữ liệu từ bàn phím là thuộc tính in trong lớp System, nên ta phải truyền System.in vào phương thức khởi tạo của Scanner chứ không phải xâu ký tự "System.in" như ở đáp án B hoặc cách gọi Systemin ở C hoặc in ở đáp án D.
Mảng có thể lưu giữ các phần tử thuộc nhiều kiểu dữ liệu khác nhau
Chỉ số của mảng có thể sử dụng kiểu số thực (float, double)
Biểu thức array.length được sử dụng để trả về số phần tử trong mảng
Một phần tử của mảng không thể truyền vào trong một phương thức.
Chọn đáp án C
Vì:
biểu thức array.length trả về số phần tử trong mảng.
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.
public abstract class MyClass {}
abstract public class MyClass {
public abstract 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.
Tại dòng 2 khi người dùng nhập giá trị 5, chương trình sẽ in ra x = 5
Chương trình không thể chạy vì lỗi dòng 2 do không thể nhập chuỗi và gán cho số nguyên
Tại dòng 2 khi người dùng nhập giá trị 5, chương trình sẽ in ra x =
Đối tượng NumberFormatException được tung ra để bắt lỗi chương trình.
Chọn đáp án B
Vì:
Đối tượng RuntimeException được tung ra để bắt lỗi chương trình và chương trình không thể chạy do không thể nhập chuỗi và gán cho số nguyên.
try...catch...finally
try...catch...catch...finally
try...finally
try
Chọn đáp án D
Vì:
+ Thứ tự các lệnh là try…catch….finally
+ Có thể sử dụng lồng nhau nhiều khối try
+ Khối try thì bắt buộc phải có catch
Không có lỗi biên dịch.
name has private access.
age has private access.
name has public access.
Chọn đáp án A
Vì:
name có mức truy xuất là public, nên có thể được truy xuất từ Main(Nên đáp án A đúng, B sai, D sai). Và trong lớp Main không có truy xuất vào thuộc tính age, bởi thế thuộc tính age không gây ra lỗi. Nên đáp án C sai.
Không có lỗi biên dịch.
name has private access.
age has protected access.
name has public access.
Chọn đáp án A
Vì:
hàm main ở trong cùng lớp Person, nên có thể truy xuất tới tất cả các trường của Person.
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.
s.setMark(10);
s.setMark(10.0);
s.mark=10;
s.mark=10.0;
Chọn đáp án A
Vì:
Phương thức này nhận 10 là số nguyên và thay đổi thuộc tính mark của s.
Đáp án s.setMark(10.0); sai vì truyền số 10.0 thuộc float vào phương thức setMark, mà setMark yêu cầu đầu vào là int.
mark có mức truy xuất là private nên phương thức s.mark=10; và s.mark=10.0; là sai
2variable
variable2
_whatarevariable
_3_
Chọn đáp án A
Vì:
theo quy tắc đặt tên biến
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.


















