You are on page 1of 3

Câu 1:

a. Nêu những đặc điểm chính của Lập trình hướng đối tượng? Cho ví dụ của từng đặc điểm. -->
nêu ra tính đa hình, tính kế thừa, tính đóng gói và tính trừu tượng kèm ví dụ

a.1 Trừu tượng hóa (Abstraction)

- Là quá trình loại bỏ đi các thông tin/tính chất cụ thể và giữ lại những thông tin/tính chất chung.

- Tập trung vào các đặc điểm cơ bản của thực thể, các đặc điểm phân biệt nó với các loại thực thể
khác.

- Phụ thuộc vào góc nhìn (Quan trọng trong ngữ cảnh này nhưng lại không có ý nghĩa nhiều trong
ngữ cảnh khác)

a.2 Đóng gói (Encapsulation)

- Che giấu, ẩn đi chi tiết thực hiện bên trong

- Cung cấp cho thế giới bên ngoài một giao diện

- Việc sử dụng không ảnh hưởng bởi chi tiết bên trong.

a.3. Thừa kế (Inheritance)

- Xếp hạng hay xếp thứ tự các mức trừu tượng vào một cấu trúc cây

- Các phần tử ở cùng cấp trong sơ đồ phân cấp thì có cùng mức trừu tượng hóa

a.4. Đa hình (polymorphism)

- Đa hình: “one name, many forms”

- Nạp chồng phương thức: phương thức cùng tên, nhưng hoạt động khác nhau

+ Add(int x, int y)

+ Add(float x, float y)

+ Add(float x, float y, float z)

- Ghi đè phương thức (Method Overriding)

+ Một Intern (thực tập sinh) là một Intern, đồng thời cũng có thể được xem là một Staff
(nhân viên)

+ Phương thức quẹt thẻ của Intern khác với phương thức quẹt thẻ của Staff

b. Thế nào là truyền tham chiếu và truyền tham trị trong Java? Cho ví dụ.
1. Truyền tham trị trong Java
Trong Java, khi gọi một phương thức và truyền một giá trị cho tham số là biến giá trị của phương
thức, được gọi là truyền tham trị. Việc thay đổi giá trị chỉ có hiệu lực trong phương thức được gọi,
không có hiệu lực bên ngoài phương thức. Truyền tham trị dành cho các tham số có kiểu dữ liệu
nguyên thủy.
---- ví dụ file Test.java
public class Test {
/*Hoán đổi 2 biến*/
public static void swap(int n1, int n2) {
int temp = n1;
n1 = n2;
n2 = temp;
}

public static void main(String[] args) {


int num1 = 1;
int num2 = 2;
System.out.println("Truoc khi goi ham swap, num1 = " + num1 + " va num2 = " + num2);
swap(num1, num2);
System.out.println("Sau khi goi ham swap, num1 = " + num1 + " va num2 = " + num2);
}
}

2. Truyền tham chiếu trong Java


Trong Java, khi gọi một phương thức và truyền tham chiếu cho tham số là biến tham chiếu của
phương thức, được gọi là truyền tham chiếu. Khi thay đổi nội dung của vùng nhớ mà tham số
tham chiếu tới trong phương thức thì bên ngoài phương thức cũng thấy được sự thay đổi đó. Tất
các phương thức có tham số là biến tham chiếu (đối tượng, mảng) đều là truyền tham chiếu.
----ví dụ file Test.java
public class Test {

/*Hoán đổi 2 biến*/


public static void swap(MyNumber n1, MyNumber n2) {
// Swap n1.i with n2.i
int temp = n1.i;
n1.i = n2.i;
n2.i = temp;
}

public static void main(String[] args) {


MyNumber n1 = new MyNumber();
n1.i=5;
MyNumber n2 = new MyNumber();
n2.i=7;
System.out.println("Truoc khi goi ham swap, n1.i = " + n1.i + " va n2.i = " + n2.i);
swap(n1, n2);
System.out.println("Sau khi goi ham swap, n1.i = " + n1.i + " va n2.i = " + n2.i);
}
}

class MyNumber{
int i;
}
c. Phân biệt lớp trừu tượng và lớp giao diện?
Lớp trừu trượng

- Cần có ít nhất một phương thức abstract, có thể chứa các phương thức instance

- Có thể chứa các phương thức protected và static

- Có thể chứa các thuộc Anh final và non-final

- Một lớp chỉ có thể kế thừa một lớp trừu tượng

Giao diện

- Chỉ có thể chứa chữ ký phương thức (danh sách các phương thức)

- Chỉ có thể chứa các phương thức public mà không có mã nguồn

- Chỉ có thể chứa các thuộc tính hằng

- Một lớp có thể thực thi (kế thừa) nhiều giao diện

d. Phân biệt kế tập và kế thừa?


Kế thừa
- Kế thừa tái sử dụng thông qua lớp.
+ Tạo lớp mới bằng cách phát triển lớp đã có
+ Lớp con kế thừa dữ liệu và hành vi của lớp cha
- Quan hệ "là một loại" ("is a kind of")
- Ví dụ: Ô tô là một loại phương tiện vận tải

Kết tập

- Kết tập tái sử dụng thông qua đối tượng.

+ Tạo ra lớp mới là tập hợp các đối tượng của các lớp đã có

+ Lớp toàn thể có thể sử dụng dữ liệu và hành vi thông qua các đối tượng thành phần

- Quan hệ "là một phần" ("is a part of")

- Ví dụ: Bánh xe là một phần của Ô tô

You might also like