Tải bản đầy đủ (.pdf) (42 trang)

ĐÁP ÁN LÂP TRÌNH HƯỚNG ĐỐI TƯỢNG ĐẠI HỌC THAI NGUYÊN HỆ TỪ XA TNU C

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (246.48 KB, 42 trang )

ĐÁP ÁN LÂP TRÌNH HƯỚNG ĐỐI TƯỢNG
ĐẠI HỌC THAI NGUYÊN HỆ TỪ XA TNU
Câu 1: Xét 2 câu sau:
Câu 1: Trong khi tạo một gói, mã nguồn phải được đặt trong cùng một thư mục với
tên của gói.
Câu 2: Scanner là lớp thuộc gói java.util
Câu nào đúng? Câu nào sai?
A. Cả hai câu đều đúng
B. Cả hai câu đều sai
C. Câu 1 đúng, câu 2 sai
D. Câu 2 đúng, câu 1 sai
Câu 2 :Đoạn mã sau có lỗi biên dịch gì?
public class Person {
private String name;
private int age;
public static void main(String[] args) {
Person p = new Person();
p.name="Tom";
System.out.println(p.name);
}
}
Chọn một:
Đáp án đúng là: Khơng có lỗi biên dịch.
Câu 3
1: package a;
2: class A{protected int x;}
3: class B{
4: public void test(){
5: A a = new A();
6: a.x = 9;
7: System.out.println(a.x);


8: }
9:public static void main(String[] agrs)
10: {


11: B b1=new B();
12: b1.test();
13: }
14: }
Khi chạy đoạn chương trình trên sẽ thơng báo gì?
Đáp án đúng là: 9
Câu 4
1.1:package a;
1.2:class A1{}
1.3://///////
2.1:package b;
2.2:
2.3: class B1{
2.4: public void test(){
2.5: A1 a1 = new A1();
2.6: }
2.7: }
Muốn sử dụng lớp A1 của gói a thì dịng 2 phải điền gì?
Chọn một:
Đáp án đúng là: import a.*;
Câu5
Khai báo lớp Student trong package java.class sau có lỗi biên dịch hay khơng, nếu có thì là
lỗi gì?
package java.class;
class Student {}

Đáp án đúng là: Lỗi tên package không hợp lệ
Câu 6
Cho lớp Student như sau:
public class Student {
private String mark;
public String getMark() {
return mark;
}
public void setMark(String mark) {


this.mark = mark;
}
}
và s là thể hiện của lớp Student.
Đoạn mã nào sau cho phép thay đổi điểm của s thành "10"?
Chọn một:
Đáp án đúng là: s.setMark("10")
Câu 7 :Đoạn mã sau có lỗi biên dịch gì?
class Person {
protected String name;
public int age;
};
public class Main {
public static void main(String[] args) {
Person p = new Person();
p.name="Tom";
}
}
Đáp án đúng là: Khơng có lỗi biên dịch

Câu 8 :Lớp Scanner thuộc gói nào trong java?
Đáp án đúng là: java.util
Câu 9
:1:///////package a
2:package a;
3:class A{}
4:///////package b
5:package b;
6:class A{}
7://////default package
8:class Test {
9:public static void main(String[] args){
10:A a = new A();
11:System.out.println(a.toString());
12:}


13:}
Chương trình sẽ in ra cái gì?
Đáp án đúng là: Lỗi dòng khởi tạo lớp A: A a = new A();
Câu 10: Xét 2 câu sau:
Câu 1: Một thành viên protected của một lớp có thể được truy xuất từ bất kỳ lớp nào trong
cùng một gói và từ một lớp con nằm bên ngồi gói nếu lớp bên ngồi đó là lớp con.
Câu 2: Một thành viên của một lớp được khai báo là private không những không thể được
truy xuất từ bên trong lớp mà cịn khơng nơi nào bên ngoài lớp.
Câu nào đúng? Câu nào sai?
Đáp án đúng là: Câu 1 đúng, câu 2 sai
Câu 11 :
1.1:package a;
1.2:class A1{}

