1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Nguyên lý lập trình hướng đối tượng: Bài 4 - TS. Lý Anh Tuấn

29 8 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

Định dạng
Số trang 29
Dung lượng 3,03 MB

Nội dung

Bài giảng Nguyên lý lập trình hướng đối tượng: Bài 4 Hàm tạo và các công cụ khác, cung cấp cho người học những kiến thức như: Định nghĩa Hàm tạo; Bổ từ const cho các tham số; Hàm nội tuyến; Dữ liệu thành viên tĩnh. Mời các bạn cùng tham khảo!

NGUYÊN LÝ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài 4: Hàm tạo công cụ khác Giảng viên: TS Lý Anh Tuấn Email: tuanla@tlu.edu.vn Nội dung Hàm tạo ◦ Định nghĩa ◦ Lời gọi Các công cụ khác ◦ Bổ từ const cho tham số ◦ Hàm nội tuyến ◦ Dữ liệu thành viên tĩnh Hàm tạo  Khởi tạo đối tượng ◦ Khởi tạo vài tất biến thành viên ◦ Cũng cho phép thực hành động khác  Một kiểu hàm thành viên đặc biệt ◦ Được gọi tự động khai báo đối tượng  Là cơng cụ hữu ích ◦ Là ngun tắc lập trình hướng đối tượng Định nghĩa hàm tạo  Giống hàm thành viên khác ngoại trừ: ◦ Phải có tên với tên lớp ◦ Khơng trả giá trị, chí void  VD: Định nghĩa lớp với hàm tạo class DayOfYear { public: DayOfYear(int dayValue, int monthValue); //Hàm tạo khởi tạo day & month void input(); void output(); … private: int day; int month; } Gọi hàm tạo Khai báo đối tượng: DayOfYear date1(4, 7), date2(5, 5);  Các đối tượng tạo theo cách:  ◦ Hàm tạo gọi ◦ Các giá trị ngoặc truyền đối số cho hàm tạo ◦ Các biến thành viên day, month khởi tạo: date1.day  date1.month  date2.day  date2.month  5 Gọi hàm tạo Xét ví dụ: DayOfYear date1, date2 date1.DayOfYear(4, 7);// Không hợp lệ! date2.DayOfYear(5, 5);// Không hợp lệ!   Không thể gọi hàm tạo giống hàm thành viên khác  Định nghĩa hàm tạo  Giống hàm thành viên khác: DayOfYear::DayOfYear(int dayValue, int monthValue) { day = dayValue; month = monthValue; }  Một cách định nghĩa khác DayOfYear::DayOfYear(int dayValue, int monthValue) : day(dayValue), month(monthValue)  {…} ◦ Dòng thứ gọi “phần khởi tạo” ◦ Phần thân để trống Mục đích khác hàm tạo Khơng khởi tạo liệu  Phần thân không cần để trống  ◦ Như phiên khởi tạo  Dùng để xác thực liệu! ◦ Đảm bảo gán liệu phù hợp cho biến thành viên private Nạp chồng hàm tạo Có thể nạp chồng hàm tạo giống hàm khác  Nhắc lại: tín hiệu hàm bao gồm  ◦ Tên hàm ◦ Danh sách tham số  Cung cấp hàm tạo với tất danh sách tham số có Ví dụ hàm tạo Hàm tạo mặc định 10 Hàm tạo mặc định Được định nghĩa hàm tạo không đối  Nên định nghĩa trường hợp  Được khởi tạo tự động?  ◦ Đúng: không định nghĩa hàm tạo ◦ Sai: định nghĩa hàm tạo  Nếu khơng có hàm tạo mặc định ◦ Khơng thể khai báo: MyClass myObject; 15 Biến thành viên kiểu lớp Biến thành viên lớp đối tượng lớp khác  Có ký pháp đặc biệt:  ◦ Cho phép gọi hàm tạo đối tượng thành viên ◦ Bên hàm tạo lớp bao chứa 16 Ví dụ biến thành viên lớp 17 Ví dụ biến thành viên lớp Biến thành viên kiểu lớp Các lời gọi hàm tạo từ lớp DayOfYear 18 Ví dụ biến thành viên lớp Kết thực hiện: 19 Các phương pháp truyền tham số  Hiệu việc truyền tham số ◦ ◦ ◦ ◦  Truyền giá trị Truyền tham biến Không khác biệt với kiểu đơn giản Với kiểu lớp -> lợi ích rõ rệt Nên sử dụng truyền tham biến ◦ Cho liệu “lớn”, chẳng hạn kiểu lớp 20 Bổ từ const cho tham số  Với kiểu liệu lớn (chẳng hạn lớp) ◦ Nên sử dụng phương pháp truyền tham biến ◦ Thậm chí hàm khơng thực sửa đổi  Bảo vệ đối số  ◦ Sử dụng tham số gọi tham số tham chiếu ◦ Đặt từ khóa const trước kiểu ◦ Làm cho tham số đọc ◦ Mọi nỗ lực sửa đổi dẫn đến lỗi biên dịch Áp dụng cho tham số hàm thành viên lớp 21 Hàm nội tuyến  Với hàm hàm thành viên: ◦ Sử dụng từ khóa inline khai báo hàm đầu mục hàm  Với hàm thành viên lớp ◦ Đặt thi hành hàm định nghĩa lớp -> nội tuyến tự động Chỉ sử dụng cho hàm ngắn  Mã lệnh thực chèn vào nơi gọi  ◦ Loại bỏ phụ phí ◦ Hiệu hơn, sử dụng với hàm ngắn 22 Thành viên tĩnh  Biến thành viên tĩnh ◦ Tất đối tượng lớp chia sẻ ◦ Một đối tượng thay đổi  tất thấy thay đổi  Sử dụng cho việc “giám sát” ◦ Một hàm thành viên có gọi thường xuyên khơng ◦ Có đối tượng tồn thời điểm cho trước  Đặt từ khóa static trước kiểu 23 Hàm tĩnh  Hàm thành viên tĩnh ◦ Nếu hàm không truy cập tới liệu đối tượng ◦ Và thành viên lớp ◦ Làm cho trở thành hàm tĩnh  Có thể gọi bên ngồi lớp ◦ Từ đối tượng khơng lớp VD: Server::getTurn(); ◦ Và đối tượng lớp VD: myObject.getTurn();  Chỉ sử dụng liệu tĩnh, hàm tĩnh 24 Ví dụ thành viên tĩnh 25 Ví dụ thành viên tĩnh 26 Ví dụ thành viên tĩnh Vì getTurn tĩnh, thành viên tĩnh tham chiếu 27 Ví dụ thành viên tĩnh  Kết thực hiện: 28 Tóm tắt  Hàm tạo: tự động khởi tạo liệu lớp ◦ Được gọi khai báo đối tượng ◦ Hàm tạo có tên với lớp  Hàm tạo mặc định khơng có tham số ◦ Nên định nghĩa trường hợp    Biến thành viên lớp đối tượng lớp khác Có thể nội tuyến định nghĩa hàm ngắn -> thi hành hiệu Các biến thành viên tĩnh chia sẻ đối tượng thuộc lớp 29 ... sau đối tượng khai báo  Việc tạo ? ?đối tượng vơ danh”, sau gán cho đối tượng  Ví dụ: DayOfYear holiday (4, 7);  ◦ Hàm tạo gọi thời điểm khai báo đối tượng ◦ Sau goi tường minh để khởi tạo lại đối. .. day; int month; } Gọi hàm tạo Khai báo đối tượng: DayOfYear date1 (4, 7), date2(5, 5);  Các đối tượng tạo theo cách:  ◦ Hàm tạo gọi ◦ Các giá trị ngoặc truyền đối số cho hàm tạo ◦ Các biến thành... hàm tạo Kết thực hiện: 12 Hàm tạo không đối số Tránh nhầm lẫn với hàm chuẩn không đối số  Gọi hàm chuẩn không đối số :  callMyFunction();  Khai báo đối tượng khơng có khởi tạo: DayOfYear date1;

Ngày đăng: 09/12/2021, 10:03

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

TÀI LIỆU LIÊN QUAN