wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

ICTU LẬP TRÌNH HĐT - BÀI 3

Total questions: 30

Worksheet time: 44mins

Name
Class
Date
1.

Từ khóa nào được sử dụng để khai báo một lớp mới trong lập trình hướng đối tượng?

a)

object

b)

define

c)

new

d)

class

2.

Điểm khác biệt chính giữa lớp và đối tượng là?

a)

Lớp định nghĩa các thuộc tính và phương thức chung, đối tượng là thể hiện cụ thể của lớp đó.

b)

Lớp là trừu tượng, đối tượng là cụ thể.

c)

Đối tượng chỉ có thuộc tính, còn lớp chỉ có phương thức.

d)

Lớp và đối tượng là hoàn toàn giống nhau.

3-6.

Các phát biểu sau đây đúng hay sai?

3.

Phương thức static không cần tạo đối tượng để gọi

a)

ĐÚNG

b)

SAI

4.

Phương thức static không được phép truy cập các thuộc tính static

a)

ĐÚNG

b)

SAI

5.

Bắt buộc phải tạo đối tượng khi gọi phương thức là static

a)

ĐÚNG

b)

SAI

6.

Phương thức static được phép truy cập các thuộc tính static

a)

ĐÚNG

b)

SAI

7.

Đâu là khai báo đúng về lớp SinhVien?

a)

class SinhVien { }

b)

class public SinhVien { }

c)

public SinhVien { }

d)

public SinhVien class { }

8.

Một lớp trong Java có thể có bao nhiêu toán tử tạo lập?

a)

Chỉ một

b)

Chỉ hai

c)

Không giới hạn

d)

Tối đa là 3

9.

Một lớp có thể kế thừa từ bao nhiêu lớp trong Java?

a)

Một lớp

b)

Không giới hạn

c)

Không cho phép kế thừa lớp khác

d)

Hai lớp

10.

Một nhà hàng muốn xây dựng hệ thống phần mềm để giúp khách hàng đặt món ăn trực tuyến. Trong hệ thống này, có các đối tượng chính như sau:
Khách hàng (Customer); Món ăn (FoodItem); Đơn hàng (Order); Nhà bếp (Kitchen); Nhân viên giao hàng (Delivery)
và các phương thức xác định được như sau: Đặt hóa đơn: placeOrder(); chuẩn bị món: prepareOrder(); Phát hành hóa đơn: deliverOrder(); thêm món: addItem(); xem trạng thái hóa đơn: viewOrderStatus()
Hãy kéo thả các phương thức phù hợp vào các chỗ trống (____) trong hai phát biểu sau đây:

  1. Nhân viên giao hàng gọi phương thức ________ để thực hiện giao đơn hàng. Mỗi Order có phương thức ________ để thêm món ăn vào danh sách. Khách hàng có thể kiểm tra trạng thái đơn hàng bằng phương thức ________.

​ (a)  

  1. Khách hàng có thể gọi phương thức ________ để đặt hàng. Nhà bếp sẽ gọi phương thức ________ để chế biến món ăn sau khi nhận đơn hàng.

​ (b)  

Choose from the below words
deliverOrder(), addItem(), viewOrderStatus()
placeOrder(), prepareOrder()
done()
viewOrderStatus(), addItem(), prepareOrder()
11-14.

Các phát biểu sau đây đúng hay sai?

11.

Nếu một thuộc tính là protected, lớp con có thể truy cập trực tiếp nó.

a)

ĐÚNG

b)

SAI

12.

Nếu một thuộc tính là private, lớp con vẫn có thể truy cập thông qua getter.

a)

ĐÚNG

b)

SAI

13.

Nếu một thuộc tính là private, lớp con có thể truy cập trực tiếp nó

a)

ĐÚNG

b)

SAI

14.

Phương thức protected có thể được gọi bởi các lớp khác ngoài lớp cha và lớp con.

a)

ĐÚNG

b)

SAI

15.

