02.thiet kelop

18
LTUDQL 2 ©HCMUS . - 1 - Thiết kế lớp Bùi Tấn Lộc [email protected]

Upload: dung-dinh

Post on 29-Jul-2015

237 views

Category:

Education


0 download

TRANSCRIPT

Page 1: 02.thiet kelop

LTUDQL 2

©HCMUS. - 1 -

Thiết kế lớp

Bùi Tấn Lộc

[email protected]

Page 2: 02.thiet kelop

LTUDQL 2

©HCMUS.

1.Phương pháp luận

• Bước 1: phân tích• Xác định trong ngữ cảnh bài toán có bao nhiêu đối tượng và các đối

tượng này thuộc về những lớp nào

• Bước 2: thiết kế• Thiết kế các lớp đã được xác định ở bước 1 (trong trường hợp các lớp đó

không có sẵn). Việc thiết kế chia thành 2 giai đoạn:•Thiết kế thành phẫn dữ liệu

•Thiết kết thành phần xử lý.

• Bước 3: cài đặt• Là sự thể hiện bản thiết kế bằng một ngôn ngữ lập trình cụ thể. Trong

phạm vi môn học này chúng ta sẽ sử dụng ngôn ngữ VB.NET

- 2 -

Page 3: 02.thiet kelop

LTUDQL 2

©HCMUS.

2.Thiết kế lớp

• Giai đoạn 1: Thiết kế thành phần dữ liệu• Xác định lớp đối tượng có những thông tin nào và kiểu dữ liệu của từng

thông tin cụ thể

• Giai đoạn 2: Thiết kế thành phần xử lý• Còn được gọi là thiết kế các phương thức cho lớp

• Xác định các khả năng mà các đối tượng của lớp phải có

• Người ta chia các khả năng thành 5 nhóm chính:1. Phương thức khởi tạo

2. Phương thức cung cấp thông tin

3. Phương thức cập nhật thông tin

4. Phương thức xử lý, tính toán

5. Phương thức kiểm tra

- 3 -

Page 4: 02.thiet kelop

LTUDQL 2

©HCMUS.

2.1 Phương thức khởi tạo

• Có nhiệm vụ thiết lập các thông tin ban đầu cho đối tượng. Trong nhóm này lại chia thành các loại sau:• Phương thức khởi tạo mặc định

• Phương thức khởi tạo khi biết đầy đủ thông tin

• Phương thức khởi tạo khi biết một số thông tin (các thông tin còn lại được khởi tạo mặc định)

• Phương thức khởi tạo dựa vào một đối tượng khác

• Phương thức nhập

• Ghi chú: ngoài phương thức nhập các phương thức khởi tạo còn lại thường được thay thế bằng hàm tạo

- 4 -

Page 5: 02.thiet kelop

LTUDQL 2

©HCMUS.

2.2 Phương thức cung cấp thông tin

• Có nhiệm vụ cung cấp thông tin của đối tượng cho thế giới bên ngoài, giúp cho đối tượng giao tiếp với chương trình và các đối tượng khác

• Ghi chú: Một số phương thức cung cấp thông tin thường được thay thế bằng đoạn lệnh Get trong câu lệnh Property

- 5 -

Page 6: 02.thiet kelop

LTUDQL 2

©HCMUS.

2.3 Phương thức cập nhật thông tin

• Có nhiệm vụ cập nhật lại thông tin của đối tượng trong quá trình sống của đối tượng

• Ghi chú: Một số phương thức cập nhật thông tin thường được thay thế bằng đoạn lệnh Set trong câu lệnh Property

- 6 -

Page 7: 02.thiet kelop

LTUDQL 2

©HCMUS.

2.4 Nhóm các phương thức xử lý tính toán

• Có nhiệm vụ xử lý tính toán bên trong đối tượng hay giữa đối tượng này với đối tượng khác

- 7 -

Page 8: 02.thiet kelop

LTUDQL 2

©HCMUS.

