Bài giảng Lập trình hướng đối tượng 1 - Chương 3: Định nghĩa toán tử - Thái Kim Phụng
Bạn đang xem tài liệu "Bài giảng Lập trình hướng đối tượng 1 - Chương 3: Định nghĩa toán tử - Thái Kim Phụng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
bai_giang_lap_trinh_huong_doi_tuong_1_chuong_3_dinh_nghia_to.ppt
Nội dung text: Bài giảng Lập trình hướng đối tượng 1 - Chương 3: Định nghĩa toán tử - Thái Kim Phụng
- Trường ĐH Kinh Tế Tp.HCM Khoa Tin Học Quản Lý LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 1 CHƯƠNG 3: ĐỊNH NGHĨA TOÁN TỬ
- Nội dung 1. Định nghĩa toán tử 2. Các loại toán tử 3. Phạm vi sử dụng toán tử 4. Bài tập thực hành
- 1. Định nghĩa toán tử ❑ Trong C# , toán tử là một phương thức tĩnh (static method) dùng để nạp chồng (overload) một phép toán nào đó trên các đối tượng. ❑ Mục đích của toán tử là để viết mã chương trình gọn gàng, dễ hiểu hơn, thay vì phải gọi phương thức . ❑ Ví dụ: Giả sử ta có lớp PhanSo có phương thức Cong PhanSo ps1 = new PhanSo(2,4) ; PhanSo ps2 = new PhanSo(1,3) ; Thay vì viết: PhanSo ps3 = ps1.Cong(ps2); ta viết: PhanSo ps3 = ps1 + ps2;
- 1. Định nghĩa toán tử ❑ Ta có thể nạp chồng các toán tử sau: ❑ Toán học: + , - , * , / , % ❑ Cộng trừ một ngôi: ++ , , - ❑ Quan hệ so sánh: == , != , > , = , <= ❑ Ép kiểu:( )
- 1. Định nghĩa toán tử ❑ Nạp chồng toán tử bằng cú pháp sau: public static Type Operator operator_symbol([parameter_list]); ❑ Trong đó : ❑ Type là kiểu giá trị trả về. ❑ parameter_list là danh sách các đối số nếu có. ❑ operator_symbol là các toán tử.
- 1. Định nghĩa toán tử public static PhanSo operator + (PhanSo a, PhanSo b) { PhanSo kq = new PhanSo(); kq.tu = a.tu * b.mau + a. mau * b.tu; kq.mau = a.mau * b mau; return kq. RutGon(); } public static PhanSo operator - (PhanSo a, PhanSo b) { PhanSo kq = new PhanSo(); kq.tu = a.tu * b.mau - a.mau * b.tu; kq.mau = a.mau * b.mau; return kq. RutGon(); }
- 1. Định nghĩa toán tử ❑ Lưu ý khi nạp chồng toán tử ❑ Tham số của toán tử phải là tham trị (không dùng các từ khóa ref, out). ❑ Không được nạp chồng toán tử = (gán), && , || (and, or logic), ?: (điều kiện), checked, unchecked, new, typeof, as, is. ❑ [ ] không được xem là một toán tử. ❑ Khi nạp chồng các toán tử dạng: +, -, *, / , % thì các toán tử +=, -=, *=, /= , %= cũng tự động được nạp chồng.
- 1. Định nghĩa toán tử ❑ Lưu ý khi nạp chồng toán tử (tt) ❑ Khi nạp chồng toán tử thì nên nạp chồng theo cặp đối ngẫu. Chẳng hạn, khi nạp chồng toán tử == thì nạp chồng thêm toán tử != ❑ Khi nạp chồng toán tử ==, != thì nên phát triển thêm các phương thức Equals(), GetHashCode() để đảm bảo luật “hai đối tượng bằng nhau theo toán tử == hoặc phương thức Equals sẽ có cùng mã băm”. ❑ Khi định nghĩa toán tử ép kiểu ta phải chỉ ra đây là toán tử ép kiểu ngầm định (implicit) hay tường minh (explicit).
- 2. Các loại toán tử ❑ Trong C#, có các toán tử có thể nạp chồng và các phương thức thay thế như sau: Toán tử Tên phương thức Toán tử Tên phương thức thay thế thay thế + Add > Compare - Subtract = Compare % Mod <= Compare ^ Xor *= Multiply & BitwiseAnd - = Subtract | Bitwiseor ^= Xor
- 2. Các loại toán tử && Add > Rightshift |= Bitwiseor = = Equals /= Divide Decrement - Negate ++ Increment
- 3. Phạm vi sử dụng toán tử Phạm trù Toán tử Hạn chế Nhị phân toán học +, *, /, -, % Không Thập phân toán học +, -, ++, Không Nhị phân bit &, |, ^, > Không Thập phân bit !, ~, true, false Không So sánh ==,!=,>=, từng cặp.
- Bài thực hành 1 Xây dựng lớp Vector gồm có các thành phần dữ liệu X, Y, Z. Các phương thức: - Phương thức khởi tạo không tham số - Phương thức khởi tạo có 3 tham số - Phương thức: setX(float x), setY(float y), setZ(float Z), getX(), getY(), getZ() - Phương thức HienThi() - Phương thức nạp chồng toán tử cộng (+) đối với hai vector
- Bài thực hành 2 Viết chương trình thực hiện nạp chồng các toán tử +, -, *, /, ==, !=, >,<= trên phân số.