Chương trình sau khi chạy cho ra kết quả gì?

class Rectangle {

    int width, height;


    Rectangle(int w, int h) {

        width = w;

        height = h;

    }


    int getArea() {

        return width * height;

    }

}


public class Main {

    public static void main(String[] args) {

        Rectangle r = new Rectangle(5, 10);

        System.out.println(r.getArea());

    }

}

a)

50

b)

5

c)

15

d)

510

16.

Chương trình sau đây in ra kết quả gì khi thực thi?

class Counter {

    int count;


    Counter() {

        count = 0;

    }


    void increment() {

        count++;

    }


    void display() {

        System.out.println(count);

    }

}


public class Main {

    public static void main(String[] args) {

        Counter c1 = new Counter();

        c1.increment();

        c1.increment();

        c1.display();

    }

}

a)

Lỗi cú pháp

b)

1

c)

2

d)

0

17.

Đoạn mã sau có lỗi gì khi biên dịch?

class Person {

    String name;


    Person(String name) {

        this.name = name;

    }


    void print() {

        System.out.println(name);

    }

}


public class Main {

    public static void main(String[] args) {

        Person p = new Person();

        p.print();

    }

}

a)

Không có lỗi

b)

Lỗi toán tử tạo lập chưa được định nghĩa

c)

Lỗi kiểu dữ liệu

d)

Lỗi cú pháp

18.

Trong đoạn mã sau, lệnh khai báo và tạo lập đối tượng của lớp Person là gì?

class Person {

    String name;

    int age;


    void display() {

        System.out.println("Name: " + name);

        System.out.println("Age: " + age);

    }

}


public class Main {

    public static void main(String[] args) {

        // Tạo đối tượng tại đây

    }

}

a)

Person p;

b)

Person p = Person();

c)

p = new Person();

d)

Person p = new Person();

19.

Chương trình sau cho ra kết quả gì khi thực thi?

class Animal {

    String type = "Mammal";

}


public class Main {

    public static void main(String[] args) {

        Animal a = new Animal();

        System.out.println(a.type);

    }

}

a)

undefined

b)

Mammal

c)

Animal

d)

null

20.

Phương thức setName trong đoạn mã sau được sử dụng như thế nào?

class Student {

    String name;


    void setName(String name) {

        this.name = name;

    }


    String getName() {

        return name;

    }

}


public class Main {

    public static void main(String[] args) {

        Student s = new Student();

        // Gọi phương thức setName tại đây

    }

}

a)

Student.setName("Alice");

b)

s.setName("Alice");

c)

setName("Alice");

d)

s.name("Alice");

21-23.

Xét lớp quản lý tài khoản chứa thuộc tính số dư (sodu) được che dấu (private). Giao diện công khai của lớp gồm 2 phương thức: nạp tiền (naptien(double sotien)), và xem số dư (double getsodu()).
Bên ngoài lớp này, giả sử trong lớp Main, chỉ có thể gọi .............(1)....... và.......... (2)......... tương ứng để nạp tiền và xem số dư, không thể truy cập trực tiếp thuộc tính ..........(3)........
Hãy điền thông tin thích hợp vào các chỗ trống (____). Cho trước thông tin có thể điền: naptien(số tiền cần nạp), getsodu(), sodu.


21.

Ô trống (1):

(a)  

22.

Ô trống (2):

(a)  

23.

Ô trống (3):

(a)  

24.

Phạm vi truy cập của một lớp có thể được chỉ định bằng các từ khóa nào?

a)

void, return, throws

b)

public, private, protected

c)

static, final, abstract

d)

int, float, string

25-28.

Các phát biểu sau đây đúng hay sai?

25.

Nguyên lý che dấu thông tin (Information Hiding) trong lập trình hướng đối tượng nhằm thiết lập phạm vi truy cập các thành phần bên trong lớp (private) để ngăn chặn các truy cập không mong muốn từ bên ngoài lớp vào các thành phần này

a)

ĐÚNG

b)

