110 likes | 339 Views
BUỔI 5: Chương 2 Lớp Đối Tượng - CLASS -. Môn : Lập trình hướng đối tượng Trình bày : TRẦN ĐỨC TÂM. Kiểu dữ liệu. Có 2 loại kiểu dữ liệu Kiểu tham trị Kiểu tham chiếu. Kiểu tham trị (value type). Biến kiểu tham trị sẽ lưu giá trị trực tiếp.
E N D
BUỔI 5: Chương2LớpĐốiTượng- CLASS - Môn: Lậptrìnhhướngđốitượng Trìnhbày: TRẦN ĐỨC TÂM
Kiểu dữ liệu • Có 2 loại kiểu dữ liệu • Kiểu tham trị • Kiểu tham chiếu
Kiểu tham trị (value type) • Biến kiểu tham trị sẽ lưu giá trị trực tiếp. • Kiểu tham trị gồm: kiểu số nguyên, kiểu số thực, kiểu kí tự, kiểu boolean Stack Stack Heap Heap int x = 10 copy giá trị 10 10 x x int y = x 10 y Lệnh 2 Lệnh 1
Kiểu tham chiếu (reference type) • Biến kiểu tham chiếu sẽ lưu địa chỉ trỏ đến ô nhớ chứa giá trị ấy • Kiểu tham chiếu gồm: kiểu xâu kí tự, kiểu Object, các lớp đối tượng do ta định nghĩa Stack Stack Heap Heap ClassA obj1 = new ClassA(); copy địa chỉ obj1 obj1 ClassA obj2 = obj1; obj2 Lệnh 2 Lệnh 1
Tham số hình thức và tham số thực • Tham số hình thức (Formal Parameter) là biến cục bộ được định nghĩa ở danh sách các tham số của phương thức • Khi phương thức được gọi, biểu thức hay biến dùng để truyền vào phương thức được gọi là tham số thực (Actual Parameter) Tham số hình thức classSimpleClass { publicvoid PrintSum(int x, int y) { int Sum = x + y; Console.WriteLine(“Ket qua: {0} + {1} = {2}", x, y, Sum); } publicvoid AnotherMethod() { int a = 10; PrintSum(5, a); } } Tham số thực
Các cách truyền tham số • Có 2 loại truyền tham số: • Truyền tham số bắt buộc (mandatory parameter) • Truyền tham số tùy chọn (optional parameter) • Truyền tham số bắt buộc có 4 kiểu: • Tham trị (value parameter) • Tham chiếu (reference parameter) • Tham số ra (output parameter) • Tham số mảng (parameter arrays) • Truyền tham số tùy chọn có 1 kiểu: • Tham trị (value parameter) Optional paramter chỉ có trong phiên bản C# 4.0 trở lên
Tham trị (value parameter) classClassA { publicint V1 = 20; publicint V2 = 12; } classClassB { publicint F; publicvoid MyMethod(ClassA f1, int f2) { f1.V1 = f1.V1 + 5; f2 = f2 + 5; } } classProgram { staticvoid Main() { ClassBb1 = newClassB(); ClassA a1 = newClassA(); intn = 10; b1.MyMethod(a1, n); } } • Khi truyền tham trị, dữ liệu sẽ được truyền vào phương thức bằng cách gán giá trị của tham số thực vào tham số hình thức • Tham trị không bắt buộc phải là biến. Nó có thể là biểu thức • Tham số thực phải được gán giá trị trước khi truyền vào phương thức
Tham chiếu (reference parameter) • Khi truyền tham chiếu, tham số thực và tham số hình thức là 2 tên gọi khác cùng chỉ 1 ô nhớ • Mọi thay đổi trên tham số hình thức sẽ ảnh hưởng tham số thực • Tham chiếu bắt buộc phải là biến • Tham chiếu phải được gián giá trị trước khi truyền vào phương thức classClassA { publicint V1 = 20; publicint V2 = 12; } classClassB { publicint F; publicvoid MyMethod(refClassA f1,refint f2) { f1.V1 = f1.V1 + 5; f2 = f2 + 5; } } classProgram { staticvoid Main() { ClassBb1 = newClassB(); ClassA a1 = newClassA(); intn = 10; b1.MyMethod(ref a1,refn); } }
Tham số ra (output parameter) classClassA { publicint V1 = 20; publicint V2 = 12; } classClassB { publicint F; publicvoidMyMethod(outClassA f1,outint f2) { f1 = newClassA(); f1.V1 = f1.V1 + 5; f2 = f2 + 5; } } classProgram { staticvoid Main() { ClassBb1 = newClassB(); ClassA a1 ; int n; b1.MyMethod(out a1,out n); } } • Khi truyền tham số ra, tham số thực và tham số hình thức là 2 tên gọi khác cùng chỉ 1 ô nhớ • Mọi thay đổi trên tham số hình thức sẽ ảnh hưởng tham số thực • Tham số ra bắt buộc phải là biến • Tham số ra không cần phải được gián giá trị trước khi truyền vào phương thức • Tham số hình thức phải được gán giá trị trước khi kết thúc phương thức
Overloading Method • Overloading method: quá tải hàm, chồng hàm • Có thể khai báo tên hàm tên giống nhau nhưng danh sách tham số khác nhau • Khi gọi hàm quá tải, hàm có tham số phù hợp nhất sẽ được thực thi
Bài tập về nhà • Đọc và tóm tắt phần The Power of Encapsulation quyển [3]