1. Trang chủ
  2. » Thể loại khác

BỘ MÔN CÔNG NGHỆ PHẦN MỀM. BÀI: ĐỐI TƯỢNG VÀ LỚP

41 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đối Tượng Và Lớp
Tác giả Nguyễn Khắc Huy
Trường học Đại Học Khoa Học Tự Nhiên TPHCM
Chuyên ngành Công Nghệ Phần Mềm
Thể loại bài
Năm xuất bản 2014
Thành phố TPHCM
Định dạng
Số trang 41
Dung lượng 0,93 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nhắc lại□ Mục tiêu của việc thiết kế 1 phần mềm: o Tính tái sử dụng reusability: thiết kế các thành phần có thể được sử dụng trong nhiều phần mềm khác nhau o Tính mở rộng extensibility:

Trang 1

Nguyễn Khắc Huy

Đối tượng và Lớp

BMCNPM – ĐHKHTN TPHCM

Trang 3

Nhắc lại

□ Mục tiêu của việc thiết kế 1 phần mềm:

o Tính tái sử dụng (reusability): thiết kế các

thành phần có thể được sử dụng trong nhiều phần mềm khác nhau

o Tính mở rộng (extensibility): hỗ trợ các ins.

Trang 4

Quá trình thiết kế phần mềm

□ Mục tiêu: xây dựng nên 1 phần mềm

□ Quá trình thiết kế: chia phần mềm và thiết kế

theo từng phần, từng component

□ Trừu tượng hóa: rất cần thiết trong thiết kế Cụ thể: bỏ qua những chi tiết của component, quan tâm các thành phần ở mức trừu tượng.

□ Xác định các component: top-down

□ Tích hợp: bottom-up Gắn kết các components nhỏ lại với nhau

Trang 5

Các cách tiếp cận trong thiết kế

□ Thiết kế theo hàm/thủ tục:

o Tìm ra các hàm/thủ tục để hoàn tất các yêu cầu

o Kết quả là hệ thống cấu trúc và mối quan hệ giữa các

hàm/thủ tục

□ Thiết kế theo module

o Phân tích và tìm ra các module bao gồm thành phần dữ liệu và các hàm/thủ tục liên quan

o Cách thực hiện dựa vào việc gom nhóm các thành phần tương tự nhau về ý nghĩa, phạm vi…

Trang 6

Thiết kế theo hướng đối tượng

□ Trừu tượng hóa dữ liệu và các hàm/thủ tục liên quan

□ Chia hệ thống ra thành các lớp/đối tượng

□ Mỗi lớp/đối tượng có các tính năng và

hành động chuyên biệt

□ Các lớp có thể được sử dụng để tạo ra nhiều đối tượng cụ thể

Trang 7

Trừu tượng hóa

Trang 8

Lập trình hướng đối tượng

Lập trình hướng đối tượng là phương pháp lập trình dựa trên kiến trúc lớp (class)

và đối tượng (object)

Trang 9

Đối tượng (object) là gì?

□ Đối tượng trong thế giới thực: là một thực thể cụ thể mà ta có thể sờ, nhìn thấy hay cảm nhận được.

□ Đối tượng phần mềm: dùng để biểu diễn các đối tượng trong thế giới thực.

□ Mỗi đối tượng bao gồm 2 thành phần:

thuộc tính và hành động

Trang 10

Khái niệm đối tượng và lớp

□ Chương trình là cỗ máy phức tạp.

□ Cấu thành từ nhiều loại vật liệu.

□ Vật liệu cơ bản: cấu trúc, hàm.

□ Đã đủ tạo ra chương trình tốt?

Vật liệu mới: Đối tượng!!

Trang 11

Khái niệm đối tượng và lớp

□ Đặc trưng của đối tượng:

Bao gồm cả dữ liệu và xử lý.

Thuộc tính (attribute): dữ liệu của đối tượng.

Phương thức (method): xử lý của đối tượng.

□ Cấu trúc đối tượng:

Hộp đen: thuộc tính trong, phương thức ngoài.

Trang 12

Khái niệm đối tượng và lớp

□ Vì sao là hướng đối tượng?

Hướng thủ tục (procedural oriented).

– Lấy hành động làm trung tâm.

– Hàm là xương sống.

- Lặt (Rau) - Ướp (Cá)

- Luộc (Rau) - Kho (Cá)

- Nấu (Cơm)

Hướng đối tượng (object oriented).

– Lấy dữ liệu làm trung tâm.

– Đối tượng là xương sống.

Trang 13

Khái niệm đối tượng và lớp

□ Khái niệm lớp:

Person1:

Name: Peter.

Age: 25.

Hair Color: Brown.

Eye Color: Brown.

Job: Worker.

Person2:

Name: Thomas.

Age: 50.

Hair Color: White.

Eye Color: Blue.

Tập hợp đối tượng có cùng thuộc tính và phương thức

Bản mô tả đối tượng Kiểu của đối tượng

Trang 14

Đối tượng trong LTHĐT

□ Tách biệt giữa giao tiếp và cài đặt cụ thể

Implementation

interface

Làm cái gì?

Làm bằng cách nào?

Trang 15

Đối tượng trong LTHĐT

□ Đối tượng là 1 thực thể phần mềm bao bọc các

thuộc tính mô tả trạng thái và các phương thức liên quan.

□ Kiểu dữ liệu lớp đối tượng: class

Class có các tính chất sau:

o Đóng gói: chứa đựng dữ liệu và các hàm/thủ tục liên quan

