ngÔn ngỮ thỐng kÊ r -...

42
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

Upload: dophuc

Post on 30-Apr-2018

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 2: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 3: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

TẠO METHOD

3

Page 4: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết 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

Ý tưởng của method

4

Page 5: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết 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

Cơ bản về method

5

Page 6: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

Tạo method

6

Một method phải nằm trong một lớp

Page 7: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

Dùng method (calling)

7

Page 8: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 9: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 10: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viế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)

Lấy kết quả (dữ liệu) từ method

10

Page 11: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

Lấy kết quả (dữ liệu) từ method

11

Page 12: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

Lấy kết quả (dữ liệu) từ method

12

Page 13: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 14: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết 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

Gửi dữ liệu vào method

14

Page 15: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

Gửi dữ liệu vào method

15

Page 16: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 17: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

METHOD OVERLOADING

17

Page 18: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 19: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 20: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

Overloading

20

Page 21: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

Overloading

21

Page 22: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 23: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

THAM SỐ CỦA METHOD

23

Page 24: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

Optional parameter

24

Page 25: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

Optional parameter

25

Page 26: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 27: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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);

Page 28: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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);

Page 29: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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);

Page 30: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 31: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

TÁI SỬ DỤNG CODE TRONG CÁC CONSTRUCTOR

31

Page 32: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 33: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 34: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

Ô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

Page 35: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 36: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 37: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 38: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 39: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 40: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 41: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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

Page 42: NGÔN NGỮ THỐNG KÊ R - fit.huflit.edu.vnfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-03.Phuong-thuc... · Bài tập thực hành số 3.4 ... Ôn lại cách viết method

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