Lập trình hướng đối tượng - Chương 3: Phương thức
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
42 trang |
Chia sẻ: huyhoang44 | Lượt xem: 764 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Lập trình hướng đối tượng - Chương 3: Phương thức, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
PHƯƠNG THỨCKhoa Công nghệ thông tinTrường Đại học Ngoại ngữ - Tin học, TP.HCMCHƯƠNG 3: 1Tạo Method (phương thức)Method overloadingTham số của methodOptional parametersNamed parametersSố lượng tham số không cố địnhTừ khóa out, refTái sử dụng code trong các constructorNỘI DUNG2TẠO method3Method là một đoạn mã làm một nhiệm vụ gì đó (với dữ liệu đã có)Thuận lợiTái sử dụng code Phân chia công việcDễ định vị lỗi Tiết kiệm thời gianÝ tưởng của method4Tạo methodDùng method (calling)Lấy kết quả (dữ liệu) từ method => outputGửi dữ liệu vào method => inputCơ bản về method5Tạo method6Một method phải nằm trong một lớpDùng method (calling)7Bài tập thực hành số 3.1VCT 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ình8Bài tập thực hành số 3.2VCT 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, Q10Sau đó xuất thông tin này ra màn hình9Ý 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)Lấy kết quả (dữ liệu) từ method10Lấy kết quả (dữ liệu) từ method11Lấy kết quả (dữ liệu) từ method12Bài tập thực hành số 3.3VCT tạo lớp Circle với thông tin như sau:Ban kinh r: 1Sau đó Tính diện tích và chu vi Xuất các kết quả vừa tính ra màn hình13Ý 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 Gửi dữ liệu vào method14Gửi dữ liệu vào method15Bài tập thực hành số 3.4VCT tạo lớp Sach với thông tin như sau:Ma so sach: “B12345”Ten sach: “Bai tap OOP”Gia sach: 70000Sau đó Tính giá bán sách = Giá sách – giá giảmXuất kết quả vừa tính ra màn hình16Method overloading17C# 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ênKhông có cùng signatureOverloading Benjamin FranklinBarack Obama18Signature của methodTên methodLoại kiểu, thứ tự kiểu và số lượng kiểu của các tham số Overloading19Overloading20Overloading21Bài tập thực hành số 3.4VCT tạo lớp Sach với thông tin như sau:Ma so sach: “B12345”Ten sach: “Bai tap OOP”Gia sach: 70000Sau đó 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ình22Tham số của method23Optional parameter24Optional parameter25Bài tập thực hành số 3.5VCT tạo lớp Sach với thông tin như sau:Ma so sach: “B12345”Ten sach: “Bai tap OOP”Gia sach: 70000Sau đó 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ình26Khi dùng named parameter, thứ tự tham số không quan trọngNamed parameters27public 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);Số lượng tham số không xác định28public 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){ double total = 0; foreach (int number in numbers) total += number; return total / numbers.Length;}Average(2, 3);Average(2, 5, 8);Average(41, 49, 29, 2, -7, 18);Từ khóa ‘out’, ‘ref’29public void Variables(out int x, ref int y){ x = 3; y = 17;}int ret = 2;int val = 5;Variables(out ret, ref val);Phương thức với tham số ref, out, paramspublic int Swap(ref int a, ref int b){ int tam = a; a = b; b = tam;}public int Sum(params int[] a){ int sum=0; for (int i=0; i<a.Length; i++) sum = sum + a[i]; return sum;}obj.Swap(ref x, ref y);obj.Calculation(a, b, out res1, out res2);res = obj.Sum(1,2);res = obj.Sum(1,2, 3, 4);public void Calculation(int a, int b, out int sum, out int mul){ sum = a+b; mul = a*b;}30Tái sử dụng code trong các constructor31Khi 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áchCách 1: Phần code được dùng nhiều lầnTách ra một hàm (gán nhãn cho nó private)Các constructors gọi hàm trênTái sử dụng code trong các constructor32Cách 2: Các constructor có thể gọi lẫn nhau thông qua từ khóa thisTái sử dụng code trong các constructorpublic 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Ôn lại cách viết methodXml documentations comments (giải thích trên Visual studio)Method overloadingNhiều method có cùng tên nhưng khác signatureTham số method: optional parameters, named parameter, số lượng tham số không cố định (params), ref, outTái sử dụng code trong các constructorTách code dùng nhiều lần thành một private methodDùng từ khóa this để gọi các constructors trong lớpTÓM TẮT34Bài tập thực hành số 3.6VCT tạo lớp PhanSo với thông tin như sau:Tu so: 4Mau so: 12Sau đó Rút gọn phân số trên.Xuất kết quả vừa rút gọn ra màn hình35Bài tập thực hành số 3.7VCT tạo lớp ToaDo điểm trong mặt phẳng Oxy với thông tin như sau:Hoành độ xTung độ: ySau đó 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ình36IIIIIIIVBài tập thực hành số 3.8VCT tạo lớp PhanSo với thông tin như sau:Tu soMau soSau đó 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ình37Bài tập thực hành số 3.9VCT tạo lớp ToaDo điểm trong mặt phẳng Oxy với thông tin như sau:Hoành độ xTung độ: ySau đó 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ình38Bài tập thực hành số 3.10VCT tạo lớp ToaDo điểm trong mặt phẳng Oxy với thông tin như sau:Hoành độ xTung độ: ySau đó 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ình39Bài tập thực hành số 3.11VCT 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.40Bài tập thực hành số 3.12VCT 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.41Bổ sung thêm phương thức Get/Set cho các bài tập đã làm từ 3.1 đến 3.12Bài tập thực hành nâng cao42
Các file đính kèm theo tài liệu này:
- lap_trinh_huong_doi_tuongchuong_03_phuong_thuc_9727.pptx