1.3://///////
2.1:package b;
2.2:
2.3: class B1{
2.4: public void test(){
2.5: A1 a1 = new A1();
2.6: }
2.7: }
Muốn sử dụng lớp A1 của gói a thì dịng 2 phải điền gì?
Đáp án đúng là: import a.*;
Câu 12: Cho hai lớp Student và Main như sau:
package java.school;
public class Student {}
-package java.test;
public class Main {
public static void main(String[] args) {
java.school.Student s = new java.school.Student();
}
}
Khi biên dịch lớp Main có lỗi biên dịch khơng? Nếu có là lỗi nào sau:
Đáp án đúng là: Khơng có lỗi biên dịch.
Câu 13 :Đoạn mã sau có lỗi biên dịch gì?


class Person {
private String name;
public int age;
};
public class Main {
public static void main(String[] args) {

Person p = new Person();
p.name="Tom";
}
}
Đáp án đúng là: Lỗi vì biến name ở chế độ private
Câu 14: Bạn đang viết một đoạn mã cho 1 lớp, lớp này nằm trong package test và sử dụng các
thành phần trong gói java.util. Lựa chọn đoạn mã để khởi đầu cho file dữ liệu nguồn.
Đáp án đúng là:
package test;
Câu 15 :Đoạn mã sau có lỗi biên dịch gì?
class Person {
protected String name;
public int age;
};
public class Main {
public static void main(String[] args) {
Person p = new Person();
p.name="Tom";
}
}
Đáp án đúng là: Khơng có lỗi biên dịch
Câu 16 :Đâu là khai báo lớp Student trong package java.school đúng:
Đáp án đúng là:
package java.school;
public class Student {}
Câu 17 : Xét 2 câu sau:


Câu 1: Trong khi tạo một gói, mã nguồn phải được đặt trong cùng một thư mục với tên của
gói.

Câu 2: Scanner là lớp thuộc gói java.util
Câu nào đúng? Câu nào sai?
Đáp án đúng là: Cả hai câu đều đúng
Câu 18 : Cho hai lớp Student và Main như sau:
package java.school;
public class Student {}
-package java.test;
public class Main {
public static void main(String[] args) {
java.school.Student s = new java.school.Student();
}
}
Khi biên dịch lớp Main có lỗi biên dịch khơng? Nếu có là lỗi nào sau:
Đáp án đúng là: Khơng có lỗi biên dịch.
Câu 19 :Đoạn mã sau có lỗi biên dịch gì?
class Person {
private String name;
public int age;
};
public class Main {
public static void main(String[] args) {
Person p = new Person();
p.name="Tom";
}
}
Đáp án đúng là: Lỗi vì biến name ở chế độ private
Câu 20 :Bạn đang viết một đoạn mã cho 1 lớp, lớp này nằm trong package test và sử dụng các
thành phần trong gói java.util. Lựa chọn đoạn mã để khởi đầu cho file dữ liệu nguồn.
Đáp án đúng là:
package test;

import java.util.*;


Câu 21: Khai báo lớp Student trong package java.class sau có lỗi biên dịch hay khơng, nếu có
thì là lỗi gì?
package java.class;
class Student {}
Đáp án đúng là: Lỗi tên package khơng hợp lệ
Câu 22 :Đoạn mã sau có lỗi biên dịch gì?
public class Person {
private String name;
private int age;
public static void main(String[] args) {
Person p = new Person();
p.name="Tom";
System.out.println(p.name);
}
}
Đáp án đúng là: Khơng có lỗi biên dịch.
Câu 23 :Cho hai lớp Student và Main như sau:
package java.school;
public class Student {}
-package java.test;
public class Main {
public static void main(String[] args) {
Student s = new Student();
}
}
Kết quả khi biên dịch lớp Main:
Đáp án đúng là: Có lỗi biên dịch vì chưa khai báo lớp Student

Câu 24 :Khả năng truy xuất vào các thành phần của một đối tượng trong khi vẫn đảm bảo che
giấu các đặc tính riêng tư bên trong đối tượng được gọi là tính chất gì trong lập trình hướng
đối tượng?
Đáp án đúng là: Tính bao gói
Câu 25:Trong 2 câu sau, câu nào đúng? Câu nào sai?
Câu 1: Một chương trình Java có thể chạy trên bất kỳ hệ điều hành nào?
Câu 2: Java là ngơn ngữ lập trình hướng đối tượng