SAI

26.

Nguyên lý Encapsulation không áp dụng cho lập trình hướng đối tượng

a)

ĐÚNG

b)

SAI

27.

Nguyên lý bao bọc thông tin (Encapsulation) trong lập trình hướng đối tượng giúp đóng gói dữ liệu và hành vi liên quan vào trong một đơn vị duy nhất, gọi là lớp.

a)

ĐÚNG

b)

SAI

28.

Trong Java, từ khóa limited được sử dụng để thiết lập quyền các thành phần trong lớp.

a)

ĐÚNG

b)

SAI

29.

Toán tử tạo lập có thể có các tham số. Khi nào bạn sử dụng toán tử tạo lập có tham số?

a)

Khi bạn không cần khởi tạo đối tượng.

b)

Khi bạn cần khai báo biến.

c)

Khi bạn cần khởi tạo đối tượng với các giá trị cụ thể.

d)

Khi bạn cần tạo lớp.

30.

Xét chương trình đặt món ăn trực tuyến cho một nhà hàng. Các lớp đối tượng trong chương trình bao gồm: Khách hàng (Customer); Món ăn (FoodItem); Đơn hàng (Order); Nhà bếp (Kitchen); Nhân viên giao hàng (Delivery) Cho trước các hành động: tạo, nhận, chế biến, giao, kiểm tra, chứa Hãy kéo thả các hành động sao cho khớp với các phát biểu dưới đây:

  1. Khách hàng (Customer) _____ đơn hàng (Order). Một đơn hàng (Order) _____ danh sách các món ăn (FoodItem).
    (a)  

Khi khách hàng đặt món, Nhà bếp (Kitchen) _____ đơn hàng và _____ món. Sau khi chế biến xong, Nhân viên giao hàng (Delivery) _____ đơn và ____ cho khách. Khách hàng có thể _____ trạng thái đơn hàng (viewOrderStatus())
​ (b)  

Choose from the below words
tạo, chứa
kiểm tra, chế biến, nhận, giao, xem
chứa, tạo
xem, giao, nhận, chế biến, kiểm
31.

Đoạn mã sau đây sẽ in ra kết quả gì khi thực thi?

class Animal {

    public void makeSound() {

        System.out.println("Animal sound");

    }

}


class Dog extends Animal {

    public void makeSound() {

        System.out.println("Bark");

    }

}


class Main {

    public static void main(String[] args) {

        Animal a = new Dog();

        a.makeSound();

    }

}

a)

Null

b)

Bark

c)

Animal sound Bark

d)

Animal sound

32.

Chương trình sau đây chạy có lỗi không?

class Book {

    String title;


    void setTitle(String title) {

        this.title = title;

    }


    void printTitle() {

        System.out.println(title);

    }

}


public class Main {

    public static void main(String[] args) {

        Book b1 = new Book();

        b1.setTitle("Java Programming");

        b1.printTitle();

    }

}

a)

Lỗi cú pháp

b)

Lỗi tham số

c)

Không có lỗi

d)

Lỗi kiểu dữ liệu

33.

Chương trình sau đây khi chạy sẽ cho ra kết quả gì?

class A {

    void display() {

        System.out.println("Class A");

    }

}


class B extends A {

    void display() {

        System.out.println("Class B");

    }

}


class C extends B {

    void display() {

        System.out.println("Class C");

    }

}


public class Main {

    public static void main(String[] args) {

        A obj = new C();

        obj.display();

    }

}

a)

Class A

b)

Chương trình bị lỗi

c)

Class C

d)

Class B

34.

Đoạn mã sau đây sẽ in ra kết quả gì khi thực thi?

class Calculator {

    int add(int a, int b) {

        return a + b;

    }


    double add(double a, double b) {

        return a + b;

    }


    void show() {

        System.out.println("Calculator");

    }

}


public class Main {

    public static void main(String[] args) {

        Calculator c = new Calculator();

        c.add(5, 3);

        c.add(5.5, 3.5);

        c.show();

    }

}

