NGÔN NGỮ THỐNG KÊ R -...
Transcript of NGÔN NGỮ THỐNG KÊ R -...
Click to edit Master subtitle 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
CHƯƠNG 3:
1
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
NỘI DUNG
2
TẠO METHOD
3
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
Ý tưởng của method
4
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
Cơ bản về method
5
Tạo method
6
Một method phải nằm trong một lớp
Dùng method (calling)
7
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
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
Ý 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ừ method
10
Lấy kết quả (dữ liệu) từ method
11
Lấy kết quả (dữ liệu) từ method
12
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
Ý 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 method
14
Gửi dữ liệu vào method
15
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
METHOD OVERLOADING
17
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
Overloading
Benjamin Franklin Barack Obama
18
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ố
Overloading
19
Overloading
20
Overloading
21
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
THAM SỐ CỦA METHOD
23
Optional parameter
24
Optional parameter
25
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
Khi dùng named parameter, thứ tự tham số không quan trọng
Named parameters
27
public int Clamp(int value, int min, int max) { if(value < min) { return min; } 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 định
28
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) { 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’
29
public 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, params
public 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; }
30
TÁI SỬ DỤNG CODE TRONG CÁC CONSTRUCTOR
31
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
Tái sử dụng code trong các constructor
32
Cách 2: Các constructor có thể gọi lẫn nhau thông qua từ khóa this
Tái sử dụng code trong các constructor
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
Ô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
TÓM TẮT
34
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
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 - Tung độ: y 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
I II
III IV
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
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
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
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
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
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
Bài tập thực hành nâng cao
42