Đáp án đúng là: Cả hai câu đều đúng
Câu 26:Trong 2 câu sau, câu nào đúng? Câu nào sai?
Câu 1: Tất cả các đối tượng thuộc vào cùng một lớp có cùng thuộc tính và hành vi có thể có.
Câu 2: Một phương thức được gọi là constructor sử dụng để hủy một đối tượng.
Đáp án đúng là: Câu 1 đúng, câu 2 sai
Câu 27 :Đâu là câu SAI nói về hàm tạo?
Đáp án đúng là: Trong một lớp chỉ có một và chỉ một hàm tạo được khai báo
Câu 28 :Đâu KHƠNG phải là đặc điểm của ngơn ngữ Java?
Đáp án đúng là: Đa dạng
Câu 29:Hai đối tượng có thể giao tiếp với nhau thông qua:
Đáp án đúng là: Lời gọi hàm của đối tượng được yêu cầu
Câu 30:Việc định nghĩa một lớp mới bằng cách mở rộng một lớp đã có là tính chất gì trong
lập trình hướng đối tượng?
Đáp án đúng là: Tính kế thừa
Câu 31:Khi sử dụng từ khóa new để tạo một đối tượng, nó được tạo ra ở đâu?
Đáp án đúng là: Heap
Câu 32:Tên biến nào sau KHÔNG hợp lệ?
Đáp án đúng là: 2variable
Câu 33 :Đâu là chú thích SAI trong java?
Đáp án đúng là: <!--a comment--!>
Câu 34: Đọc đoạn mã lệnh sau

1:public class Main {
2: public static void main(String[] args) {
3: int x = -1;
4: String y = x + 3;
5: System.out.println("x = " + x + "y = " + y);
6: }
7:}
Sau khi thực thi chương trình sẽ in ra kết quả gì?
Đáp án đúng là: Lỗi biên dịch
Câu 35 : Một đối tượng sau khi được khởi tạo sẽ kết thúc vòng đời khi nào?
Đáp án đúng là: Đối tượng được gán bằng null
Câu 36 :Đọc đoạn mã lệnh sau
1:public class Test {
2: int x;


3: public void Test() {
4: System.out.println("x = " + x);
5: }
6: public Test(int x) {
7: this.x = x;
8: System.out.println("x = " + x);
9: }
10:}
Sau khi thực hiện lệnh new Test(2) chương trình sẽ in ra kết quả gì?
Đáp án đúng là: 2
Câu 37 :Đâu là 2 đặc trưng cơ bản để phân biệt các đối tượng trong thế giới thực?
Đáp án đúng là: Trạng thái và hành vi
Câu 38: Đọc đoạn mã lệnh sau
1:public class Main {

2: public static void main(String[] args) {
3: int x;
4: System.out.println("x = " + x);
5: }
6:}
Sau khi thực thi chương trình sẽ in ra kết quả gì?
Đáp án đúng là: Lỗi biên dịch : Uncompilable source code - variable x might not have been
initialized
Câu 39 :Để in ra màn hình thì ta dùng lệnh gì?
Đáp án đúng là: System.out.println();
Câu 40 :Để kiểm tra xem một số là chẵn hay lẻ, cần thực hiện những bước sau:
1. Đọc số
2. Chia số cho 2
3. Nếu số dư của phép chia bằng 0 thì là số chẵn
4. Nếu khơng thì là số lẻ
Thứ tự đúng của q trình trên là:
Đáp án đúng là: 1-2-3-4
Câu 41:Để khởi tạo giá trị cho thuộc tính của lớp, KHƠNG được khởi tạo ở đâu?
Đáp án đúng là: Trong khối lệnh bất kỳ
Câu 42: Đọc đoạn code sau:


1:public class Test {
2:public int aMethod() {
3:int i = 0;
4:i++;
5:return i;
6:}
7:public static void main (String[]args){
8:Test test = new Test();

9:test.aMethod();
10:int j = test.aMethod();
11:System.out.println(j);
12:}
13:}
Kết quả là gì?
Đáp án đúng là: 1
Câu 43 :Toán tử nào thực hiện phép chia lấy phần dư?
Đáp án đúng là: %
Câu 44 :Đọc đoạn code sau
1: int i =1,j =10;
2: do {
3: if(i++> - -j) {
4: continue;
5: }
6: } while (i <5);
7: System.out.println("i = " +i+ " and j = "+j);
Kết quả là gì?
Đáp án đúng là: i = 5 and j = 6
Câu 47: Xét 2 câu sau:
Câu 1: Biến được khai báo bên trong lớp được dùng để lưu trữ các giá trị thuộc tính của đối
tượng
Câu 2: Biến địa phương là biến được khai báo bên trong phương thức và các khối lệnh.
Câu nào đúng? Câu nào sai?
Đáp án đúng là: Cả 2 câu đều đúng
Câu 48: Đâu là khai báo biến đúng trong java?
(1) rollNumber


(2) $rearly_salary

(3) double
(4) $$_
(5) mount#balance
Đáp án đúng là: 124
Câu 49: Đầu ra của chương trình sau là gì?
1: class TestString {
2: public static void main(String[]args){
3: String a = "abc";
4: String b = "abcd";
5: if(a = b) b = "xyz";
6: System.out.println("b = " + b + "a = " + a);
7: }
8: }
Đáp án đúng là: Lỗi biên dịch
Câu 50: Kiểu dữ liệu nào trong java được dùng để lưu trữ một giá trị dạng đúng hoặc sai?
Đáp án đúng là: boolean
Câu 51: Biểu thức sau
9.0/5>1
trả về giá trị là bao nhiêu:
Đáp án đúng là: true
Câu 52: Đọc đoạn code sau
1: public class ReturnIt {
2: public <return_Type> methodA(int x, double y) {
3: return x / y * 2;
4: }
5: }
Kiểu dữ liệu trả về cho methodA (return_type) ở dịng 2 có thể là kiểu nào?
Đáp án đúng là: double
Câu 53: Xét 2 câu sau:
Câu 1: Biến được khai báo bên trong lớp được dùng để lưu trữ các giá trị thuộc tính của đối

tượng
Câu 2: Biến địa phương là biến được khai báo bên trong phương thức và các khối lệnh.
Câu nào đúng? Câu nào sai?
Đáp án đúng là: Cả 2 câu đều đúng


Câu 54: Đọc đoạn mã sau:
10: int i = 0;
11: for (; i <4; i += 2) {
12: System.out.print(i + " ");
13: }
14: System.out.println(i);
Kết quả trả về là gì?
Đáp án đúng là: 0 2 4
Câu 55: Đọc đoạn code sau
1: int i =1,j =10;
2: do {
3: if(i++> - -j) {
4: continue;
5: }
6: } while (i <5);
7: System.out.println("i = " +i+ " and j = "+j);
Kết quả là gì?
Đáp án đúng là: i = 5 and j = 6
Câu 56 :
01:class A {
02: int x = 10;
03: public void calTotal(A a){
04: a.x = 12;
05: 06:System.out.println(a.x);

07: }
08:}
Khi thực hiện lệnh:
A a = new A();
a.calTotal(a);
Giá trị của x sau khi thực hiện lệnh trên sẽ cho kết quả gì?
Đáp án đúng là: 12
Câu 57: Đọc đoạn code sau
1: int x = 30;
2: int y = 10;
3: if (x = y) {


4: System.out.println("x = " + x);
5: }
Kết quả là gì?
Đáp án đúng là: Biên dịch lỗi
Câu 58 :Biểu thức sau
4/10*10
trả về giá trị là bao nhiêu:
Đáp án đúng là: 0
Câu 59 :Để khởi tạo giá trị cho thuộc tính của lớp, KHÔNG được khởi tạo ở đâu?
Đáp án đúng là: Trong khối lệnh bất kỳ
Câu 59 :Phát biểu nào đúng?
Đáp án đúng là: Tên biến $bank_account và _1account là hợp lệ
Câu 60: 1. public class X {
2. public static void main (String[] args) {
3. byte b = 127;
4. byte c = 126;
5. byte d = b + c;

6. }
7. }
Đâu là câu đúng về đoạn mã trên?
Đáp án đúng là: Lỗi dịng 5 ngăn chương trình thực thi
Câu 61 :Sau lệnh khởi tạo dưới đây mảng a có bao nhiêu phần tử?
char a[] = {'k', '5', '0', 'c', '\'', '\0'};
Đáp án đúng là: 6
Câu 62 :Trong các khai báo sau đâu là khai báo KHÔNG hợp lệ?
Chọn một:
Đáp án đúng là: int a1[][] = new int[][3];
Câu 63 :StringBuffer s = new StringBuffer("hello how are you how?");
int x = s.indexOf("ow");
System.out.println(x);
Trong đoạn mã trên x nhận giá trị bao nhiêu?
Đáp án đúng là: 7
Câu 64 :Chương trình sau in ra màn hình xâu nào?


