Định nghĩa đối tượng là gì

Đối tượng (object) trong thế giới thật là một thực thể (entity) cụ thể mà ta có thể nhìn thấy, sờ và cảm nhận được. Mỗi đối tượng đều có các thông tin và các hoạt động của riêng nó. Ví dụ:

Đối tượngThông tinHoạt động
Con chóTênSủa
 Màu sắcVẫy đuôi
 Giống chóĂn
 TuổiChạy
Tài khoảnTên tài khoảnĐăng nhập
 Số tài khoảnRút tiền
 Ngân hàngGửi tiền
 Số dưKiểm tra số dư

Là một thực thể phần mềm được sử dụng bởi máy tính, dùng để mô tả, biểu diễn một đối tượng ở thế giới thực. Một đối tượng phần mềm bao bọc các thuộc tính và các phương thức bên trong nó. Quá trình trừu tượng hóa giúp biểu diễn đối tượng trong thế giới thực thành đối tượng phần mềm.

Trong thực tế, có nhiều đối tượng có cùng loại, có cùng thuộc tính và phương thức. Chúng ta có thể tạo ra lớp (class) để định nghĩa các thuộc tính và các phương thức chung cho tất cả các đối tượng của cùng một loại nào đó.

Có thể hiểu một lớp là một thiết kế (blueprint) hay mẫu (prototype) cho các đối tượng cùng kiểu. Một đối tượng là một thể hiện cụ thể của một lớp. Mỗi thể hiện có thể có những thuộc tính thể hiện khác nhau.

Trong lập trình hướng đối tượng, lớp là một khái niệm tĩnh, được định nghĩa bởi lập trình viên. Còn đối tượng là một khái niệm động, nó chiếm một vùng nhớ trong bộ nhớ. Khi khai báo và khởi tạo, đối tượng được tạo ra để lưu trữ dữ liệu, xử lý theo yêu cầu được thiết kế và bị hủy bỏ khi hết nhiệm vụ.

Trong thế giới thực: các đối tượng có thể tương tác được với nhau thông qua ngôn ngữ, tin nhắn, cử chỉ,…

Trong lập trình: các đối tượng giao tiếp với nhau bằng cách gửi thông điệp.

Những thông điệp trong lập trình có thể là lời gọi hàm hoặc truyền dữ liệu giữa các đối tượng,…

Bài trước và bài sau trong môn học

Các đối tượng là điểm cốt lõi để hiểu về công nghệ hướng đối tượng. Bây giờ hãy nhìn xung quanh và bạn sẽ thấy được rất nhiều ví dụ về đối tượng của thế giới thực: con chó, cái bàn, ti vi, xe đạp.

Đối tượng trong thế giới thực có chung hai đặc điểm: Tất cả đều có trạng thái và hành vi. Chó có trạng thái (tên, màu sắc, loại, tình trạng đói hay no) và hành vi (sủa, tha đồ vật đến, vẫy đuôi). Xe đạp cũng có trạng thái (bánh răng, nhịp bàn đạp hiện tại, tốc độ hiện tại) và hành vi (thay đổi bánh răng, thay đổi nhịp bàn đạp, sử dụng phanh). Việc xác định trạng thái và hành vi của các đối tượng trong thế giới thực là một cách tuyệt vời để bắt đầu nghĩ đến các khái niệm của lập trình hướng đối tượng.

Bây giờ ta hãy dành ra một vài phút để quan sát các đối tượng của thế giới thực xung quanh bạn. Đối với mỗi đối tượng mà bạn nhìn thấy, hãy tự đặt ra cho mình hai câu hỏi: “Đối tượng này có thể ở trong những trạng thái nào?” và “Đối tượng này có thể thưc hiện những hành vi nào?” Hãy chắc chắn rằng bạn đã ghi lại những quan sát của mình. Khi làm thế, bạn sẽ nhận thấy rằng các đối tượng trong thế giới thực có sự khác nhau về độ phức tạp; chiếc đèn bàn có thể chỉ có 2 trạng thái (đang bật và đang tắt) và hai hành vi (bật và tắt), nhưng chiếc radio có thể có thêm các trạng thái khác (đang bật, đang tắt, âm lượng hiện tại, kênh hiện tại) và hành vi (bật, tắt, tăng âm lượng, giảm âm lượng, tìm kiếm, dò kênh và điều chỉnh). Bạn cũng sẽ nhận thấy rằng một số đối tượng này có thể chứa các đối tượng khác. Những quan sát về thế giới thực này đều được chuyển vào trong thế giới của lập trình hướng đối tượng.

