You are on page 1of 4

What is OOP?

Object (đối tượng)

Class (lớp)

Encapsulation (đóng gói)


- Là hạn chế truy xuất trực tiếp đến các field trong class.
- Các field chỉ có thể truy cập từ bên trong class hiện tại hoặc class dược kế
thừa.
Inheritance (kế thừa)
- Một clas
Polymorphism (đa hình)
- Một đối tượng nó nhiều "hình dạng".
- Một hành động có thể thực hiện bằng nhiều cách khác nhau.
Static member (thành viên tĩnh)
Static class (lớp tĩnh)
 Chỉ chứa các thành phần tĩnh (biến tĩnh, phương thức tĩnh).
 Không thể khai báo, khởi tạo 1 đối tượng thuộc lớp tĩnh.
 Ràng buộc các thành phần bên trong lớp phải là static.
Abstract class (Lớp trừu tượng)
- Như một class thường nhưng có thể khai báo được abstract method.
- Không thể khởi tạo một abstract class.
Interface
- Chỉ có thể chứa abstract method vs hằng.

Singleton design pattern


- Đọc trong word
COMPARE
Class vs Object
- Một lớp là khuôn mẫu để tạo các đối tượng, trong khi đối tượng là một
instance của một lớp.
- Một lớp là một thực thể logic, trong khi một đối tượng là một thực thể vật

- Một lớp không phân bổ không gian bộ nhớ; mặt khác, một đối tượng phân
bổ không gian bộ nhớ.
Static class vs normal class
- Các lớp tĩnh chứa các đối tượng tĩnh không thể khởi tạo nhiều lần.
-
Abstract class vs normal class
- Không thể new được một abstract class (tạo được nhưng mà tạo
anonymous object)
Abstract class vs interface
Giống nhau:
- Khi khởi tạo thì phải implement hết lại tất cả abstract method có trong nó.
Khác nhau:
- Abstract class: variable, method, abstract method. Interface: abstract
method, constant.
- Nếu class Laptop kế thừa abstract class là Product thì em có thể nói Laptop
là một (is a) Product. Còn khi một Laptop implement interface là Printable thì ta
nói Laptop có (has a) những tính năng của cái interface Printable này.
- Khi 1 class kế thừa một abstract class thì những hàm đã cứng như vậy rồi
không thay đổi đc. Còn 1 interface có thể có nhiều class implement qua đó giúp nó
thay đổi hành vi trong runtime khi sử dụng.
- Abstract class có thể tái sử dụng code (vì nó cũng gần như một class). Còn
interface thì chỉ có abstract method (không có bất kì implement).
- Thêm một method: interface phải đi tới từng cái class implement nó để
thêm. Còn abstract class khi thêm một default method thì có thể dùng đc ngay
- Access modifier: Interface không có và luôn là public (do một abstract
class trong interface phải được implement).
- Constructor, destructor: interface không có, abstract class có những không
new đc và thường được các class bên dưới gọi bằng super().
Khi nào sử dụng interface, abstract class?
- Interface: có nhiều class có cùng một method có cùng tham số và kiểu trả
về.
- Abstract class: dùng để tạo ra một thứ chung chung.
Tại sao abstract class cũng có abstract method mà lại cần thêm interface?
- Do tính chất kế thừa trong code (1 class chỉ được kế thừa một và chỉ một
class những 1 class có thể kế thừa nhiều interface, 1 interface có thể kế thừa nhiều
interface khác).

You might also like