01: public class Main{
02: public static void main(String[] args) {
03: String names[] = {"John","Anna","Peter","Victor","David"};
04: System.out.println(names[2]);
05: }
06:}
Đáp án đúng là: Peter
Câu 65 : 01: int index = 1;
02: int [] foo = new int [3];
03: int bar = foo [index];
04: int baz = bar + index;
Kết quả baz là?

Đáp án đúng là: baz có giá trị là 1
Câu 67: Lệnh nào SAI?
Chọn một:
Đáp án đúng là: float f2[] = new float[];
Câu 68 :Lệnh khai báo nào dưới đây là hợp lệ?
Chọn một:
Đáp án đúng là: int[] b = new int[100];
Câu 69: 1. public class Delta {
2. static boolean foo(char c) {
3. System.out.print(c);
4. return true;
5. }
6. public static void main( String[] argv ) {
7. int i =0;
8. for ( foo(‘A’);
foo(‘B’)&&(i<2); foo(‘C’)){
9. i++ ;
10. foo(‘D’);
11. }
12. }
13. }
Kết quả in ra của đoạn mã trên là gì?
Đáp án đúng là: ABDCBDCB


Câu 70 :Đọc đoạn mã sau
1:String s, t;
2:s = "Hello";
3:t = "" + "my" + "";
4:s.append(t);

5:s.toLowerCase();
6:s += "friend";
7:System.out.println(s);
Kết quả sẽ là ?
Đáp án đúng là: Biên dịch lỗi
Câu 71: Chương trình sau in ra màn hình số mấy?
01: public class Main{
02: public static void main(String[] args) {
03: String names[] = {"John","Anna","Peter","Victor","David"};
04: System.out.println(names.length);
05: }
06: }
Chọn một:
Đáp án đúng là: 5

Câu 72: Cho khai báo mảng sau:
1: String[][] str = {"lap", "trinh", "java"};
2: System.out.println(str[0][0]);
Lệnh trên in ra cái gì?
Đáp án đúng là: Lỗi biên dịch ở dòng 1
Câu 73:Lệnh nào sau đây cho biết khai báo mảng gồm 3 phần tử?
Chọn một:
Đáp án đúng là: public int[] a = new int[3];

Câu 74: 1. public class ArrayTest {
2. public static void main(String[] args) {
3. float f1[], f2[];


4. f1 = new float[10];

5. f2 = f1;
6. System.out.println("f2[0]= " + f2[0]);
7. }
8. }
Kết quả in ra của đoạn mã trên là gì?
Chọn một:
Đáp án đúng là: f2[0]=0.0
Câu 75:Lệnh sau in ra cái gì?
1: final int ARRAY_SIZE = 5;
2: ARRAY_SIZE = 10;
3: System.out.println("size = " + ARRAY_SIZE);
Chọn một:
Đáp án đúng là: Lỗi ở dòng 2
Câu 76: Xét 2 câu sau:
Câu 1: Nếu 2 đối tượng bằng nhau trong cùng một mảng và mảng đó được sắp xếp, các phần
tử bằng nhau không thể thay đổi thứ tự của chúng?
Câu 2: Chỉ số mảng bắt đầu từ 1
Câu nào đúng? Câu nào sai?
Đáp án đúng là: Cả hai câu đều sai
Câu 77 : Khai báo nào sau đây được dùng để tạo ra hằng số?
Đáp án đúng là: final int ARRAY_SIZE = 10;
Câu 78: Các phương thức thuộc cùng một lớp và có cùng một tên nhưng khác nhau về số
lượng các tham số truyền vào gọi là gì?
Đáp án đúng là: Các phương thức bị nạp chồng
Câu 79 : Đoạn mã sau có lỗi biên dịch nào?
class Student {
public String name;
}
public class Man extends Student{
private String name;

}
Chọn một:
Đáp án đúng là: Khơng có lỗi biên dịch.
Câu 80 : Nếu phương thức của bạn ghi đè một trong số các phương thức của lớp cha, bạn có
thể gọi phương thức bị ghi đè thơng qua từ khóa nào?


