Bài giảng Lập trình hướng đối tượng - Chương 3: Phương thức

pptx 42 trang cucquyet12 6342
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình hướng đối tượng - Chương 3: Phương thức", để 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:

  • pptxbai_giang_lap_trinh_huong_doi_tuong_chuong_3_phuong_thuc.pptx

Nội dung text: Bài giảng Lập trình hướng đối tượng - Chương 3: Phương thức

  1. Click to editCHƯƠNG Master subtitle 3: style PHƯƠNG THỨC Khoa Công nghệ thông tin Trường Đại học Ngoại ngữ - Tin học, TP.HCM 1
  2. NỘI DUNG Tạo Method (phương thức) Method overloading Tham số của method Optional parameters Named parameters Số lượng tham số không cố định Từ khóa out, ref Tái sử dụng code trong các constructor 2
  3. TẠO METHOD 3
  4. Ý tưởng của method Method là một đoạn mã làm một nhiệm vụ gì đó (với dữ liệu đã có) Thuận lợi Tái sử dụng code Phân chia công việc Dễ định vị lỗi Tiết kiệm thời gian 4
  5. Cơ bản về method Tạo method Dùng method (calling) Lấy kết quả (dữ liệu) từ method => output Gửi dữ liệu vào method => input 5
  6. Tạo method Một method phải nằm trong một lớp 6
  7. Dùng method (calling) 7
  8. Bài tập thực hành số 3.1 VCT tạo lớp TaiKhoan (Account) với thông tin như sau: - Ma so tai khoan: “123456” - Ten chu tai khoan: “Nguyen Van Tam” - So tien: 10000000. Sau đó xuất thông tin này ra màn hình 8
  9. Bài tập thực hành số 3.2 VCT tạo lớp SinhVien với thông tin như sau: - Ma sinh vien: “TH161234” - Ten sinh vien: “Nguyen Van Tu” - Nam sinh: 1998. - Dia chi: 155 Su van Hanh, F13, Q10 Sau đó xuất thông tin này ra màn hình 9
  10. Lấy kết quả (dữ liệu) từ method Ý nghĩa: Method làm một nhiệm vụ gì đó, làm xong cho biết kết quả đã làm (returning) Cách làm: Thay void bằng int, double, string, Trong thân method, dùng lệnh return để trả về một kết quả/giá trị (giá trị nằm sau lệnh return) 10
  11. Lấy kết quả (dữ liệu) từ method 11
  12. Lấy kết quả (dữ liệu) từ method 12
  13. Bài tập thực hành số 3.3 VCT tạo lớp Circle với thông tin như sau: - Ban kinh r: 1 Sau đó - Tính diện tích và chu vi - Xuất các kết quả vừa tính ra màn hình 13
  14. Gửi dữ liệu vào method Ý nghĩa: Method cần thêm thông tin do bên ngoài cung cấp mới thực hiện được 14
  15. Gửi dữ liệu vào method 15
  16. Bài tập thực hành số 3.4 VCT tạo lớp Sach với thông tin như sau: - Ma so sach: “B12345” - Ten sach: “Bai tap OOP” - Gia sach: 70000 Sau đó - Tính giá bán sách = Giá sách – giá giảm - Xuất kết quả vừa tính ra màn hình 16
  17. METHOD OVERLOADING 17
  18. Overloading C# cho phép tạo ra nhiều method có cùng tên (method overloading hay overloading) Làm sao nhiều method có cùng tên được? Hai phương thức cùng tên Không có cùng signature Benjamin Franklin Barack Obama 18
  19. Overloading Signature của method Tên method Loại kiểu, thứ tự kiểu và số lượng kiểu của các tham số 19
  20. Overloading 20
  21. Overloading 21
  22. Bài tập thực hành số 3.4 VCT tạo lớp Sach với thông tin như sau: - Ma so sach: “B12345” - Ten sach: “Bai tap OOP” - Gia sach: 70000 Sau đó - Tính giá bán sách = Giá sách – giá giảm. - Tính giá bán n quyển sách. - Tính giá bán n quyển sách có giảm giá - Xuất kết quả vừa tính ra màn hình 22
  23. THAM SỐ CỦA METHOD 23
  24. Optional parameter 24
  25. Optional parameter 25
  26. Bài tập thực hành số 3.5 VCT tạo lớp Sach với thông tin như sau: - Ma so sach: “B12345” - Ten sach: “Bai tap OOP” - Gia sach: 70000 Sau đó - Tính giá bán n quyển sách. Nếu không truyền tham số thực vào thì mặc định bằng 1. public int TinhGiaBan(int giagiam, int n=1); - Xuất kết quả vừa tính ra màn hình 26
  27. Named parameters public int Clamp(int value, int min, int max) { if(value max) { return max; } return value; } Clamp(20, 50, 100); Clamp(min: 50, max: 100, value: 20); Khi dùng named parameter, thứ tự tham số không quan trọng 27
  28. Số lượng tham số không xác định public double Average(int a, int b) { return (a + b) / 2.0; } public double Average(int a, int b, int c) { return (a + b + c) / 3.0; } public double Average(params int[] numbers) Average(2, 3); { Average(2, 5, 8); double total = 0; Average(41, 49, 29, 2, -7, 18); foreach (int number in numbers) total += number; return total / numbers.Length; } 28
  29. Từ khóa ‘out’, ‘ref’ public void Variables(out int x, ref int y) { x = 3; y = 17; } int ret = 2; int val = 5; Variables(out ret, ref val); 29
  30. Phương thức với tham số ref, out, params public int Swap(ref int a, ref int b) obj.Swap(ref x, ref y); { int tam = a; a = b; b = tam; } public int Sum(params int[] a) public void Calculation(int a, int b, out int sum, out int mul) { { int sum=0; sum = a+b; for (int i=0; i<a.Length; i++) mul = a*b; sum = sum + a[i]; } return sum; } obj.Calculation(a, b, out res1, out res2); res = obj.Sum(1,2); res = obj.Sum(1,2, 3, 4); 30
  31. TÁI SỬ DỤNG CODE TRONG CÁC CONSTRUCTOR 31
  32. Tái sử dụng code trong các constructor Khi các constructors có những đoạn mã giống nhau, làm thế nào để tránh các đoạn mã viết lặp lại? Một số cách Cách 1: Phần code được dùng nhiều lần • Tách ra một hàm (gán nhãn cho nó private) • Các constructors gọi hàm trên 32
  33. Tái sử dụng code trong các constructor Cách 2: Các constructor có thể gọi lẫn nhau thông qua từ khóa this public class Manager { public int Grade { get; set; } public string Name { get; set; } public Manager() : this("N/A", 0) {} public Manager(string name) : this(name, 0) {} public Manager(string name, int grade) { Name = name; Grade = grade; } } 33
  34. TÓM TẮT Ôn lại cách viết method Xml documentations comments (giải thích trên Visual studio) Method overloading Nhiều method có cùng tên nhưng khác signature Tham số method: optional parameters, named parameter, số lượng tham số không cố định (params), ref, out Tái sử dụng code trong các constructor Tách code dùng nhiều lần thành một private method Dùng từ khóa this để gọi các constructors trong lớp 34
  35. Bài tập thực hành số 3.6 VCT tạo lớp PhanSo với thông tin như sau: - Tu so: 4 - Mau so: 12 Sau đó - Rút gọn phân số trên. - Xuất kết quả vừa rút gọn ra màn hình 35
  36. Bài tập thực hành số 3.7 VCT tạo lớp ToaDo điểm trong mặt phẳng Oxy với thông tin như sau: - Hoành độ x II I - Tung độ: y III IV Sau đó - Nhập tọa độ cho điểm A(2,4). - Kiểm tra điểm A thuộc góc tư nào? - Xuất kết quả vừa kiểm tra ra màn hình 36
  37. Bài tập thực hành số 3.8 VCT tạo lớp PhanSo với thông tin như sau: - Tu so - Mau so Sau đó - Nhập vào 2 phân số. - Tính tổng, hiệu, tích, thương. - Xuất các kết quả vừa tính ra màn hình 37
  38. Bài tập thực hành số 3.9 VCT tạo lớp ToaDo điểm trong mặt phẳng Oxy với thông tin như sau: - Hoành độ x - Tung độ: y Sau đó - Nhập tọa độ 2 điểm A, B. - Tính khoảng cách giữa chúng. - Xuất kết quả vừa tính ra màn hình 38
  39. Bài tập thực hành số 3.10 VCT tạo lớp ToaDo điểm trong mặt phẳng Oxy với thông tin như sau: - Hoành độ x - Tung độ: y Sau đó - Nhập tọa độ 3 điểm A, B, C. - Tính diện tích của chúng (nếu tạo thành tam giác). - Xuất kết quả vừa tính ra màn hình 39
  40. Bài tập thực hành số 3.11 VCT tạo lớp Time mô tả các thông tin về thời gian: giờ, phút, giây và các phương thức sau: - Hàm thiết lập thời gian. - Hàm hiển thị giờ theo 24 tiếng. - Hàm hiển thị giờ theo 12 tiếng (AM và PM). - Các hàm thành phần dùng để lấy giá trị và xác lập giá trị cho từng thành phần: giờ, phút, giây. 40
  41. Bài tập thực hành số 3.12 VCT tạo lớp Date mô tả thông tin về ngày, tháng, năm (day, month, year). Lớp CDate có các phương thức sau: - Phương thức thiết lập với 3 tham số ngầm định. - Phương thức in thông tin về ngày tháng dười dạng: dd-mm-yyyy. - Hàm NextDay() dùng để tăng 1 ngày. 41
  42. Bài tập thực hành nâng cao Bổ sung thêm phương thức Get/Set cho các bài tập đã làm từ 3.1 đến 3.12 42