You are on page 1of 7

1. Lập trình cấu trúc là gì?

Lập trình cấu trúc hay lập trình thủ tục chia chương trình thành các phần nhỏ
hơn gọi là các hàm hay thủ tục. Chú trọng các thủ tục hoặc thuật toán để giải
quyết vấn đề trước, rồi mới quan tâm cấu trúc dữ liệu xử lý lưu trữ.
Chương trình = thuật toán+cấu trúc dữ liệu.
2. Lập trình hướng đối tượng là gì?
Lập trình hướng đối tượng (Object-oriented Programming: OOP) là phương
pháp lập trình dựa trên kiến trúc lớp và đối tượng.
OOP cho phép che giấu dữ liệu, hạn chế tối đa truy cập từ bên ngoài.
OOP cho phép tái sử dụng mã nguồn hiệu quả, tiết kiệm thời gian của lập trình
viên, cũng như giúp cho việc mở rộng chương trình, bảo trì trở nên dễ dàng hơn.
3. Trình bày ưu và khuyết điểm của lập trình cấu trúc và lập
trình hướng đối tượng ?
Lập trình cấu trúc Lập trình hướng đối tượng

 Cấu trúc rõ ràng, đơn  Che dấu dữ liệu (đóng gói)


giản, dễ hiểu
 Khả năng tái sử dụng mã
 Dễ bảo trì và quản lý nguồn cao (kế thừa)
Ưu
 Chương trình dễ dàng mở
điểm
rộng thông qua cơ chế kế
thừa (không tác động đến
chương trình khi cài thêm
plugins)
 Khó quản lý sự thay đổi  Phức tạp
dữ liệu
 Khó theo dõi luồng dữ liệu
Khuyết  Chương trình khó mở
 Không thích hợp các hệ thống
điểm rộng
nhỏ
 Khả năng tái sử dụng
mã nguồn hạn chế
4. Lớp trừu tượng là gì?
Lớp trừu tượng khai báo với từ khóa abstract đứng trước tên của lớp.
Lớp trừu tượng không thể dùng trực tiếp để tạo ra đối tượng mà phải viết một
lớp kế thừa của lớp trừu tượng đó.
Lớp trừu tượng cũng không cần có phương thức khởi tạo.
Lớp trừu tượng có thể có hoặc không có phương thức trừu tượng. Nhưng nếu
một lớp có ít nhất 1 phương thức trừu tượng phải được khai báo là lớp trừu
tượng.
Có thể tạo 1 lớp trừu tượng con kế thừa từ lớp trừu tượng.
Lớp kế thừa B (mà không tiếp tục là trừu tượng) từ 1 lớp trừu tượng A bắt buộc
phải viết cụ thể (override) tất cả các phương thức trừu tượng có trong lớp A.
5. Một số lỗi có thể gặp liên quan tới lớp trừu tượng:

Lỗi vì lớp HinhVe có phương thức trừu tượng tinhDienTich dù không phải lớp
trừu tượng.
Lỗi vì lớp con B không viết cụ thể tất cả phương thức của lớp cha A (chưa định
nghĩa phương thức hienThi()).
6. Giao diện là gì ?
Giao diện (interface) là một kiến trúc giống như lớp nhưng chỉ chứa các thuộc
tính static hoặc final, các phương thức trừu tượng, tĩnh.
Từ Java 8, giao diện cho phép khai báo các phương thức mặc định.
Từ Java 9, giao diện cho phép khai báo phương thức private chỉ được truy cập
trong interface, thường là từ các phương thức mặc định của interface.
Lớp hiện thực hoá giao diện phải hiện thực tất cả các phương thức của giao
diện, ngược lại nó sẽ thành lớp trừu tượng.
Chú ý sử dụng giao diện
▪ Không thể khai báo đối tượng từ giao diện.
▪ Giao diện không có phương thức khởi tạo.
▪ Giao diện không được phép kế thừa lớp.
▪ Các giao diện được phép kế thừa nhau.
7. Phân biệt lớp trừu tượng (abstract class) và giao diện
(interface) ?
Abstract class Interface
 Abstract class có phương  Interface chỉ có phương
thức abstract (không có thân thức abstract. Từ java 8, nó có
hàm) và phương thức non- thêm các phương thức default
abstract (có thân hàm). và static.
 Abstract class không hỗ trợ đa  Interface có hỗ trợ đa kế thừa