Đáp án đúng là: super
Câu 81: Đọc đoạn mã sau
1: class A {
2: A() { }
3: }
4:
5: class B extends A {
6: }
Câu lệnh nào sau là đúng nói về lớp B?
Chọn một:
Đáp án đúng là: constructor của lớp B khơng có tham số
Câu 82: 1: class A {}
2: class B{}
3: class C extends A, B{}
Đâu là câu SAI khi nói về lớp A, B, C?
Chọn một:
Đáp án đúng là: Có thể khai báo lớp C kế thừa từ hai lớp A và B như đoạn mã tại dòng 3
Câu 83 : 01: class Base {
02: Base() { System.out.print("Base"); }
03: }
04: public class Alpha extends Base {
05: public static void main( String[] args ) {
06: new Alpha();

07: new Base();
08: }
09: }
Chương trình sẽ in ra cái gì?
Đáp án đúng là: BaseBase
Câu 84 : 1. class TestSuper {
2. TestSuper(int i) { }
3. }
4. class TestSub extends TestSuper{ }
5. class TestAll {


6. public static void main (String [] args) {
7. new TestSub();
8. }
9. }
Kết quả in ra của đoạn mã trên là gì?
Đáp án đúng là: Lỗi biên dịch
Câu 85 : Đoạn mã sau in ra màn hình xâu ký tự nào sau:
class Student {
public String sayHello(){
return "Student";
}
}
public class Man extends Student{
public String sayHello() {
return super.sayHello();
}
public static void main(String[] args) {
Man m = new Man();

System.out.println(m.sayHello());
}
}
Đáp án đúng là: Student
Câu 86: Đoạn mã sau có kết quả như thế nào?
class Student {
private String name;
}
public class Man extends Student{
protected String name =”Peter”;
}
Đáp án đúng là: Khơng có lỗi biên dịch
Câu 87 : 1: class A {protected int x=0;}
2: class B extends A{
3: public void method(){


4: int x = 5; super.x = this.x;
5: System.out.println(super.x);
6: }
7:}
Đoạn mã trên x nhận giá trị gì?
Chọn một:
Đáp án đúng là: x = 0
Câu 88 :Xét 2 câu sau:
Câu 1: Một phương thức bị ghi đè (overriden method) có thể nằm trong cùng một lớp.
Câu 2: overloading method cho phép trong một lớp có thể có nhiều hơn một phương thức
trùng tên nhau với tham số giống nhau
Câu nào đúng? Câu nào sai?
Đáp án đúng là: Cả 2 câu đều sai

Vì:
+ Nạp chồng phương thức thường thực hiện từ các lớp khác nhau (thường phương thức của
lớp con sẽ ghi đè phương thức của lớp cha)
+ Trong một lớp muốn có nhiều phương thức trùng tên thì các tham số phải khác nhau.
Tham khảo: Giáo trình: [1] mục 5.2.3
Câu trả lời đúng là: Cả 2 câu đều sai
Câu 89 :Đoạn văn câu hỏi
1: class A {int x;}
2: class B extends A{
3: public void method(){
4: x = 5;
5: System.out.println(x)
6: }
7:}
Đoạn mã trên x nhận giá trị gì?
Chọn một:
Câu trả lời của bạn chính xác
Đáp án đúng là: x = 5.
Vì:
+ Lệnh 4 gán x bằng 5
+ Lệnh 5 sẽ in ra giá trị của x




