PHƯƠNG THỨC Phương thức của một lớp phản ánh các hành động của các đối tượng trong lớp đó... OVERLOAD TRONG PHƯƠNG THỨCTa có thể định nghĩa nhiều phương thức của một lớp với cùng một tê
Trang 1HƯỚNG ĐỐI TƯỢNG TRONG C#
Trang 2Nhắc lại về lập trình HĐT
Tiếp cận HĐT giúp khắc phục khuyết điểm của lập trình cấu trúc:
Không sử dụng lại được mã nguồn.
Mọi thay đổi cấu trúc đòi hỏi phải thay đổi cả giải
thuật
Chỉ phát huy hiệu quả trong module chương trình
nhỏ.
Lập trình HĐT nhìn nhận và phân tích chương trình là những hoạt động mà các đối tượng tham gia vào chương trình đó.
Trang 3ĐỐI TƯỢNG – LỚP
Một đối tượng là thực thể trong hệ thống
Mỗi đối tượng sẽ có một số thuộc tính và một số hoạt động nhất định trong hệ
Trang 5public string hoTen;
protected string gioiTinh;
DateTime ngaySinh;
}
Trang 10Cn.HoTen=“Nguyen Van A”; // Hàm set trong
thuộc tính HoTen được gọi.
String ht= cn.HoTen;
// Hàm get trong thuộc tính HoTen được gọi.
Trang 11public string hoTen;
protected string gioiTinh;
Trang 12PHƯƠNG THỨC
Phương thức của một lớp phản ánh các hành động của các đối tượng trong lớp đó
Cú pháp:
<thuộc tính tr.cập> <kiểu trả về> <tên
phương thức>( [Danh sách các tham số]){
nội dung phương thức;
}
Trang 13public string hoTen;
protected string gioiTinh;
Trang 14OVERLOAD TRONG PHƯƠNG THỨC
Ta có thể định nghĩa nhiều phương thức của một lớp với cùng một tên nhưng phải khác nhau về danh sách tham số.
Trang 15BIẾN THÀNH VIÊN TĨNH (STATIC)
Trang 16static int soNguoiDiBau;
public static int SoNguoiDiBau
Trang 17PHƯƠNG THỨC TĨNH (STATIC)
Các phương thức tĩnh chỉ được quyền truy cập vào biến thành viên tĩnh (không có điều ngược lại) và thuộc tính tĩnh.
public Class CuTri
{
static int soNguoiDiBau;
public static void DiBau()
Trang 18GỌI CÁC YẾU TỐ TĨNH
Đối với các yếu tố thông thường của một lớp, chúng
ta phải gọi chúng thông qua một đối tượng cụ thể.
Trang 19biến thành viên, thuộc tính và phương thức
có thuộc tính truy cập là protected hoặc public của lớp cha
Trang 20public string hoTen;protected string
gioiTinh;
DateTime ngaySinh;}
Trang 21HÀM XÂY DỰNG TRONG LỚP CON
Ta có thể xây dựng một hàm xây dựng trong lớp con và thừa kế từ các hàm xây dựng
trong lớp cha thông qua từ khóa base
hoTen=“”;
gioiTinh=“Nam”;}
Trang 22HÀM HỦY TRONG LỚP CON
Hàm hủy được gọi một cách tự động khi đối tượng được thu hồi
Trang 23TÁI ĐỊNH NGHĨA HÀM (OVERRIDES)
Một đối tượng trong lớp con hoàn toàn có thể sử
dụng lại các phương thức đã được định nghĩa trong lớp cha Tuy nhiên, ta có thể sửa đổi phương thức
đó, hoặc viết lại hoàn toàn mới trong lớp con.
{ int tuoi=DateTime.Now.Year- ngaySinh.Year+1;
return tuoi;
}
Trang 24TƯƠNG QUAN GIỮA ĐỐI TƯỢNG
LỚP CON VÀ ĐỐI TƯỢNG LỚP CHA
Tất cả các đối tượng của lớp con và đối
tượng của lớp cha đều sử dụng chung một
vùng nhớ đối với các biến thành viên tĩnh của lớp cha
Trang 25TƯƠNG QUAN GIỮA ĐỐI TƯỢNG
LỚP CON VÀ ĐỐI TƯỢNG LỚP CHA
Ta có thể gán một đối tượng của lớp cha bằng một đối tượng của lớp con (Không có điều ngược lại)
ConNguoi cn=new ConNguoi();
CuTri ct=new CuTri();
cn=ct; // Hợp lệ
ct=cn; //Hỗn
Trang 26TƯƠNG QUAN GIỮA ĐỐI TƯỢNG
LỚP CON VÀ ĐỐI TƯỢNG LỚP CHA
Gọi phương thức của lớp cha đã bị lớp con viết đè:
CuTri ct=new CuTri();
ct.NgaySinh=new DateTime(1986,9,15);
ConNguoi cn=ct;
String tuoi=cn.Tuoi(); // tuoi=27
String tuoi1=ct.Tuoi();// tuoi1=26
Trang 27LỚP DateTime
Khai báo đối tượng mới cho lớp:
DateTime t = new DateTime();
DateTime t = new DateTime(2012,11,10);
Trang 28LỚP DateTime
Lấy số ngày giữa 2 ngày:
DateTime t = new DateTime(2012, 11, 10); DateTime t1 = new DateTime(2012, 11, 9); TimeSpan ts = t - t1;
ts.TotalDays;
Trang 30Bài tập(tt)
Viết hàm trả về một phân số là kết quả trừ của phân số hiện hành và phân số khác
Viết hàm trả về một phân số là kết quả
nhân của phân số hiện hành và phân số khác
Viết hàm trả về một phân số là kết quả
chia của phân số hiện hành và phân số
khác
Trang 31 Viết hàm nhập thông tin cho lớp Diem.
Viết hàm in thông tin của điểm hiện hành.
Viết hàm tính khoảng cách giữa điểm hiện hành và điểm khác.
Trang 32Bài tập(tt)
Bài 3: Xây dựng lớp ConNguoi có các
thuộc tính: hoTen, ngaySinh, gioiTinh
Viết hàm xây dựng không tham số cho lớp
Trang 33Bài tập(tt)
Bài 4: Xây dựng lớp GiaoVien thừa kế từ lớp ConNguoi và có thêm các thuộc tính maGV, khoa, chuyenMon
Viết hàm xây dựng có 6 tham số
maGiangVien, hoTen và ngaySinh, gioiTinh, khoa, chuyenMon
Viết hàm nhập thông tin cho đối tượng hiện hành.
Viết hàm in thông tin của đối tượng hiện hành.