- Là một phương pháp lập trình dựa trên khái niệm về lớp và đối tượng. Lập trình hướng đối tượng sử dụng tất cả tính năng của lập trình thủ tục. Tuy nhiên, OOP làm việc dựa trên phân tích đối tượng, thuộc tính và hành vi của đối tượng đó. + Đối tượng sẽ được thực thi sau khi nhận được thông điệp. + Cùng một thông báo hoạt động khác nhau (và phù hợp) khi được áp dụng cho các đối tượng khác nhau. + Một phương thức có thể hoạt động phù hợp với các loại dữ liệu khác nhau mà nó nhận được mà không cần tên phương thức riêng. + Giảm thời gian tạo đối tượng mới do có tính kế thừa + Ẩn thông tin (private) -> hoàn thiện hơn lập trình thủ tục - OOP bao gồm: + Lớp (class) Vd: Person, animal, transport, smartphone, student,... + Object ( đối tượng) Vd: lớp smartphone có các đối tượng như Samsung, Iphone, Oppo,.. + Kế thừa (inheritance): Vd: Lớp Person có các thuộc tính Name, Birth Day, Age. Lớp student được tạo ra kế thừa các thuộc tính của lớp Person + Đa hình (Polymorphism) Vd: trong lớp hình học, khi phương thức vẽ được gọi thì hình tròn và hình vuông thực hiện khác nhau. 2. Lớp và đối tượng (class & object) - Lớp (class): là một tập hợp các objects cùng loại. Là một kiểu dữ liệu, 1 khuôn mẫu giúp mô hình hóa các đối tượng thực tế. Class sẽ có các thuộc tính và các phương thức tương ứng với thuộc tính và hành động thực tế bên ngoài. - Đối tượng (object): một đối tượng có thể là bất cứ thứ gì. Một đối tượng sẽ được xem là một thực thể của lớp. Đối tượng bao gồm 2 thông tin: + Thuộc tính (attribute): thông tin, đặc điểm của đối tượng. + Phương thức (method/ behavior): là những hành vi mà đối tượng thực hiện Vd1: Ta có lớp Sinh_vien chứa các đối tượng sinh viên 1, sinh viên 2,.... Mỗi sinh viên có các thuộc tính như : tên, tuổi, MSSV, ngày sinh, lớp,.... Và các hành vi như: tra cứu điểm, đăng ký học phần, xem TKB,... 3. Kế thừa (Inheritance) - Tính kế thừa cho phép bạn tạo ra các lớp mới mở rộng hoặc là các lớp con của các lớp đã tồn tại. Các lớp con có thể kế thừa tất cả các thuộc tính của lớp gốc (lớp cha), hoặc có thể ghi đè lên các thuộc tính không phù hợp. Vd2: Ta có lớp Animal là lớp cha với các thuộc tính name, gender, lớp Dog và lớp Cat là các lớp con. Cả hai lớp con kế thừa thuộc tính name, gender từ lớp cha và mở rộng phương thức speak để cung cấp triển khai cụ thể cho mỗi loại động vật. 4. Đa Hình (Polymorphism) - Tính đa hình trong lập trình OOP cho phép các đối tượng/lớp khác nhau thực thi chức năng giống nhau theo những cách khác nhau. Vd3:Từ Vd2, khi chúng ta tạo các đối tượng từ các lớp Dog, Cat và gọi phương thức speak, chúng ta nhận được các kết quả phù hợp với loại động vật tương ứng. Dog sẽ kêu “woof woof” còn Cat sẽ kêu “meow moew”.