Một đối tượng phần mềm.

Về mặt khái niệm thì các đối tượng phần mềm cũng tương tự như các đối tượng trong thế giới thực: Nó cũng bao gồm các trạng thái và hành vi liên quan. Một đối tượng lưu trữ trạng thái của nó trong các trường (có thể được gọi là biến trong một số ngôn ngữ lập trình) và thể hiện các hành vi của mình ra bên ngoài thông qua các phương thức (có thể được gọi là hàm ở trong một số ngôn ngữ lập trình). Các phương thức thao tác trên các trạng thái bên trong của một đối tượng và được dùng như là cơ chế chính cho sự giao tiếp giữa đối tượng-với-đối tượng. Việc ẩn đi
trạng thái bên trong và bắt buộc tất các các tương tác đều phải được thực hiện thông qua các phương thức của một đối tượng được biết đến như là sự bao gói dữ liệu (data encapsulation) – một nguyên lý cơ bản của lập trình hướng đối tượng.

Hãy lấy một chiếc xe đạp làm ví dụ:


Chiếc xe đạp được mô hình hóa như là một đối tượng phần mềm.

Bằng cách mô tả các trạng thái (tốc độ hiện tại, nhịp đạp hiện tại, bánh răng hiện tại) và cung cấp các phương thức để thay đổi các trạng thái đó, thì một đối tượng vẫn kiểm soát được cách thức mà thế giới bên ngoài được phép sử dụng nó. Ví dụ, nếu chiếc xe đạp chỉ có 6 bánh răng, một phương thức để thay đổi bánh răng có thể từ chối bất cứ giá trị nào nhỏ hơn 1 hoặc lớn hơn 6.

Việt gói các đoạn mã vào trong từng đối tượng phần mềm riêng lẻ sẽ mang lại một số lợi ích, bao gồm:

  1. Mô-đun hóa: Mã nguồn của một đối tượng có thể được viết và duy trì độc lập với mã nguồn của các đối tượng khác. Một khi được tạo ra thì một đối tượng có thể dễ dàng được truyền đi bên trong hệ thống.
  2. Che giấu thông tin: Bằng cách chỉ tương tác với các phương thức thì các chi tiết được triển khai bên bên trong của một đối tượng sẽ được ẩn đi đối với thế giới bên ngoài.
  3. Tái sử dụng mã: Nếu một đối tượng đã tồn tại (có thể được viết bởi một nhà phát triển phần mềm khác), bạn có thể sử dụng đối tượng đó trong chương trình của mình. Điều này cho phép các chuyên gia triển khai/ kiểm thử/ gỡ lỗi các đối tượng phức tạp và có nhiệm vụ riêng biệt, rồi sau đó bạn có thể tin tưởng để chạy trong mã riêng của mình.
  4. Ghép nối và gỡ lỗi một cách dễ dàng: Nếu một đối tượng cụ thể phát sinh vấn đề, đơn giản bạn chỉ cần loại bỏ nó khỏi ứng dụng của mình và cắm một đối tượng khác vào để thay thế. Điều này cũng tương tự như khi sửa các vấn đề cơ khí trong thế giới thực. Nếu một chốt bị vỡ, hãy thay thế nó, không phải toàn bộ bộ phận máy.

Bài được dịch từ nguồn  docs.oracle.com

Trans-team: PhúDĐ, NgọcNT, ĐạtDĐ, SơnĐH, HàĐT, ChàmNM

Sinh viên FPT Aptech Hà Nội

Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Video liên quan

Chủ đề