Câu hỏi phỏng vấn Lập trình hướng đối tượng (OOP)

Nguồn kiến thức toàn diện cho cuộc phỏng vấn Lập trình hướng đối tượng (OOP).

Lập trình hướng đối tượng là gì?

OOP (Object-Oriented Programming) là một mô hình lập trình để giải quyết vấn đề xoay quanh khái niệm "Đối tượng". Đối tượng có thể được xem như là các thể hiện của thực thế ở thế giới thực như là lớp, chúng chứa một số đặc điểm và hành vi được chỉ định trong lớp mẫu.

Ở các ngôn ngữ đơn giản, một lớp có thể là một bản mẫu, dựa trên nó để tạo ra các đối tượng. Thế nên Đối tượng có thể được xem như là một thể hiện của một lớp và thỉnh thoảng nó có thể được gọi là "thực thể". Các thuật ngữ đặc trưng ám chỉ đối tượng đó là gì, và hành vi chỉ đối tượng đó như thế nào.

Ví dụ, ta tạo mô hình OOP với một chiếc xe:

  • Lớp: mẫu xe cụ thể như Audi A4, BMW I8, Maruti Suzuki Vitara Brezza,...
  • Đối tượng: Bất kỳ chiếc xe cụ thể nào, như xe của bạn
  • Đặc trưng: Màu sắc của xe? Số khung xe của bạn là gì?
  • Hành vi: Xe chạy như thế nào? Làm thế nào để chuyển số?

Đặc trưng có thể hiểu là dữ liệu, thuộc tính còn hành vi là chức năng, phương thức trong ngôn ngữ lập trình.

Khái niệm “đối tượng” cho phép mô hình OOP dễ dàng truy cập, sử dụng và sửa đổi dữ liệu thực thể và phương thức, tương tác với các đối tượng khác và xác định các phương thức trong thời gian chạy (trong quá trình thực thi chương trình). Điều này mang lại ý nghĩa cho mô hình OOP và làm cho nó trở nên đa dạng trong việc triển khai.

Trên thực tế, mô hình OOP rất phổ biến, đến nỗi nhiều ngôn ngữ lập trình được sử dụng rộng rãi nhất đều hỗ trợ và sử dụng mô hình Lập trình hướng đối tượng hoặc OOP này, chẳng hạn như Java, C++, Python, C#, v.v.