Bài giảng Lập trình hướng đối tượng: Chương 10 - Trường Đại học Ngoại ngữ - Tin học, TP.HCM
lượt xem 3
download
Bài giảng Lập trình hướng đối tượng: Chương 10 Operator overloading, cung cấp cho người đọc những kiến thức như: Đặt vấn đề; Operator overloading; Khai báo hàm cho Operator overloading; Các toán tử chuyển đổi;...Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình hướng đối tượng: Chương 10 - Trường Đại học Ngoại ngữ - Tin học, TP.HCM
- CHƯƠNG 10: Click to edit Master subtitle style Operator overloading Khoa Công nghệ thông tin Trường Đại học Ngoại ngữ - Tin học, TP.HCM 1
- NỘI DUNG Đặt vấn đề Operator overloading Operator Overloading Toán tử 2 ngôi Toán tử 1 ngôi Hỗn hợp Toán tử so sánh Khai báo hàm cho Operator overloading Các toán tử chuyển đổi Tóm tắt 2
- ĐẶT VẤN ĐỀ
- Đặt vấn đề Mục tiêu khi thiết kế ngôn ngữ C# là các lớp tự tạo (user-defined class) bởi người dùng sẽ có tất cả các chức năng của các kiểu dữ liệu có sẵn (built-in type). 4
- Đặt vấn đề class Vector Ví dụ: { public double X { get; set; } public double Y { get; set; } public Vector(double x, double y) { X = x; Y = y; } Cộng 2 vector public static Vector Add(Vector a, Vector b) { return new Vector(a.X + b.X, a.Y + b.Y); } } Có thể Gọi hàm Vector v1 = new Vector (1.0, 2.0); viết ???? Vector v1 = new Vector (1.0, 2.0); Vector v2 = new Vector (3.0,4.0); Vector v2 = new Vector (3.0,4.0); cộng 2 vector Vector kq = Vector.Add(v1, v2); Vector kq = v1 + v2; Operator Overloading 5
- OPERATOR OVERLOADING
- Operator overloading Operator overloading Toán tử 2 ngôi Toán tử 1 ngôi Hỗn hợp Toán tử so sánh 7
- Operator overloading Operator overloading Toán tử 2 ngôi Toán tử 1 ngôi Hỗn hợp Toán tử so sánh 8
- Operator overloading Operator overloading bao gồm: Từ khoá operator Các toán hạng (operand) • Ví dụ: +, -, *, /, >,
- Operator overloading class Vector { public double X { get; set; } public double Y { get; set; } public Vector(double x, double y) { X = x; Y = y; } Overload + public static Vector operator + (Vector a, Vector b) { return new Vector(a.X + b.X, a.Y + b.Y); } } Vector v1 = new Vector (1.0, 2.0); Vector v2 = new Vector (3.0,4.0); Sử dụng operator + Vector kq = v1 + v2; 10
- Operator overloading Ưu điểm của Operator overloading: Viết code ngắn gọn hơn Code dễ đọc hơn Vận dụng được các kiến thức về toán tử số học (+, - , *, /, >,
- Operator overloading Operator overloading Toán tử 2 ngôi Toán tử 1 ngôi Hỗn hợp Toán tử so sánh 12
- Toán tử hai ngôi (binary operator) class Vector { Ví dụ: public double X { get; set; } public double Y { get; set; } public Vector(double x, double y) { X = x; Y = y; } public static Vector operator + (Vector a, Vector b) Toán tử 2 ngôi + { return new Vector(a.X + b.X, a.Y + b.Y); } Toán tử 2 ngôi - public static Vector operator - (Vector a, Vector b) { return new Vector(a.X - b.X, a.Y - b.Y); } } Vector v1 = new Vector (1.0, 2.0); Vector v2 = new Vector (3.0,4.0); Sử dụng operator overloading Vector v3 = v1 + v2; Vector v4 = v1 - v2; 13
- Operator overloading Operator overloading Toán tử 2 ngôi Toán tử 1 ngôi Hỗn hợp Toán tử so sánh 14
- Toán tử một ngôi (unary operator) Ví dụ: class Vector { public double X { get; set; } public double Y { get; set; } public Vector(double x, double y) { X = x; Y = y; } Toán tử 1 ngôi + public static Vector operator + (Vector a) { return new Vector(a.X , a.Y); } Toán tử 1 ngôi - public static Vector operator - (Vector a) { return new Vector(-a.X ,- a.Y); } } 15
- Operator overloading Operator overloading Toán tử 2 ngôi Toán tử 1 ngôi Hỗn hợp Toán tử so sánh 16
- Hỗn hợp (Mixed) class Vector { Ví dụ: public double X { get; set; } public double Y { get; set; } public Vector(double x, double y) { X = x; Y = y; } Vector * int public static Vector operator * (Vector a, int k) { return new Vector(a.X * k, a.Y * k); } int * Vector public static Vector operator * (int k, Vector a) { return new Vector(k * a.X, k * a.Y); } } Vector v1 = new Vector (2.0, 3.0); int k = 3 Sử dụng operator overloading Vector v3 = v1 * k; Vector v4 = k * v1; 17
- Operator overloading Operator overloading Toán tử 2 ngôi Toán tử 1 ngôi Hỗn hợp Toán tử so sánh 18
- Toán tử so sánh class Vector { Ví dụ: public double X { get; set; } public double Y { get; set; } public Vector(double x, double y) { X = x; Y = y; } public static bool operator == (Vector a, Vector b) So sánh bằng { return a.X == b.X && a.Y == b.Y; } So sánh không bằng public static bool operator != (Vector a, Vector b) { return !(a==b); } } Vector v1 = new Vector (1.0, 2.0); Vector v2 = new Vector (3.0,4.0); Sử dụng toán tử so sánh if(a == b) ... 19
- Toán tử so sánh Các toán tử so sánh có thể overloading và phải overload theo từng cặp == và != > và < class Vector >= và
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình hướng đối tượng: Chương 3 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
38 p | 140 | 19
-
Bài giảng Lập trình hướng đối tượng - Chương 2: Đối tượng và lớp
21 p | 171 | 15
-
Bài giảng Lập trình hướng đối tượng: Chương 2 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
14 p | 176 | 12
-
Bài giảng Lập trình hướng đối tượng - Chương 3: Kế thừa
18 p | 138 | 10
-
Bài giảng Lập trình hướng đối tượng - Chương 1: Phương pháp lập trình hướng đối tượng
9 p | 142 | 9
-
Bài giảng Lập trình hướng đối tượng (dùng Java): Chương 1 - Trần Minh Thái (2017)
55 p | 81 | 8
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan lập trình hướng đối tượng
53 p | 120 | 8
-
Bài giảng Lập trình hướng đối tượng (Dùng C#): Chương 2 - Trần Minh Thái
35 p | 104 | 8
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan về OOP
0 p | 146 | 7
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Thị Anh Thi
7 p | 197 | 7
-
Bài giảng Lập trình hướng đối tượng 1: Chương 1 - ThS. Thái Kim Phụng
39 p | 110 | 7
-
Bài giảng Lập trình hướng đối tượng – Bài 01: Tổng quan về OOP
47 p | 66 | 6
-
Bài giảng Lập trình hướng đối tượng (dùng JAVA): Chương 1 - Trần Minh Thái
40 p | 100 | 5
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - GV. Hà Văn Sang
29 p | 89 | 5
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - Tổng quan về lập trình hướng đối tượng
47 p | 12 | 4
-
Bài giảng Lập trình hướng đối tượng và C++: Chương 1
15 p | 106 | 4
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Các khái niệm cơ bản trong lập trình hướng đối tượng
36 p | 17 | 3
-
Bài giảng Lập trình hướng đối tượng (Object-Oriented Programming) - Chương 2: Phương pháp lập trình hướng đối tượng
35 p | 11 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn