Please enable JavaScript.
Coggle requires JavaScript to display documents.
OOP - Object-Oriented Programming - Coggle Diagram
OOP - Object-Oriented Programming
Tính đóng gói (Encapsulation)
: Cho phép gom dữ liệu và các phương thức xử lý dữ liệu thành một đơn vị (lớp/đối tượng) và ẩn các chi tiết triển khai bên trong. Tính đóng gói giúp bảo vệ dữ liệu khỏi sự truy cập trực tiếp từ bên ngoài thông qua các phương thức getter và setter.
Gom nhóm dữ liệu và phương thứ
c: Đóng gói dữ liệu (thuộc tính) và các phương thức xử lý dữ liệu đó vào trong một đơn vị duy nhất gọi là lớp (class).
Kiểm soát quyền truy cập:
Sử dụng các mức độ truy cập (access modifiers) như private, protected, public để quy định mức độ hiển thị và khả năng truy cập của các thành phần trong lớp.
private: Chỉ có thể truy cập trong nội bộ lớp đó
protected: Có thể truy cập trong lớp đó và các lớp con kế thừa từ nó
public: Có thể truy cập từ bất kỳ đâu
Ẩn thông tin triển khai:
Che giấu các chi tiết triển khai bên trong đối tượng, chỉ cho phép tương tác với đối tượng thông qua giao diện công khai (public interface).
Đây là khái niệm về việc che giấu những chi tiết bên trong của một đối tượng và chỉ cho phép tương tác với đối tượng thông qua một giao diện được định nghĩa rõ ràng.
Bảo vệ dữ liệu
: Thường thiết lập các thuộc tính của lớp ở dạng private và cung cấp các phương thức công khai (
getter/setter
) để đọc và ghi dữ liệu, giúp kiểm soát được luồng dữ liệu và đảm bảo tính toàn vẹn dữ liệu
ví dụ
Tính kế thừa (Inheritance)
: Cho phép một lớp (lớp con) có thể kế thừa các thuộc tính và phương thức từ một lớp khác (lớp cha). Tính kế thừa giúp tái sử dụng mã nguồn và xây dựng mối quan hệ phân cấp giữa các lớp.
Tái sử dụng mã nguồn
: Lớp con có thể dùng lại thuộc tính và phương thức của lớp cha mà không cần định nghĩa lại.
Mở rộng chức năng:
Lớp con có thể thêm thuộc tính và phương thức mới.
Ghi đè (Override):
Lớp con có thể cung cấp triển khai mới cho phương thức đã có trong lớp cha.
Quan hệ "is-a":
Kế thừa thiết lập mối quan hệ "là một" giữa lớp con và lớp cha (ví dụ: Ô tô là một Phương tiện).
thể hiện qua từ khóa extends, ví dụ class "con người" là một động vật
Đa cấp kế thừa:
Trong nhiều ngôn ngữ, kế thừa có thể xảy ra qua nhiều cấp (A kế thừa từ B, B kế thừa từ C).
Đặc điểm của đa cấp kế thừa
Chuỗi thứ bậc sâu: Tạo ra mối quan hệ phân cấp sâu giữa các lớp.
Tái sử dụng nhiều cấp: Cho phép tái sử dụng mã nguồn từ nhiều lớp tổ tiên.
Đóng gói dữ liệu theo nhiều cấp: Mỗi lớp kế thừa tập trung vào một khía cạnh cụ thể của thực thể.
Tính đa hình (Polymorphism)
: Cho phép các đối tượng thuộc các lớp khác nhau có thể hiểu cùng một thông điệp theo các cách khác nhau. Tính đa hình thể hiện qua việc ghi đè phương thức (method overriding) và nạp chồng phương thức (method overloading).
Nạp chồng (Overloading)
Định nghĩa: Là việc dùng cùng một tên phương thức nhưng với các tham số khác nhau (số lượng hoặc kiểu dữ liệu) trong cùng một lớp. Máy tính tự chọn cách dùng phù hợp khi bạn gọi.
Ý nghĩa: Giúp gọi một hành động theo nhiều cách linh hoạt.
Ghi đè (Overriding)
Định nghĩa: Là khi lớp con thay đổi cách hoạt động của một phương thức đã có ở lớp cha. Khi gọi, cách của lớp con được dùng thay vì lớp cha.
Ý nghĩa: Giúp lớp con có hành vi riêng, khác biệt.
Lấy ví dụ về Ghi đè trong php
class Animal{
public function sound(){
return "tiếng sủa của động vật"
}
}
class Dog extend Animal{
//Định nghĩa phương thức sound thuộc lớp Dog ghi đè vào lớp Animal để tạo ra tiếng sủa của chó
public function sound(){
return "chó sủa go go";
}
}
Xảy ra giữa lớp cha và lớp con (liên quan đến kế thừa).
Lấy ví dụ về Nạp Chồng trong php
Gọi lại cùng một hàm nhưng tham số đầu vào khác nhau , không liên quan đến việc kế thừa
Tính trừu tượng (Abstraction)
: Cho phép tập trung vào những đặc điểm quan trọng của đối tượng và bỏ qua những chi tiết không cần thiết. Tính trừu tượng được thể hiện thông qua các lớp trừu tượng (abstract class) và giao diện (interface).
Lớp trừu tượng (Abstract Classes)
Lớp trừu tượng là một lớp không thể khởi tạo trực tiếp (tức là không thể tạo đối tượng từ nó), mà chỉ có thể được sử dụng làm lớp cha để các lớp con kế thừa.
Nó thường chứa các phương thức trừu tượng (abstract methods) – những phương thức chỉ được khai báo mà không có phần thân (không có mã thực thi). Lớp con phải triển khai (cung cấp mã thực thi) cho các phương thức này.
Giao diện là một tập hợp các phương thức trừu tượng, đóng vai trò như một "hợp đồng"(contract) mà các lớp triển khai phải tuân theo. Một lớp có thể triển khai nhiều giao diện và phải cung cấp mã thực thi cho tất cả các phương thức trong giao diện.
Giao diện giúp đảm bảo tính nhất quán trong cách sử dụng các đối tượng.
Session
Session (phiên làm việc) là một khái niệm trong lập trình web, dùng để lưu trữ thông tin về người dùng trong suốt thời gian họ tương tác với một ứng dụng web. Dưới đây là một số điểm quan trọng về session:
Định nghĩa
Session là một cơ chế cho phép lưu trữ dữ liệu tạm thời trên máy chủ cho một người dùng cụ thể trong suốt thời gian họ truy cập vào ứng dụng web. Mỗi phiên làm việc thường bắt đầu khi người dùng truy cập vào trang web và kết thúc khi họ đóng trình duyệt hoặc sau một khoảng thời gian không hoạt động.
Mục đích
Session được sử dụng để lưu trữ thông tin như:
Thông tin đăng nhập của người dùng (username, password).
Giỏ hàng trong các trang thương mại điện tử.
Thông tin tùy chỉnh cho người dùng (như sở thích, ngôn ngữ).
Dữ liệu tạm thời khác mà cần thiết cho quá trình tương tác.
Cách hoạt động
Khi một session được khởi tạo, máy chủ sẽ tạo ra một ID phiên (session ID) duy nhất và gửi nó cho trình duyệt của người dùng thông qua cookie hoặc URL. Mỗi lần người dùng gửi yêu cầu đến máy chủ, session ID sẽ được gửi kèm theo để máy chủ có thể xác định phiên làm việc của người dùng đó và truy cập vào dữ liệu đã lưu trữ.
Lợi ích
Bảo mật: Session giúp bảo vệ thông tin nhạy cảm bằng cách không lưu trữ chúng trên trình duyệt của người dùng.
Quản lý trạng thái: Giúp duy trì trạng thái của người dùng trong các ứng dụng web không có trạng thái (stateless).
Tùy chỉnh trải nghiệm người dùng: Cho phép lưu trữ thông tin cá nhân hóa cho từng người dùng.
Ví dụ sử dụng
Cookie
Cookie là một đoạn dữ liệu nhỏ được lưu trữ trên máy tính của người dùng bởi trình duyệt web khi họ truy cập vào một trang web. Cookie được sử dụng để ghi nhớ thông tin về người dùng và các tùy chọn của họ trong suốt phiên làm việc hoặc giữa các lần truy cập khác nhau. Dưới đây là một số điểm quan trọng về cookie:
Chức năng của Cookie
Lưu trữ thông tin người dùng: Cookie có thể lưu trữ thông tin như tên đăng nhập, mật khẩu, sở thích, và các tùy chọn cá nhân hóa khác.
Theo dõi hoạt động: Cookie có thể được sử dụng để theo dõi hành vi của người dùng trên trang web, giúp các nhà phát triển hiểu rõ hơn về cách người dùng tương tác với trang.
Quản lý phiên làm việc: Cookie có thể được sử dụng để duy trì trạng thái đăng nhập của người dùng, cho phép họ không cần phải đăng nhập lại mỗi khi truy cập trang.
Cấu trúc của Cookie
Tên: Tên của cookie.
Giá trị: Giá trị của cookie, thường là thông tin mà bạn muốn lưu trữ.
Thời gian sống: Thời gian mà cookie sẽ tồn tại trên máy tính của người dùng. Sau thời gian này, cookie sẽ tự động bị xóa.
Đường dẫn: Đường dẫn mà cookie có thể được gửi đến. Điều này xác định các trang nào trên trang web có thể truy cập cookie.
Miền: Miền mà cookie có thể được gửi đến. Điều này xác định các tên miền nào có thể truy cập cookie.
Các loại Cookie
Session Cookies: Cookie tạm thời chỉ tồn tại trong suốt phiên làm việc của trình duyệt. Chúng sẽ bị xóa khi người dùng đóng trình duyệt.
Persistent Cookies: Cookie tồn tại lâu hơn và được lưu trữ trên máy tính của người dùng cho đến khi hết hạn hoặc bị xóa bởi người dùng.
First-party Cookies: Cookie được tạo ra bởi trang web mà người dùng đang truy cập.
Third-party Cookies: Cookie được tạo ra bởi một trang web khác (không phải trang web mà người dùng đang truy cập), thường được sử dụng cho quảng cáo và theo dõi.
website chứa các câu hỏi phỏng vấn
https://kungfutech.edu.vn/