Mục lục bài viết
Nội dung
- Lập trình truyền thống và lập trình hướng đối tượng
- Các khái niệm liên quan tới Lớp và Đối tượng
Lập trình truyền thống
Phương pháp tiếp cận của lập trình truyền thống
- Lập trình tuyến tính.
- Lập trình cấu trúc
Ưu điểm
- Chương trình rõ ràng, dễ hiểu, dễ theo dõi.
- Tư duy giải thuật rõ ràng.
Khuyết điểm
- Không hỗ trợ việc sử dụng lại mã nguồn.
- Khi thay đổi cấu trúc dữ liệu, phải thay đổi giải thuật.
- Phải giải quyết các mối quan hệ vĩ mô giữa các module phần mềm trong các dự án lớn.
Lập trình hướng đối tượng
Đặc điểm cơ bản
- Tập trung vào dữ liệu thay cho các hàm.
- Chương trình được chia thành các đối tượng độc lập.
- Cấu trúc dữ liệu được thiết kế sao cho đặc tả được các đối tượng.
- Dữ liệu được che giấu, bao bọc.
- Các đối tượng trao đổi với nhau thông qua các hàm.
- Chương trình được thiết kế theo hướng tiếp cận từ dưới lên.
Một số ưu điểm nổi bật
- Không có nguy cơ dữ liệu bị thay đổi tự do trong chương trình.
- Khi thay đổi cấu trúc dữ liệu của một đối tượng, không cần thay đổi mã nguồn của các đối tượng khác.
- Có thể sử dụng lại mã nguồn, tiết kiệm tài nguyên.
- Phù hợp với các dự án phần mềm lớn, phức tạp.
Khái niệm Lớp và Đối tượng
Khái niệm đối tượng (object) trong lập trình hướng đối tượng giống như một đối tượng cụ thể trong thế giới thực.
Mỗi đối tượng có các thuộc tính và các hành vi riêng.
- Thuộc tính (attribute) mô tả đặc điểm của đối tượng.
- Hành vi là phương thức hoạt động của đối tượng, gọi tắt là phương thức (method).
Ví dụ: Phân số
Đặc điểm
- Tử số
- Mẫu số
Thao tác
- Cộng, trừ, nhân, chia
- Tối giản
- Nghịch đảo
Ví dụ: xe hơi
- Màu trắng
- 4 cửa
- 4 bánh
- Hiệu Toyota
- Chạy tới
- Chạy lui
- Xe dừng
- ….
Các đối tượng có các đặc điểm (thuộc tính và phương thức) giống nhau được gom nhóm thành một lớp để phân biệt với các đối tượng khác và dễ quản lý.
=> Một lớp (class) là sự phân loại của các đối tượng hay là kiểu (type) của đối tượng.
Ví dụ:
− Các chiếc xe Toyota, Honda, Porsche thuộc lớp xe hơi.
- Các con chó giữ nhà, chó săn, chó kiểng thuộc lớp chó.
Như vậy Lớp là một khái niệm trừu tượng, dùng để chỉ một tập hợp các đối tượng có mặt trong hệ thống.
Lớp có thuộc tính và phương thức:
- Thuộc tính của lớp tương ứng với thuộc tính của đối tượng.
- Phương thức của lớp tương ứng với các hành động của đối tượng.
Một Lớp có thể có một trong các khả năng sau:
- Hoặc chỉ có thuộc tính, không có phương thức.
- Hoặc chỉ có phương thức, không có thuộc tính.
- Hoặc có cả thuộc tính và phương thức, trường hợp này là phổ biến nhất.
Lớp không có thuộc tính và phương thức nào là các lớp trừu tượng. Các lớp này không có đối tượng tương ứng.
Không gian tên (namespace)
- Một nhóm các lớp (classes) và giao diện (interfaces) được tổ chức thành một đơn vị quản lý theo hình thức không gian tên gọi là namespace.
- Lợi ích của namespace là tổ chức sắp xếp lại hệ thống thông tin các lớp trong dự án một cách khoa học, giúp cho việc theo dõi bảo trì dự án được tốt nhất.
Tính trừu tượng:
Lớp (Class) là một khái niệm trừu tượng, đối tượng là một thể hiện cụ thể của lớp.
Ví dụ:
- Bản thiết kế của chiếc xe hơi là lớp.
- Chiếc xe hơi được tạo ra từ bản thiết kế là đối tượng.
Tính trừu tượng:
- Từ những đối tượng giống nhau: trừu tượng hóa thành một lớp:
- Chỉ đưa ra các thuộc tính và phương thức cần thiết của đối tượng trong lập trình.
Ví dụ:
Tính đóng gói:
- Mỗi lớp được xây dựng để thực hiện một nhóm chức năng đặc trưng của riêng lớp đó.
- Tất cả mọi thao tác truy xuất vào thành phần dữ liệu từ đối tượng này qua đối tượng khác phải được thực hiện bởi các phương thức (method) của chính đối tượng chứa dữ liệu.
- Tính đóng gói cho phép dấu thông tin của đối tượng bằng cách kết hợp thông tin và các phương thức liên quan đến thông tin trong đối tượng.
Tính đóng gói:
Ví dụ:
Tính kế thừa:
- Cho phép xây dựng một lớp mới dựa trên các định nghĩa của một lớp đã có.
- Lớp đã có gọi là lớp Cha, lớp mới phát sinh gọi là lớp Con
- Lớp con kế thừa tất cả các thành phần của lớp Cha, có thể mở rộng các thành phần kế thừa và bổ sung thêm các thành phần mới.
Khái niệm này sẽ trình bày chi tiết ở chương sau.
Ví dụ:
21/03/2022 Ứng Dụng Miễn Phí