Phương pháp lập trình hướng đối tượng• Phương pháp lập trình hướng đối tượng bao bọc encapsulate dữ liệu thuộc tính - attribute và các chức năng phương thức – behavior vào bên trong lớp
Trang 1Lập trình Ứng dụng quản lý 1
Chương 03:
Đối tượng và lớp đối tượng
GV Trương Phước Lộc
08/2017
Khoa CNTT-ĐH.KHTN
Nội dung
1 Khái niệm đối tượng
2 Khái niệm lớp đối tượng
3 Ngôn ngữ C#
4 Con trỏ this
5 Chia sẻ dữ liệu & Phạm vi hoạt động
6 Hàm khởi tạo
7 Bài tập
2
GV Trương Phước Lộc
Trang 21 Phương pháp lập trình hướng đối tượng
• Phương pháp lập trình hướng đối tượng bao
bọc (encapsulate) dữ liệu (thuộc tính - attribute)
và các chức năng (phương thức – behavior) vào
bên trong lớp (class)
Data
Khoa CNTT-ĐH.KHTN
1 Đối tượng
• Chúng ta thấy các đối tượng xung quanh
như người, đồ vật,…
• Mỗi đối tượng có
▫ Các thuộc tính (thông tin về nó)
▫ Các phương thức (các hành động nó có thể
thực hiện)
• Các đối tượng có thể tác động qua lại bằng
cách tạo, thay đổi, sử dụng các đối tượng
khác
Trang 31 Đối tượng
• Cấu trúc đối tượng:
Hộp đen: thuộc tính trong, phương thức ngoài.
Bốn nhóm phương thức:
Nhóm tạo hủy.
Nhóm truy xuất thông tin.
Nhóm xử lý nghiệp vụ.
Nhóm toán tử.
Data
Khoa CNTT-ĐH.KHTN
1 Đối tượng
• 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.
- Rau.Lặt - Cá.Ướp
- Rau.Luộc - Cá.Kho
- Cơm.Nấu
Các bước nấu ăn Verb Object
Lặt Rau Ướp Cá Nấu Cơm Luộc Rau Kho Cá
Thay đổi
tư duy lập trình!!
Trang 42 Lớp đối tượng
• 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.
Job: Teacher.
Human:
Name.
Age.
Hair Color.
Eye Color.
Job.
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
Khoa CNTT-ĐH.KHTN
2 Lớp đối tượng
• Lớp (class) là một khuôn mẫu (template) của
một thực thể (entity) dùng để tạo ra các đối
tượng (object)
8
Data
Trang 53 Khai báo lớp trong C#
Khoa CNTT-ĐH.KHTN
3 Khai báo đối tượng trong C#
Trang 64 Con trỏ this
• Con trỏ this được sử dụng duy nhất trong phạm vi nội tại
của lớp (class)
• Miền giá trị của con trỏ this là địa chỉ của chính đối
tượng đang gọi thực hiện.
Khoa CNTT-ĐH.KHTN
4 Con trỏ this
This được sử dụng
để gọi thuộc tính
bên trong lớp
Trang 74 Con trỏ this
This được sử dụng
để gọi phương thức bên trong lớp
Khoa CNTT-ĐH.KHTN
4 VD1: Điểm Oxy
• Dữ liệu: x, y kiểu số thực
• Phương thức: nhập, xuất, khoảng cách 2 điểm
14
GV Trương Phước Lộc
Trang 84 VD2: Điểm trong Oxyz
• Dữ liêu: x, y, z kiểu số thực
• Phương thức: nhập, xuất, khoảng cách 2 điểm
15
GV Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
4 VD3: Phân số
• Dữ liệu: tử số, mẫu số kiểu số nguyên
• Phương thức: nhập, xuất
16
GV Trương Phước Lộc
Trang 94 VD4: Đơn thức
• Ví dụ đơn thức: 2x^3, x, x^5
• Dữ liệu: hệ số và số mũ kiểu số nguyên
• Phương thức: nhập, xuất, tính giá trị
17
GV Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
4 VD5: một số ví dụ thực tế
• Moodle
• StackOverflow
• Dữ liệu: theo thực tế
• Phương thức: nhập, xuất
18
GV Trương Phước Lộc
Trang 104 VD6: TamGiac
• Dữ liệu: có 3 đỉnh kiểu DiemOxy
• Phương thức: nhập, xuất, chu vi, trọng tâm
19
GV Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
4 VD7: Danh sách số nguyên
• Dữ liệu: mảng số nguyên
• Phương thức: nhập, xuất, thêm tại i, xoá tại i,
sửa tại i
20
GV Trương Phước Lộc
Trang 114 VD8: Danh sách phân số
• Dữ liệu: mảng phân số
• Phương thức: nhập, xuất, thêm tại i, xoá tại i,
sửa tại i
21
GV Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
5 Phạm vi hoạt động
• Có 3 phạm vi hoạt động cơ bản sau
▫ private
▫ protected
▫ public
22
Trang 125 Phạm vi hoạt động
• Các thuộc tính và phương thức được khai báo
với phạm vi là Private thì chỉ được sử dụng nội
tại bên trong lớp
• Các thuộc tính và phương thức được khai báo
với phạm vi là Protected thì chỉ được sử dụng
nội tại bên trong lớp và các lớp được dẫn xuất
từ lớp đó
• Các thuộc tính và phương thức được khai báo
với phạm vi là Public thì được sử dụng cả bên
trong và bên ngoài lớp
Khoa CNTT-ĐH.KHTN
5 Phạm vi hoạt động
• Phạm vi hoạt động càng hẹp, truy xuất càng hạn
chế
• Phân loại phạm vi hoạt động
Phạm vi Tầm ảnh hưởng Phạm vi hoạt động
Trang 135 Phạm vi hoạt động
• Dr Guru khuyên:
▫ Các thành phần trong lớp nên có phạm vi hoạt
động như sau:
Thuộc tính có phạm vi private để hạn chế truy
xuất.
Phương thức có phạm vi public để cung cấp tính
năng.
Khoa CNTT-ĐH.KHTN
5 Chia sẻ dữ liệu
• Phương thức get/set của dữ liệu
• Properties trong ngôn ngữ C#
26
GV Trương Phước Lộc
Trang 145 Khoảng cách giữa 2 điểm
27
GV Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
5 Trung điểm của 2 điểm
28
GV Trương Phước Lộc
Trang 155 Trọng tâm của tam giác
29
GV Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
6 Hàm khởi tạo
• Mặc định
• Có tham số
• Sao chép
30
GV Trương Phước Lộc
Trang 166 Hàm khởi tạo
• Điểm
• Đơn thức
• Tam giác
• Danh sách số nguyên
• Đa thức
• Đa giác
31
GV Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
Bài tập
• BT1: Xây dựng lại bài tập Điểm vừa minh họa ở trên
• BT2: Tính khoảng cách 2 điểm, trung điểm trong OXYZ
• BT3: Tính cộng, trừ, nhân, chia 2 phân số
• BT4: Tính cộng trừ, nhân, chia 2 số phức
• BT5: Học sinh (Tên, email, điểm)
• BT6: Nhân viên (Tên, địa chỉ, ngày bắt đầu, hệ số)
• BT7: Danh sách số nguyên: nhập, xuất, tính tổng, tính
tích
• BT8: Danh sách phân số: nhập, xuất, tính tổng, tính tích
• BT9: Tính chu vi, diện tích của tam giác.
• BT10: Tính chu vi của đa giác
Tất cả các lớp đều phải xây dựng 3 hàm khởi tạo
Trang 17Tham khảo
• Bài giảng phương pháp lập trình HDT:
▫ Thầy Nguyễn Tiến Huy: nthuy@fit.hcmus.edu.vn
▫ Thầy Đinh Bá Tiến : dbtien@fit.hcmus.edu.vn
▫ Thầy Nguyễn Minh Huy: nmhuy@fit.hcmus.edu.vn
▫ Thầy Nguyễn Hoàng Anh: nhanh@fit.hcmus.edu.vn
Khoa CNTT-ĐH.KHTN
Câu hỏi
34
GV Trương Phước Lộc