In ra 5

Tham khảo: Giáo trình: [1] mục 5.2
Câu trả lời đúng là: x = 5
Câu 90 Đoạn văn câu hỏi

1: class A {
2: int x;
3: public void method(){
4: x = 5;
5: System.out.println(x)
6: }
7:}
8: class B extends A{
9: public void method(){
10: x = 6;
11: System.out.println(x)
12: }
13:}
Chỉ ra lệnh SAI khi muốn tạo đối tượng A hay B.
Chọn một:
Câu trả lời của bạn chưa chính xác
Đáp án đúng là: B b = new A();
Vì: Lớp con khơng thể tạo ra một thể hiện của lớp cha do lớp con có thể có những thuộc tính
và phương thức khác so với lớp cha.
Tham khảo: Giáo trình: [1] mục 5.2
Câu trả lời đúng là: B b = new A();

Câu 91 :1. class A {
2. protected int method1(int a, int b) { return 0; }
3. }
Khi có lớp B kế thừa từ lớp A, phương thức nào là KHÔNG hợp lệ khi khai báo trong lớp B.
Câu trả lời của bạn chưa chính xác
Đáp án đúng là: public short method1(int a, int b) { return 0: }
Vì:



+ Lớp B kế thừa từ lớp A, do đó phương thức method1 phải có kiểu giống với method1 trong
lớp A (kiểu int)
Tham khảo: Giáo trình: [1] mục 5.2
Câu trả lời đúng là: public int method1(int a, int b) { return 0; }, public short method1(int a,
int b) { return 0: }
Câu 92 :Đọc đoạn mã sau:
1: class Super {
2: public Integer getLength() { return new Integer(4); }
3: }
4:
5: public class Sub extends Super {
6: public Long GetLength() { return new Long(5); }
7:
8: public static void main(String[] args) {
9: Super sooper = new Super();
10: Sub sub = new Sub();
11: System.out.println(
12: sooper.getLength().toString() + "," +
13: sub.getLength().toString() );
14: }
15: }
Chương trình sẽ in ra thơng tin gì?
Chọn một:
Đáp án đúng là: 4, 4
Vì: Chương trình tạo ra 2 đối tượng sooper thuộc lớp Super và sub thuộc lớp Sub.
Phương thức System.out.println sẽ in ra giá trị dạng chuỗi của phương thức getLenght().
Phương thức này là phương thức của lớp Super nên trả về giá trị 4.
Cần chú ý rằng phương thức getLenght của lớp Super khác phương thức GetLenght của lớp
Sub (do Java phân biệt chữ hoa và chữ thường).

Tham khảo: Giáo trình: [1] mục 5.2
Câu trả lời đúng là:
4,4
Câu 93 Một lớp kế thừa từ một lớp khác được gọi là gì?


Chọn một:
Đáp án đúng là: sub-class
Vì: Một lớp kế thừa từ một lớp khác được gọi là lớp con (sub-class).
Tham khảo: Giáo trình: [1] mục 5.2
Câu trả lời đúng là: sub-class
Câu 94 :Đoạn mã sau có lỗi biên dịch nào?
class Student {
}
public class Man extends Student{
public static void main(String[] args) {
Student m = new Man();
}
}
Chọn một:
Câu trả lời của bạn chưa chính xác
Đáp án đúng là: Có lỗi biên dịch: Khơng thể khai báo biến m thuộc lớp Man
Vì: Java cho phép tạo một biến thuộc lớp cha nhưng trỏ về lớp con. Tuy nhiên, biến đó khơng
được truy xuất tới các thành phần mở rộng của lớp con.
Tham khảo: Giáo trình: [1] mục 5.2
Câu trả lời đúng là:
Có lỗi biên dịch: Không thể khai báo biến m thuộc lớp Man
Câu 95 :Đoạn mã sau có kết quả như thế nào?
class Student {
private String name;

}
public class Man extends Student{
private String name;
public static void main(String[] args) {
Student m = new Student();
m.name="Peter";
}
}
Chọn một:
Đáp án đúng là: Có lỗi biên dịch
Vì:


+ Khơng thể truy xuất vào thuộc tính private từ bên ngồi lớp
Tham khảo: Giáo trình: [1] mục 5.2
Câu trả lời đúng là:
Có lỗi biên dịch
Câu 96 :Cho một phần của mã trong lớp Widget:
1: class Widget extends Thinggee {
2: private int widgetCount = 0;
3: int addWidget(){
4: widgetCount++;
5: return widgetCount;
6: }
7: String wName;
8: public Widget(int mx, String t){
9: wName = "I am Widget #" + addWidget();
10: }
11: }
Ý nghĩa của từ private trong dịng 2 là gì?

Đáp án đúng là: Nếu một lớp khác cố gắng truy xuất biến widgetCount thì lỗi sẽ xảy ra
Vì: Các thành phần private chỉ được phép truy cập từ bên trong lớp
Trường hợp phương án B chưa đủ vì các phương thức khác bên trong lớp cũng có thể truy
xuất tới nó.
Tham khảo: Giáo trình: [1] mục 3.3, 5.3
Câu trả lời đúng là:
Vì widgetCount là private, nên tất cả phương thức trong lớp Widget và các lớp khác đều có
thể truy xuất tới.
Câu 97 :Đọc đoạn mã sau
1: class TestSuper {
2: TestSuper(int i) { }
3: }
4: class TestSub extends TestSuper{ }
5: class TestAll {


6: public static void main (String [] args) {
7:new TestSub(TestSuper(3););
8: }
9: }
Khẳng định nào sau đây là đúng?
Câu trả lời của bạn chính xác
Đáp án đúng là: Lỗi biên dịch
Vì: Lỗi ở dòng 7.
Câu trả lời đúng là: Lỗi biên dịch
Câu 98: Đọc đoạn mã sau:
1: abstract class abstractIt {
2: abstract float getFloat ();
3: }
4: public class AbstractTest extends AbstractIt {

5: private float f1= 1.0f;
6: public float getFloat () {return f1;}
7: }
Kết quả khi chạy chương trình?
Đáp án đúng là: Biên dịch thành cơng
Vì:
+ Khai báo interface và triển khai lớp kế thừa từ interface
Tham khảo: Giáo trình: [1] mục 6.1.2
Câu trả lời đúng là: Biên dịch thành công

Câu 99:
interface A { public void methodA();}
abstract class B {
public void methodB(){ System.out.println("B");}
}
public class Test extends B implements A{
public void methodA(){ System.out.println("A"); }
public static void main(String[]args){


A a = new Test();a.methodA();
B b = new Test();b.methodB();
B b2 = new B(); b2.methodB();
}
}
Chương trình khi chạy sẽ in ra cái gì?
Đáp án đúng là: Lỗi biên dịch: B is abstract; cannot be instantiated
Vì: B là lớp abstract khơng cho phép tạo thể hiện.
Tham khảo: Giáo trình: [1] mục 6.1.3
Câu trả lời đúng là:

Lỗi biên dịch: B is abstract; cannot be instantiated

Câu 100: Đâu là khai báo đúng về interface?
Đáp án đúng là: interface C{public void print();}
Vì: Trong interface các phương thức mặc định là abstract do đó khơng được cài đặt phần thân và
luôn mặc định là public. Các phương thức trong interface không được khai báo với private.
Tham khảo: Giáo trình: [1] mục 6.1.3
Câu trả lời đúng là: interface C{public void print();}

Câu 101: Xét 2 câu sau:
Câu 1: Tất cả các phương thức trong lớp abstract phải khai báo là abstract?
Câu 2: Phương thức abstract là phương thức chưa được cài đặt phần thân.
Câu nào đúng? Câu nào sai?
Đáp án đúng là: Câu 1 sai, Câu 2 đúng
Vì:
+ Lớp trừu tượng có thể chứa các phương thức trừu tượng và các phương thức bình thường.
+ Phương thức trừu tượng thì khơng được triển khai trong khi khai báo
Tham khảo: Giáo trình: [1] mục 6.1.2
Câu trả lời đúng là: Câu 1 sai, Câu 2 đúng


×