Hướng dẫn

Sơ lược về phương pháp lập trình hướng đối tượng

20 / 12 / 2016

Lập trình hướng đối tượng (Object-Oriented Programming, OOP) là một khái niệm có lẽ không còn xa lạ với các lập trình viên ngày nay, và là một kĩ năng không thể thiếu đối với mỗi lập trình viên.

Trong bài này, chúng ta cùng nhau điểm lại sơ lược một chút về khái niệm lập trình hướng đối tượng.

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

Lập trình hướng đối tượng (tiếng Anh: Object-Oriented Programming, hay còn được viết tắt là OOP) là một phương pháp lập trình sử dụng khái niệm "đối tượng" để tương tác trong chương trình, trong đó, "đối tượng" là vật thể có thể lưu trữ dữ liệu, và có thể hiện một số hành vi riêng của riêng nó. 

Đối tượng trong OOP có đặc điểm như sau:

  • Bản thân bên trong có lưu trữ các trường dữ liệu (field), mà có thể được truy xuất hay thay đổi, hay còn gọi là đặc tính (properties).
  • Có các hành vi (method) riêng của nó để thể hiện ra bên ngoài.

Ví dụ:

  • Con mèo: có một số đặc tính như màu lông (đen, trắng, vàng ...), cân nặng, ... ngoài ra, còn có một số hành vi biểu hiện ra ngoài như: kêu meo meo, biết đi, biết nằm, biết chui vào lọ, biết bắt chuột...
  • Cái máy giặt: có một số đặc tính như màu sắc, kiểu giặt (lồng đứng, lồng ngang), các thông số điều chỉnh giặt... ngoài ra, còn có một số khả năng như: giặt quần áo, ngâm quần áo, sấy quần áo, thông báo khi giặt xong...

Các tính chất của lập trình hướng đối tượng

Lập trình hướng đối tượng có 4 tính chất sau:

  • Tính trừu tượng (abstraction): Đây là khả năng của chương trình bỏ qua hay không chú ý đến một số khía cạnh của thông tin mà nó đang trực tiếp làm việc lên, nghĩa là nó có khả năng tập trung vào những cốt lõi cần thiết. Mỗi đối tượng phục vụ như là một "động tử" có thể hoàn tất các công việc một cách nội bộ, báo cáo, thay đổi trạng thái của nó và liên lạc với các đối tượng khác mà không cần cho biết làm cách nào đối tượng tiến hành được các thao tác. Tính chất này thường được gọi là sự trừu tượng của dữ liệu.
    Tính trừu tượng còn thể hiện qua việc một đối tượng ban đầu có thể có một số đặc điểm chung cho nhiều đối tượng khác như là sự mở rộng của nó nhưng bản thân đối tượng ban đầu này có thể không có các biện pháp thi hành. Tính trừu tượng này thường được xác định trong khái niệm gọi là lớp trừu tượng hay lớp cơ sở trừu tượng.
  • Tính đóng gói (encapsulation) và che giấu thông tin (information hiding): Tính chất này không cho phép người sử dụng các đối tượng thay đổi trạng thái nội tại của một đối tượng. Chỉ có các phương thức nội tại của đối tượng cho phép thay đổi trạng thái của nó. Việc cho phép môi trường bên ngoài tác động lên các dữ liệu nội tại của một đối tượng theo cách nào là hoàn toàn tùy thuộc vào người viết mã. Đây là tính chất đảm bảo sự toàn vẹn của đối tượng.
  • Tính đa hình (polymorphism): Thể hiện thông qua việc gửi các thông điệp (message). Việc gửi các thông điệp này có thể so sánh như việc gọi các hàm bên trong của một đối tượng. Các phương thức dùng trả lời cho một thông điệp sẽ tùy theo đối tượng mà thông điệp đó được gửi tới sẽ có phản ứng khác nhau. Người lập trình có thể định nghĩa một đặc tính (chẳng hạn thông qua tên của các phương thức) cho một loạt các đối tượng gần nhau nhưng khi thi hành thì dùng cùng một tên gọi mà sự thi hành của mỗi đối tượng sẽ tự động xảy ra tương ứng theo đặc tính của từng đối tượng mà không bị nhầm lẫn.
  • Tính kế thừa (inheritance): Đặc tính này cho phép một đối tượng có thể có sẵn các đặc tính mà đối tượng khác đã có thông qua kế thừa. Điều này cho phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại. Tuy nhiên, không phải ngôn ngữ định hướng đối tượng nào cũng có tính chất này.

Khi nào thì sử dụng lập trình hướng đối tượng?

Lập trình hướng đối tượng đã trở thành tiêu chuẩn chung trong quá trình xây dựng và phát triển phần mềm khá nhiều năm. Do đó, hầu hết bất cứ lúc nào có thể phát triển phần mềm thì đều có thể sử dụng lập trình hướng đối tượng. Việc ứng dụng OOP không phải là một điều bắt buộc, tuy nhiên, nếu các bạn mới muốn xin việc thì việc lập trình OOP là một điều tối thiểu bắt buộc cần phải biết.

Nếu bạn còn mới với lập trình hướng đối tượng, hay học mãi không nắm được lập trình hướng đối tượng như thế nào, bạn có thể đăng kí khóa học về lập trình hướng đối tượng với Java tại KodeMate để nắm được mọi thứ về phương pháp lập trình này.


Quay lại danh sách
CHIA SẺ BÀI VIẾT
KodeMate
Chat với chúng tôi Chat với chúng tôi - kodemate.com