2.5 Nhóm các phương thức kiểm tra

• Có nhiệm vụ thực hiện kiểm tra về mặt ràng buộc dữ liệu hay kiểm tra tính chất nào đó của đối tượng.

- 8 -

Page 9: 02.thiet kelop

LTUDQL 2

©HCMUS.

3. Ví dụ

• Thiết kế lớp DiemOxy trong mặt phẳng Oxy• Phương pháp luận?

• Giai đoạn 1?

• Giai đoạn 2?

- 9 -

Page 10: 02.thiet kelop

LTUDQL 2

©HCMUS.

3.1 Thiết kế thành phần dữ liệu

• Tung độ _x kiểu số thực

• Hoàng độ _y kiểu số thực

- 10 -

Page 11: 02.thiet kelop

LTUDQL 2

©HCMUS.

3.2 Thiết kế thành phần xử lý3.2.1 Nhóm các phương thức khởi tạo

• Phương thức khởi tạo mặc định (giá trị hoành độ, tung độ được khởi tạo mặc định)

• Phương thức khởi tạo khi biết đầy đủ thông tin (khi biết chính xác giá trị hoành độ, tung độ)

• Phương thức khởi tạo khi biết một số thông tin (trong ngữ cảnh bài toán này không áp dụng)

• Phương thức khởi tạo dựa vào một đối tượng DiemOxy khác

• Phương thức nhập

- 11 -

Page 12: 02.thiet kelop

LTUDQL 2

©HCMUS.

3.2.2 Nhóm các phương thức cung cấp thông tin

• Phương thức cung cấp thông tin hoành độ _x (đoạn lệnh Get trong câu lệnh Property)

• Phương thức cung cấp thông tin tung độ _y (đoạn lệnh Set trong câu lệnh Property)

• Phương thức xuất

- 12 -

Page 13: 02.thiet kelop

LTUDQL 2

©HCMUS.

3.2.3 Nhóm các phương thức cập nhật thông tin

• Phương thức cập nhật tung độ _x (đoạn lệnh Set trong câu lệnh Property)

• Phương thức cập nhật tung độ _y (đoạn lệnh Set trong câu lệnh Property)

• Phương thức dịch chuyển điểm về phía bên trái 1 đơn vị

• Phương thức dịch chuyển điểm về phía bên phải 1 đơn vị

• Phương thức dịch chuyển điểm về phía bên trên 1 đơn vị

• Phương thức dịch chuyển điểm về phía bên dưới 1 đơn vị

•…

- 13 -

Page 14: 02.thiet kelop

LTUDQL 2

©HCMUS.

3.2.4 Nhóm các phương thức xử lý tính toán

• Phương thức tính khoảng cách hoành độ _x giữa 2 điểm

• Phương thức tính khoảng cách tung độ _y giữa 2 điểm

• Phương thức tính khoảng cách giữa 2 điểm

- 14 -

Page 15: 02.thiet kelop

LTUDQL 2

©HCMUS.

3.2.5 Nhóm các phương thức kiểm tra

• Phương thức kiểm tra điểm có nằm trong cung phần tư thứ 1 không

• Phương thức kiểm tra điểm có nằm trong cung phần tư thứ 2 không

• Phương thức kiểm tra điểm có nằm trong cung phần tư thứ 3 không

• Phương thức kiểm tra điểm có nằm trong cung phần tư thứ 4 không

- 15 -

Page 16: 02.thiet kelop

LTUDQL 2

©HCMUS.

4. Cài đặt

• Xem demo, source code DiemOxyApp

- 16 -

Page 17: 02.thiet kelop

LTUDQL 2

©HCMUS.

5.Áp dụng

• Thiết kế và cài đặt lớp TamGiac trong mặt phẳng Oxy

• Thiết kế và cài đặt lớp DuongTron trong mặt phẳng Oxy

- 17 -

Page 18: 02.thiet kelop

LTUDQL 2

©HCMUS.

6.Câu hỏi

- 18 -