Student Ktlt Chapter1 Oop No Case Study

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Student Ktlt Chapter1 Oop No Case Study as PDF for free.

More details

  • Words: 751
  • Pages: 69
Nhập môn KTLT (tiếp) Nguyễn Diệu Hương [email protected] [email protected]

4. Giới thiệu về lập trình hướng đối tượng (Deitel, Chương 3, 9 - 11)

4.1. Thế nào là OOP?

Một số khái niệm trong OOP • Lớp (class): giống như một struct • Đối tượng (object): là một thực thể của class • Thuộc tính (attribute): các thành phần của một lớp • Phương thức (method) hay hành vi (behavior): các hàm thành phần của một lớp • Che giấu dữ liệu: hạn chế quyền truy cập tới một vài thành phần của đối tượng • Giao diện chung: các thành phần của một đối tượng cho phép truy cập từ bên ngoài.

4.2. Class và Object

Ví dụ

Ví dụ

Hàm const double getWidth() const; double getLength() const; double getArea() const;

Định nghĩa hàm thành viên int Rectangle::setWidth(double w) { width = w; }

Con trỏ tới đối tượng • Có thể định nghĩa con trỏ tới một đối tượng: Rectangle *rPtr;

rPtr = &otherRectangle; rPtr->setLength(12.5); cout << rPtr->getLength() << endl;

Cấp phát động một đối tượng

Lớp Rectangle với các hàm inline

4.3. Hàm tạo và hàm hủy

Hàm tạo - Constructor • Hàm thành viên được tự động gọi khi một đối tượng được tạo ra

Truyền tham số vào hàm tạo – Chỉ rõ các tham số trong nguyên mẫu hàm: Rectangle(double, double); – Sử dụng các tham số trong định nghĩa hàm: Rectangle::Rectangle(double w, double len) { width = w; length = len; }

Hàm hủy • Hàm thành viên được tự động gọi khi giải phóng một đối tượng • Tên hàm hủy là ~ClassName, ví dụ: ~Rectangle

InventoryItem.h (Version 2)

InventoryItem.h (Version 2)

InventoryItem.h (Version 2)

Mảng đối tượng InventoryItem inventory[3] = { InventoryItem(“Hammer”, 6.95, 12), InventoryItem(“Wrench”, 8.75, 20), InventoryItem(“Plier”, 3.75, 10) };

Ngôn ngữ mô hình hóa UML • UML = Unified Modeling Languages. • UML cung cấp một tập các biểu đồ chuẩn để miêu tả một cách hình ảnh các hệ thống hướng đối tượng

Sơ đồ lớp UML • Một biểu đồ UML cho một lớp có 3 phần

Tên lớp Các biến thành phần Các hàm thành phần

Ví dụ: Lớp Rectangle

Kí pháp chỉ định truy cập của UML • Trong UML, chỉ định một thành phần private bằng dấu trừ (-) và một thành phần public bằng dấu cộng (+)

Ký pháp kiểu dữ liệu của UML • Để chỉ định kiểu dữ liệu của một biến thành phần, đặt dấu hai chấm trước tên kiểu dữ liệu và sau tên biến. - width : double - length : double

Ký pháp kiểu tham biến UML • Để chỉ định kiểu dữ liệu của một tham biến của hàm: đặt dấu hai chấm trước tên kiểu dữ liệu và sau tên biến + setWidth(w : double)

Kí pháp kiểu dữ liệu trả về của hàm • Để chỉ định kiểu dữ liệu trả về của hàm, đặt dấu hai chấm trước tên của kiểu dữ liệu và sau danh sách tham biến. + setWidth(w : double) : void

Lớp Rectangle

Thể hiện hàm tạo và hàm hủy

4.4. Class và Object (tiếp)

Biến thành phần static

3 thực thể của lớp Tree, nhưng chỉ một biến objectCount

• Hàm có thể được gọi như sau:

4.5. Hàm tạo copy

Hàm tạo copy • Là hàm tạo đặc biệt, được sử dụng khi tạo một đối tượng với giá trị giống như một đối tượng khác cùng lớp.

Hàm tạo copy

Hàm tạo copy

Hàm tạo do người lập trình định nghĩa SomeClass::SomeClass(const SomeClass &obj) { value = new int; *value = *obj.value; }

Hàm tạo do người lập trình định nghĩa

Hàm tạo do người lập trình định nghĩa • thêm từ khóa const SomeClass::SomeClass(const SomeClass &obj)

4.6. Chồng toán tử

Chồng toán tử

• Nguyên mẫu:

• Kích hoạt: object1.operator=(object2); object1 = object2;

Giá trị trả về

Con trỏ this • this: con trỏ được định nghĩa trước, có thể được sử dụng bởi mọi hàm trong lớp • Luôn trỏ đến thực thể (đối tượng) của lớp mà hàm của nó đang được gọi

Ví dụ

4.6. Một số mối quan hệ giữa các lớp

Quan hệ phối hợp (Aggregation) • Aggregation: một lớp là một thành phần của một lớp khác.

Ví dụ

Quan hệ giữa Instructor, Course, TextBook

Quan hệ tổng hợp (Composition) • Đối tượng “bị sở hữu” là dành riêng/độc quyền cho đối tượng chứa nó

Composition Name

Person

Aggregation Address

Related Documents