a)

Lỗi cú pháp

b)

Calculator

c)

9.0

d)

8

35.

Khi một lớp không định nghĩa toán tử tạo lập tương minh, Java sẽ tự động cung cấp toán tử nào?

a)

Toán tử tạo lập có tham số

b)

Toán tử tạo lập mặc định

c)

Toán tử tạo lập công khai

d)

Toán tử tạo lập bảo vệ

36.

Khi khai báo một lớp, để các thuộc tính và phương thức có thể được truy cập từ mọi nơi trong chương trình, ta dùng từ khóa nào để biểu diễn phạm vi truy cập?

a)

default

b)

protected

c)

private

d)

public

37-40.

Các phát biểu sau đây đúng hay sai?

37.

Thuộc tính có phạm vi truy cập mặc định có thể được truy cập từ lớp hiện tại và các lớp con

a)

ĐÚNG

b)

SAI

38.

Thuộc tính có phạm vi truy cập mặc định sẽ chỉ cho phép truy cập đến nó trong lớp hiện thời.

a)

ĐÚNG

b)

SAI

39.

Thuộc tính có phạm vi vi truy cập mặc định có thể được truy cập từ tất cả các lớp

a)

ĐÚNG

b)

SAI

40.

Thuộc tính có phạm vi truy cập mặc định có thể được truy cập bởi các lớp trong cùng gói (package) với lớp chứa thuộc tính này

a)

ĐÚNG

b)

SAI

41-44.

Các phát biểu sau đúng hay sai?

41.

Đối tượng và lớp đối tượng là hai khái niệm tương tự nhau trong lập trình hướng đối tượng.

a)

ĐÚNG

b)

SAI

42.

Lớp con là lớp kế thừa từ lớp cha, còn gọi là lớp dẫn xuất

a)

ĐÚNG

b)

SAI

43.

Phương thức trong lớp dùng để định nghĩa hành vi của các đối tượng thuộc lớp

a)

ĐÚNG

b)

SAI

44.

Thuộc tính dữ liệu là một thành phần của lớp đối tượng

a)

ĐÚNG

b)

SAI

45-47.

Trong lớp TaiKhoan, phương thức .........(1)............ giúp kiểm soát việc cập nhật mật khẩu bằng cách áp dụng điều kiện ràng buộc (ví dụ: mật khẩu phải có ít nhất 6 ký tự). Điều này giúp đảm bảo rằng người dùng .........(2)....... đặt mật khẩu quá ngắn, qua đó có cải thiện bảo mật cho hệ thống. Nếu không có .........(3)....... này, người dùng có thể đặt mật khẩu yêu hoặc trống, dẫn đến lỗ hổng bảo mật.
Hãy điền các thông tin thích hợp vào các chỗ trống (______). Cho trước các thông tin có thể điền: setMatKhau(String matKhau), không thể, sự kiểm soát, getMatKhau()

45.

Ô trống (1)

(a)  

46.

Ô trống (2)

(a)  

47.

Ô trống (3)

(a)  

48.

Để gọi phương thức start của đối tượng Computer, cú pháp là gì?

class Computer {

    void start() {

        System.out.println("Computer is starting...");

    }

}

public class Main {

    public static void main(String[] args) {

        Computer c = new Computer();

        // Gọi phương thức start tại đây

    }

}

a)

Computer.start();

b)

c.start();

c)

start();

d)

Computer::start();

49.

Trong chương trình Java sau, phương thức nào sẽ được gọi khi khởi tạo đối tượng Car?

class Car {

    String model;

    Car() {

        model = "Unknown";

    }

    Car(String m) {

        model = m;

    }

    void showModel() {

        System.out.println(model);

    }

}

public class Main {

    public static void main(String[] args) {

        Car myCar = new Car("Toyota");

        myCar.showModel();

    }

}

a)

Car()

b)

main(String[] args)

c)

Car(String m)

d)

showModel()