intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Lập trình hướng đối tượng: Bài 3, 4 - Phạm Thị Bích Vân

Chia sẻ: Estupendo Estupendo | Ngày: | Loại File: PPTX | Số trang:43

61
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài 3, 4 cung cấp kiến thức về lớp và đối tượng. Những nội dung chính trình bày trong bài này gồm: Tạo các lớp, cách đóng gói các thành phần vào lớp, thực thi các hàm của lớp, sử dụng hàm private và dữ liệu public, sử dụng các toán tử định phạm vi truy cập đối với các biến và hàm, khai báo static, tìm hiểu con trỏ this, đa hình.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Lập trình hướng đối tượng: Bài 3, 4 - Phạm Thị Bích Vân

  1. Bài 3: Lớp và đối tượng
  2. Lớp (class) • Lớp là khái niệm trung tâm của lập trình hướng đối tượng. Là sự  mở rộng của struct trong C. • Lớp là khái niệm trừu tượng, để biểu diễn các đối tượng. Là một  kiểu dữ liệu do người dùng định nghĩa. ▫ Lớp đưa ra miêu tả cho các đối tượng. ▫ Lớp cung cấp một cách thuận tiện để nhóm các dữ liệu và các hàm  xử lý trên dữ liệu đó. ▫ Khi tạo ra một đối tượng là thể hiện của lớp. Khi đó tự động tạo ra  các trường có liên quan. • Lớp chính là một kiểu dữ liệu do người dùng định nghĩa.
  3. So sánh giữa class và struct • Struct và class đều là kiểu dữ liệu do người dùng định nghĩa ( đều chứa  các biến và  hàm). • Struct là kiểu dữ liệu tham trị được lưu trong Stack. Trong khi lớp là  kiểu dữ liệu tham chiếu được lưu trong heap. • Struct không hỗ trợ kế thừa, lớp có hỗ trợ kế thừa. • Struct phù hợp với các cấu trúc dữ liệu nhỏ. Lớp phù hợp với các cấu  trúc dữ liệu phức tạp. • Struct được khởi tạo không cần từ khóa new. Khởi tạo lớp cần từ khóa  new. • Khi struct được khởi tạo với từ khóa new, khi đó một constructor (hàm  khởi dựng) được gọi để khởi tạo các trường trong cấu trúc. • Khi struct được khởi tạo không dùng từ khóa new thì không có  constructor được gọi, do vậy người dùng cần khởi tạo tất cả các trường  trước khi sử dụng.
  4. Nội dung • Tạo các lớp. • Cách đóng gói các thành phần vào lớp. • Thực thi các hàm của lớp. • Sử dụng hàm private và dữ liệu public • Sử dụng các toán tử định phạm vi truy cập đối với các biến  và hàm. • Khai báo static • Tìm hiểu con trỏ this. • Đa hình
  5. Khai báo một class • 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 };
  6. Khai báo một class [quyền truy xuất:] § Là khả năng truy xuất thành phần dữ liệu § Ngầm định là private private: 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  Chú ý: Các thuộc tính thành viên của struct cũng có thể được thiết lập là  private, public hoặc protected.
  7. Khai báo một class Student aSophomore; aSophomore.idNum = 7645; Error! By default, all members of a cout
  8. Khai báo một class Access modifier
  9. Đóng gói các thành phần của một lớp Khai báo thành phần § Dữ liệu: Tương tự như khai báo biến    ; Kiểu dữ liệu có thể là kiểu cơ bản hoặc kiểu do người dùng định  nghĩa Chú ý: không được khởi tạo giá trị ban đầu 9/20
  10. Đóng gói các thành phần của một lớp 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 10/20
  11. Đóng gói các thành phần của một lớp
  12. Đóng gói các thành phần của một lớp
  13. Ví dụ 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
  14. Ví dụ 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
  15. Ví dụ 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ố
  16. 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
  17. Truy xuất đối tượng .; Ví dụ: truy xuất họ tên và ngày sinh của sv sv1.ht; sv2.ns; Nếu là con trỏ: ­>;
  18. Hàm khởi tạo (constructor) • Hàm khởi tạo là một phương thức đặc biêt của lớp. • Hàm khởi tạo được thực thi mỗi khi khởi tạo một đối tượng. • Chú ý:  • Tên của hàm khởi tạo phải trùng với tên lớp. • Không có khai báo kiểu cho hàm tạo. • Hàm tạo có thể có tham số hoặc không có tham số. • Có thể nạp chồng nhiều hàm tạo.
  19. 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 }
  20. Dùng hàm tạo để khởi gán các giá trị  thuộc tính cho đối tượng Class Diem { int x; int y; Diem(int x, int y); }; Diem::Diem(int x, int y) {       this­>x=x;       this­>y=y; } int main() {
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2