kế thừa.
 Interface chỉ có các biến static
 Abstract class có các biến final, và final.
non-final, static and non-static.
 Interface không thể cung cấp
 Abstract class có thể cung cấp nội dung cài đặt cho phương
nội dung cài đặt cho phương thức của abstract class.
thức của interface.
 Từ khóa interface được sử dụng
 Từ khóa abstract được sử dụng để khai báo interface.
để khai báo abstract class.

8. Các thành viên tĩnh sử dụng làm gì ? Nó hoạt động thế nào
trong lớp và trong quan hệ kế thừa ?
Thuộc tính tĩnh và phương thức tĩnh dùng chung cho tất cả các đối tượng lớp.
Chúng được sử dụng thông qua tên lớp mà không cần tạo đối tượng.
Trong phương thức tĩnh chỉ truy xuất được các thành viên tĩnh của lớp .
Phương thức tĩnh được phép kế thừa ở lớp con nhưng không được ghi đè.
9. Mặc định một lớp kế thừa lớp nào ? Trình bày vài phương thức
quan trọng lớp đó ?
Mặc định kế thừa lớp Object.
Một vài phương thức quan trọng:
+ equals(Object obj): kiểm tra 2 đối tượng có bằng nhau .
+ toString(): trả về chuỗi đại diện cho đối tượng.
+ getClass(): trả về lớp mà đối tượng tạo ra.
+ clone(): sao chép đối tượng ra đối tượng mới.
+ hashCode(): trả về mã băm của đối tượng
10. Đa hình là gì ? Nó được thể hiện thông qua cơ chế nào ?
Đa hình là khả năng của 1 đối tượng có thể thực hiện 1 tác vụ theo nhiều cách
khác nhau.
Đa hình được thể hiện thông qua cơ chế nạp chồng (overloading) và ghi đè
(overriding).
11. Phân biệt nạp chồng (overloading) và ghi đè (overriding) ? 
Overloading Overriding
 Thể hiện đa hình trong lúc  Thể hiện đa hình trong lúc
compile time runtime
 Thêm hành vi cho phương  Thay đổi hành vi hiện tại của
thức phương thức
 Giống tên.  Tên, danh sách tham số và kiểu
dữ liệu trả về phải giống nhau.
 Khác nhau về số lượng và kiểu
dữ liệu của tham số.  Phạm vi truy cập không được giới
hạn hơn phạm vi truy cập của
 Không được phép khác nhau
phương thức mặc định ghi đè.
kiểu dữ liệu trả về nhưng trùng
danh sách tham số.  Xảy ra ở 2 class có quan hệ kế
thừa
 Xảy ra trong cùng 1 class

12. Trình bày cơ chế hoạt động của phương thức khởi tạo trong
quan hệ kế thừa ?
Phương thức khởi tạo không được kế thừa ở lớp con.
Thứ tự các phương thức khởi tạo được gọi là từ các lớp cha trước rồi mới đến
lớp con.
Các phương thức khởi tạo lớp con phải gọi phương thức khởi tạo lớp cha, nếu
không Java sẽ ngầm định gọi phương thức khởi tạo không tham số của lớp cha.
13. Phân biệt từ khóa this và super ?
This Super
 Tham chiếu tới biến instance  Gọi trực tiếp phương thức khởi tạo
của lớp hiện tại (constructor) của lớp cha gần nhất
(đặt đầu tiên khi gọi)
 Gọi phương thức (method)
của lớp hiện tại  Gọi trực tiếp thuộc tính (field) của
lớp cha gần nhất
 Gọi phương thức khởi tạo
(constructor) của lớp hiện tại  Gọi trực tiếp phương thức (method)
của lớp cha gần nhất
 Trả về instance của lớp hiện
tại
 Được truyền như một tham
số trong phương thức
(method)
 Được truyền như một tham
số trong phương thức khởi
tạo (constructor)
14. Sao chép thuộc tính của đối tượng:
15. Phân biệt private, static, public, default, protected:

16. Cho biết phương thức khởi tạo là gì, được gọi khi nào và đặc
điểm của nó trong Java? 
Phương thức khởi tạo (constructor) là một phương thức đặc biệt được sử dụng
để khởi tạo một đối tượng, được gọi đầu tiên khi tạo đối tượng. 
Đặc điểm phương thức khởi tạo trong Java:
▪ Tên phương thức trùng tên lớp. 
▪ Không có kiểu dữ liệu trả về.

You might also like