o Che giấu dữ liệu: các thực thể phần mềm khác không can thiệp trực tiếp vào dữ liệu bên trong được mà phải thông qua các phương thức cho phép

Trang 16

Một cách thể hiện điển hình

□ Che giấu dữ liệu và các “giải thuật” cụ thể

ở bên trong lớp (class)

public (methods)

private (data)

lớp đối tượng

Trang 18

Một số phương pháp xác định đối tượng

□ Theo Abbott & Booch:

o Tìm các danh từ hay cụm danh từ

o Không phải tất cả danh từ đều là đối tượng

□ Theo Coad & Yourdon:

Trang 19

Ví dụ

□ Xác định các đối tượng

o Hệ thống âm nhạc lưu trữ các bài hát với tên bài, ca sĩ hát, người sáng tác, xếp hạng, loại bài hát…

Trang 20

Lớp đối tượng C++

□ Sử dụng đối tượng trong C++:

Khai báo lớp: file h

class <Tên lớp>

{

<Khai báo thuộc tính>;

<Khai báo phương thức>;

};

Cài đặt phương thức: file cpp

– Như cài đặt hàm, kèm theo tên lớp.

Tạo đối tượng:

– Như khai báo biến, kiểu dữ liệu là lớp.

Truy xuất thành phần đối tượng:

– Như truy xuất thành phần cấu trúc.

Trang 23

private Hẹp Bên trong lớp.

public Rộng Bên trong lẫn bên ngoài lớp protected Vừa Bên trong lớp và lớp kế

thừa.

Trang 24

Phạm vi hoạt động (scope)

□ Dr Guru:

Các thành phần trong lớp nên có tầm vực như sau:

– Thuộc tính có tầm vực private để hạn chế truy xuất.

– Phương thức có tầm vực public để cung cấp tính năng.

Trang 25

Phạm vi hoạt động (scope)

□ Toán tử :: :

Lớp 5A và 5B đều có sinh viên Lê Phương.

Làm sao để phân biệt?

– Trường hợp 1: đứng trong lớp 10A1.

– Trường hợp 2: đứng ngoài 2 lớp.

Toán tử :: dùng kèm tên lớp.

– <Tên lớp>::<Tên thành phần>

Lớp 5B Lớp 5A

Trang 27

// Cài đặt bên trong lớp.

} };

PhanSo PhanSo::cong(PhanSo p) {

// Cài đặt bên ngoài lớp.

}

Trang 28

Toán tử phạm vi ::

□ Con trỏ this:

Mỗi lớp đều có con trỏ this.

Đại diện cho đối tượng đang gọi phương thức.

Hữu dụng trong một số trường hợp.

PhanSo p1; p1.ganTuSo(3);

PhanSo p2; p2.ganTuSo(5); }

Trang 30

double sapXep (int aMang[], int iKichThuoc);

PhanSo PhanSo::cong (PhanSo p);

Giá trị trả về không thuộc chữ ký hàm!!

Chương trình có thể có nhiều hàm cùng tên!!

Trang 31

Nạp chồng hàm

□ Những trường hợp nạp chồng hàm nào không hợp lệ?

1 int tinhToan(int a, int b);

2 int tinhToan(int x, int y);

3 int tinhToan(int a, float b);

4 float tinhToan(int u, int v);

5 int tinhToan(int a, long b);

Trang 32

Tóm tắt

□ Khái niệm đối tượng và lớp:

Đối tượng: một thành phần tạo nên chương trình.

Đối tượng bao gồm thuộc tính và phương thức.

Lớp: tập hợp đối tượng cùng thuộc tính phương thức.

Trang 33

Tách biệt khai báo và định nghĩa

return iNgay;

} };

// trong file header H

class Ngay {

return iNgay;

}

Trang 34

Tách thành phần khai báo và cài đặt

□ File header (interface): Ngay.h

Chứa các thông tin về khai báo của lớp

Ngày

□ File xử lý (implementation): Ngay.cpp

Chứa các cài đặt về xử lý của lớp Ngày

Trang 38

 Tính giá trị, đạo hàm, nguyên hàm.

 Cộng, trừ, nhân, chia với đơn thức khác.

Trang 39

Bài tập

□ Bài tập 2.4:

Thông tin một học sinh bao gồm:

 Họ tên.

 Điểm văn, toán.

Xây dựng lớp học sinh cho phép thực hiện các thao tác:

 Nhập, xuất.

 Lấy họ tên, điểm văn, toán.

 Gán giá trị cho họ tên, điểm văn, điểm toán.

 Tính điểm trung bình.

 Xếp loại theo tiêu chí

– Giỏi (>= 8.0), Khá (>= 7.0).

– Trung bình (>= 5.0), Yếu (< 5).

Trang 40

 Lấy phần tử tại vị trí nào đó.

 Gán giá trị cho phần tử tại vị trí nào đó.

 Tìm phần tử nào đó trong mảng.

 Sắp xếp tăng, giảm.

Trang 41

Lời cảm ơn

□ Nội dung được xây dựng dựa trên slide trình bày của Thầy Đinh Bá Tiến, Thầy Nguyễn Minh Huy.

Ngày đăng: 25/09/2022, 13:25

HÌNH ẢNH LIÊN QUAN

Một cách thể hiện điển hình - BỘ MÔN CÔNG NGHỆ PHẦN MỀM. BÀI: ĐỐI TƯỢNG VÀ LỚP
t cách thể hiện điển hình (Trang 16)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w