![Phân tích tư tưởng của nhân dân qua đoạn thơ: Những người vợ nhớ chồng… Những cuộc đời đã hóa sông núi ta trong Đất nước của Nguyễn Khoa Điềm](https://timtailieu.net/upload/document/136415/phan-tich-tu-tuong-cua-nhan-dan-qua-doan-tho-039-039-nhung-nguoi-vo-nho-chong-nhung-cuoc-doi-da-hoa-song-nui-ta-039-039-trong-dat-nuoc-cua-nguyen-khoa-136415.jpg)
Bài giảng Cơ sở lập trình máy tính: Chương 5 - ThS. Nguyễn Thị Khiêm Hòa
Số trang: 18
Loại file: pdf
Dung lượng: 399.01 KB
Lượt xem: 3
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Sau khi học xong chương 5 Nạp chồng toán tử nằm trong bài giảng cơ sở lập trình máy tính nhằm trình bày về các nội dung chính: từ khóa Operator, hỗ trợ ngôn ngữ .NET khác, toán tử so sánh bằng và toán tử chuyển đổi, bài giảng còn có ví dụ minh họa, giúp sinh viên tiếp thu bài học nhanh.
Nội dung trích xuất từ tài liệu:
Bài giảng Cơ sở lập trình máy tính: Chương 5 - ThS. Nguyễn Thị Khiêm Hòa Chương 5:Nạp chồng toán tử Giảng viên: Ths. Nguyễn Thị Khiêm Hòa Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCMNội dung Từ khóa Operator Hỗ trợ ngôn ngữ .NET khác Toán tử so sánh bằng Toán tử chuyển đổi Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 2Đặt vấn đề Lớp do người dùng định nghĩa (user class defined) có đầy đủ chức năng của các lớp được xây dựng sẵn. Ví dụ:Thực hiện phép cộng hai phân số, đảm bảo thực hiện được các phép toán số học trên lớp đối tượng này, đồng thời có thể viết toán tử “+” như các phép tính số học khác Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 3Đặt vấn đềclass Phanso{ private int tuso; private int mauso; public Phanso(int tu, int mau) { this.tuso = tu; this.mauso = mau; } public override string ToString() { return tuso.ToString() + “/” + mauso.ToString(); }} Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 4Đặt vấn đềpublic Phanso Cong(Phanso rhs){ if(rhs.mauso!= mauso) { int ts = mauso*rhs.tuso + rhs.mauso*tuso; int ms = mauso*rhs.mauso; return new Phanso(ts,ms); } else { int ts = tuso + rhs.tuso; return new Phanso(ts, this.mauso); }} Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 5Đặt vấn đề Lời gọi phương thức: Phanso kq = ps1.Cong(ps2); Đảm bảo thực hiện phép cộng hai phân số Không tự nhiên. Cần xây dựng định nghĩa các phép toán thật tự nhiên Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 6Toán tử Operator Toán tử là phương thức tĩnh Trả về kết quả thực hiện phép tính trên đối tượng Để xây dựng toán tử thực hiện nạp chồng toán tử Cú pháp public static operator ( lhs, rhs) { // câu lệnh định nghĩa } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 7Toán tử operatorpublic static Phanso operator+(Phanso lhs, Phanso rhs){ if(rhs.mauso!= lhs.mauso) { int ts = lhs.mauso*rhs.tuso + rhs.mauso*lhs.tuso; int ms = lhs.mauso*rhs.mauso; return new Phanso(ts,ms); } else { int ts = lhs.tuso + rhs.tuso; return new Phanso(ts, this.mauso); }} Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 8Hỗ trợ ngôn ngữ .NET Một số ngôn ngữ không hỗ trợ nạp chồng toán tử => cần hỗ trợ phương thức thay thế. Ví dụ: Định nghĩa phương thức Add để thực hiện phép cộng hai đối tượng Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 9Sử dụng toán tử Không sử dụng nạp chồng toán tử tùy tiện: Nạp chồng toán tử làm cho đối tượng trực quan Có thể làm mã nguồn phức tạp nhập nhằng. Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 10Nguyên tắc sử dụng toán tử Định nghĩa toán tử trong kiểu dữ liệu giá trị, kiểu dữ liệu được xây dựng sẵn Nạp chồng toán tử bên trong lớp Sử dụng tên và ký hiệu được quy ước trong CLS Kết quả phải rõ ràng Toán tử có tính đối xứng Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 11Nguyên tắc sử dụng toán tử Cung cấp phương thức thay thế theo quy định trong CLS Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 12Nguyên tắc sử dụng toán tử Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 13Nguyên tắc sử dụng toán tử Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 14Toán tử so sánh bằng Toán tử so sánh “==“ Định nghĩa lại phương thức ảo Equals() theo cú pháp: public override bool Equals(object o) { if(!(o is )) return false; else return this == () o; } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 15Toán tử chuyển đổi Xây dựng phương thức chuyển đổi kiểu dữ liệu: Ngầm định (implicit): Bảo đảm không mất thông tin Cú pháp: public static implicit operator ( ) Tường minh (explicit): Chuyển đổi công khai, có khả năng gây mất thông tin Cú pháp: public static explicit operator ( ) Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 16Toán tử chuyển đổipublic static implicit operator Phanso(int a){ return new Phanso(a,1);}public static explicit operator int(Phanso ps){ return ps.tuso/ps.mauso;} Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 17Q&A Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 18 ...
Nội dung trích xuất từ tài liệu:
Bài giảng Cơ sở lập trình máy tính: Chương 5 - ThS. Nguyễn Thị Khiêm Hòa Chương 5:Nạp chồng toán tử Giảng viên: Ths. Nguyễn Thị Khiêm Hòa Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCMNội dung Từ khóa Operator Hỗ trợ ngôn ngữ .NET khác Toán tử so sánh bằng Toán tử chuyển đổi Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 2Đặt vấn đề Lớp do người dùng định nghĩa (user class defined) có đầy đủ chức năng của các lớp được xây dựng sẵn. Ví dụ:Thực hiện phép cộng hai phân số, đảm bảo thực hiện được các phép toán số học trên lớp đối tượng này, đồng thời có thể viết toán tử “+” như các phép tính số học khác Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 3Đặt vấn đềclass Phanso{ private int tuso; private int mauso; public Phanso(int tu, int mau) { this.tuso = tu; this.mauso = mau; } public override string ToString() { return tuso.ToString() + “/” + mauso.ToString(); }} Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 4Đặt vấn đềpublic Phanso Cong(Phanso rhs){ if(rhs.mauso!= mauso) { int ts = mauso*rhs.tuso + rhs.mauso*tuso; int ms = mauso*rhs.mauso; return new Phanso(ts,ms); } else { int ts = tuso + rhs.tuso; return new Phanso(ts, this.mauso); }} Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 5Đặt vấn đề Lời gọi phương thức: Phanso kq = ps1.Cong(ps2); Đảm bảo thực hiện phép cộng hai phân số Không tự nhiên. Cần xây dựng định nghĩa các phép toán thật tự nhiên Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 6Toán tử Operator Toán tử là phương thức tĩnh Trả về kết quả thực hiện phép tính trên đối tượng Để xây dựng toán tử thực hiện nạp chồng toán tử Cú pháp public static operator ( lhs, rhs) { // câu lệnh định nghĩa } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 7Toán tử operatorpublic static Phanso operator+(Phanso lhs, Phanso rhs){ if(rhs.mauso!= lhs.mauso) { int ts = lhs.mauso*rhs.tuso + rhs.mauso*lhs.tuso; int ms = lhs.mauso*rhs.mauso; return new Phanso(ts,ms); } else { int ts = lhs.tuso + rhs.tuso; return new Phanso(ts, this.mauso); }} Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 8Hỗ trợ ngôn ngữ .NET Một số ngôn ngữ không hỗ trợ nạp chồng toán tử => cần hỗ trợ phương thức thay thế. Ví dụ: Định nghĩa phương thức Add để thực hiện phép cộng hai đối tượng Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 9Sử dụng toán tử Không sử dụng nạp chồng toán tử tùy tiện: Nạp chồng toán tử làm cho đối tượng trực quan Có thể làm mã nguồn phức tạp nhập nhằng. Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 10Nguyên tắc sử dụng toán tử Định nghĩa toán tử trong kiểu dữ liệu giá trị, kiểu dữ liệu được xây dựng sẵn Nạp chồng toán tử bên trong lớp Sử dụng tên và ký hiệu được quy ước trong CLS Kết quả phải rõ ràng Toán tử có tính đối xứng Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 11Nguyên tắc sử dụng toán tử Cung cấp phương thức thay thế theo quy định trong CLS Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 12Nguyên tắc sử dụng toán tử Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 13Nguyên tắc sử dụng toán tử Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 14Toán tử so sánh bằng Toán tử so sánh “==“ Định nghĩa lại phương thức ảo Equals() theo cú pháp: public override bool Equals(object o) { if(!(o is )) return false; else return this == () o; } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 15Toán tử chuyển đổi Xây dựng phương thức chuyển đổi kiểu dữ liệu: Ngầm định (implicit): Bảo đảm không mất thông tin Cú pháp: public static implicit operator ( ) Tường minh (explicit): Chuyển đổi công khai, có khả năng gây mất thông tin Cú pháp: public static explicit operator ( ) Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 16Toán tử chuyển đổipublic static implicit operator Phanso(int a){ return new Phanso(a,1);}public static explicit operator int(Phanso ps){ return ps.tuso/ps.mauso;} Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 17Q&A Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 18 ...
Tìm kiếm theo từ khóa liên quan:
Toán tử chuyển đổi Nạp chồng toán tử Từ khóa Operator Hỗ trợ ngôn ngữ Cơ sở lập trình Lập trình máy tính Phát triển phần mềmTài liệu liên quan:
-
Bài giảng Tin học lớp 11 bài 1: Giới thiệu ngôn ngữ lập trình C#
15 trang 247 0 0 -
15 trang 202 0 0
-
Giáo trình Công nghệ phần mềm nâng cao: Phần 1
151 trang 200 0 0 -
65 trang 175 0 0
-
Bài giảng Công nghệ phần mềm - Chương 2: Quy trình xây dựng phần mềm
36 trang 164 0 0 -
69 trang 159 0 0
-
3 trang 120 0 0
-
48 trang 113 0 0
-
Giáo trình Kỹ thuật vi điều khiển
121 trang 113 0 0 -
Giáo trình cơ sở CAD/CAM trong thiết kế và chế tạo máy_3
20 trang 106 0 0