Bài giảng Lập trình hướng đối tượng với C++ - Hà Văn Sang - Chương 3: Lớp và đối tượng

Một đối tượng thường có 4 kiểu hành vi cơ bản

Các phương thức khởi tạo: Constructor

Các phương thức truy vấn: Queries

Các phương thức cập nhập: Updates

Các phương thức hủy: Destructor

 

ppt32 trang | Chuyên mục: C/C++ | Chia sẻ: dkS00TYs | Lượt xem: 4198 | Lượt tải: 2download
Tóm tắt nội dung Bài giảng Lập trình hướng đối tượng với C++ - Hà Văn Sang - Chương 3: Lớp và đối tượng, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Hà Văn Sang Bộ môn: Tin học TC – KT Khoa: Hệ Thống Thông Tin Kinh tế - Học Viện Tài Chính Tel: 0982.165.568 Email: sanghv@hvtc.edu.vn Website:  Lập trình hướng đối tượng CHƯƠNG III 1. Xây dựng lớp và đối tượng a. Khai báo class { 	[quyền truy xuất:] 	//khai báo các thành phần dữ liệu của lớp 	[quyền truy xuất:] 	//khai báo các thành phần hàm của lớp }; a. Khai báo Trong đó: : do người dùng đặt tuân theo các qui tắc về tên Ví dụ: SV, NGUOI, Hoa_Don, ps, Ma_Tran… a. Khai báo [quyền truy xuất:] Là khả năng truy xuất thành phần dữ liệu Ngầm định là private priate: trong phạm vi lớp đó public: ở mọi nơi nếu đối tượng tồn tại protected: phạm vi lớp đó và các lớp con kế thừa a. Khai báo Thành phần của lớp Có thể gồm: Dữ liệu Thuộc tính Phương thức a. Khai báo Khai báo thành phần Dữ liệu: Tương tự như khai báo biến ; Chú ý: không được khởi tạo giá trị ban đầu a. Khai báo Khai báo thành phần Hàm thành phần Cách 1: Khai báo trong lớp và định nghĩa ngoài lớp tênlớp::([đối sô]) { // } Cách 2: định nghĩa ngay trong lớp a. Khai báo Ví dụ 1: Xây dựng cấu trúc dữ liệu mô tả sinh viên: Dữ liệu: họ tên, ngày sinh, giới tính, Điểm toán, lý, hóa, Đtb Phương thức: nhập, tính đtb, in  Lớp sinh viên a. Khai báo Ví dụ 2: Xây dựng cấu trúc dữ liệu mô tả các hóa đơn: Dữ liệu: mã vật tư, tên vật tư, loại phiếu, ngày lập, khối lượng, đơn giá, thành tiền… Phương thức: nhập, tính thành tiền, in  Lớp các hóa đơn a. Khai báo Ví dụ 3: Xây dựng cấu trúc dữ liệu mô tả các phân số: Dữ liệu: tử số, mẫu số Phương thức: nhập, tối giản, in  Lớp các phân số b. Khai báo đối tượng Cú pháp: ; Ví dụ: khai báo 2 đối tượng sinh viên SV sv1, sv2; Khi đó sv1, sv2 là hai đối tượng sinh viên c. Truy xuất thành phần Dữ liệu .; Ví dụ: truy xuất họ tên và ngày sinh của sv sv1.ht; sv2.ns; Nếu là con trỏ: ->; c. Truy xuất thành phần Thành phần hàm .([ds đối số]); Ví dụ: truy xuất phương thức nhập và in của sv sv1.nhap(); sv2.in(); Với con trỏ: ->.([đối số]); 2. Các phương thức Một đối tượng thường có 4 kiểu hành vi cơ bản Các phương thức khởi tạo: Constructor Các phương thức truy vấn: Queries Các phương thức cập nhập: Updates Các phương thức hủy: Destructor a. Hàm khởi tạo Khai báo: ([ds tham số]); Định nghĩa ngoài lớp: ::([ds tham số]) { //thân hàm } a. Hàm khởi tạo (tiếp) Như vậy hàm khởi tạo: Có với mọi lớp Tên hàm giống tên lớp Không có kiểu nên không cần khai báo Không có giá trị trả về Nếu không xây dựng thì chương trình tự động sinh hàm khởi tạo mặc định Được gọi tự động khi khai báo thể hiện của lớp a. Hàm khởi tạo (tiếp) Một số hàm khởi tạo: - Hàm khởi tạo mặc định (default constructor) - Hàm khởi tạo sao chép (copy constructor) Khai báo: (const &) Đối tượng mới sẽ là bản sao của đối tượng đã có b. Hàm hủy - Destructor Khai báo: ~(); Chức năng: - Hủy bỏ, giải phóng các đối tượng khi nó hết phạm vi tồn tại b. Hàm hủy (tiếp) Như vậy hàm hủy: Không có đối số Không có giá trị trả về Không định nghĩa lại Trùng tên với lớp và có dấu ~ ở trước Thực hiện một số công việc trứơc khi hệ thống giải phóng bộ nhớ Chương trình dịch tự động sinh hàm hủy mặc định 3. Nạp chồng toán tử Cú pháp: operator([ds tham số]) Định nghĩa ngoài lớp: ::operator([ds tham số]) { //thân hàm } 3. Nạp chồng toán tử (tiếp) Ví dụ: Nạp chồng toán tử +, * của lớp phân số Nạp chồng toán tử + vector Danh sách các toán tử có thể nạp chồng: + - * / = += -= *= /= > >= == != = ++ -- % & ^ ! | ~ &= ^= |= && || %= [] () , ->* -> new delete new[] delete[] 3. Nạp chồng toán tử (tiếp) Chú ý: Chỉ có thể định nghia lại các toán tử ở trên Không làm thay đổi độ ưu tiên của các toán tử Với toán tử 2 ngôi: toán tử bên trái là ẩn toán tử bên phải là đối số Do đó: số tham số bằng số toán hạng - 1 3. Nạp chồng toán tử (tiếp) Cách gọi hàm toán tử: Dùng như cú pháp thông thường của phép toán Ví dụ: PS a,b,c; c=a+b; Dùng như hàm thành phần của đối tượng Ví dụ: PS a,b,c; c=a.operator+(b); Bài tập (week 4) Nạp chồng các toán tử của các bài tập trong tuần 3 Bài tập (week 3) Sử dụng TC++ để lập trình: 1. Xây dựng lớp phân số gồm các thành phần: -DL: tử số, mẫu số -Pt: nhập, in, tối giản, so sánh 2 ps Hàm main: -Nhập mảng có n phân số (n<=10) -Sắp xếp mảng PS theo thứ tự giảm dần -In mảng sau khi xếp Bài tập (week 3) Sử dụng TC++ để lập trình: 2. Xây dựng lớp số phức gồm các thành phần: -DL: phần thực, phần ảo -Pt: nhập, in, tính , nhân, chia 2 số phức Hàm main: -Nhập 2 số phức -Tính và in tổng, hiệu hai số phức -In mảng sau khi xếp Bài tập (week 3) Sử dụng TC++ để lập trình: 3. Xây dựng lớp vectơ gồm các thành phần: -DL: số phần tử, mảng các phần tử -Pt: nhập, in, tổng 2 vectơ, tích vô hướng Hàm main: -Nhập 2 vectơ -Tính và in tổng a+b Bài tập (week 3) Sử dụng TC++ để lập trình: 4. Xây dựng lớp ma trận gồm các thành phần: -DL: số dòng, số cột, mảng các phần tử -Pt: nhập, in, kiểm tra ma trận có là đơn vị không Hàm main: -Nhập ma trận a -Thông báo có là ma trận đơn vị không -In ma trận Bài tập (week 3) Sử dụng TC++ để lập trình: 5. Xây dựng lớp sinh viên gồm các thành phần: -DL: họ tên, ngày sinh, giới tính, lớp (k43/41.01),điểm toán, lý, hóa, đtb -Pt: nhập, in, tính điểm trung bình Hàm main: -Nhập danh sách sinh viên -Sắp xếp theo điểm trung bình giảm dần -In danh sách sau khi xếp Bài tập (week 3) Sử dụng TC++ để lập trình: 6. Xây dựng lớp hóa đơn gồm các thành phần: -DL: mã vật tư, tên vật tư, loại phiếu, ngày lập, khối lượng, đơn giá, thành tiền -Pt: nhập, in, kiểm tra phiếu nhập hay xuất Hàm main: -Nhập danh sách hóa đơn -Tính thành tiền cho các hóa đơn và in tổng thành tiền -In danh sách sau khi xếp theo số tiền giảm dần Qui cách nộp bài Gửi tới địa chỉ: sanghv@gmail.com CC: sanghv@hvtc.edu.vn Tiêu đề: [Lớp][BT3][Stt][Họ và tên] Ví dụ: [K43/41.01][BT3][14][Lê hoàng Vũ] Hạn nộp: 23h59’ ngày 29/01/2008 

File đính kèm:

  • pptBài giảng Lập trình hướng đối tượng với C++ - Hà Văn Sang - Chương 3 Lớp và đối tượng.ppt