Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
82,5 KB
Nội dung
1
HƯỚNG ĐỐI
TƯỢNG TRONG
C#
2
Nhắ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 đốitượng tham
gia vào chương trình đó.
3
ĐỐI TƯỢNG – LỚP
Một đốitượng là thực thể trong hệ thống.
Mỗi đốitượng sẽ có một số thuộc tính và
một số hoạt động nhất định trong hệ
thống.
Lớp là khái niệm trừu tượng phản ánh tập
hợp các đốitượng có cùng tính chất.
Một đốitượng là một thể hiện của một lớp.
4
CẤU TRÚC CỦA LỚP
Class <tên lớp>
{
Các biến thành viên;
Hàm xây dựng;
Các thuộc tính;
Các phương thức;
}
5
BIẾN THÀNH VIÊN
Cú pháp:
<phạm vi truy cập> <kiểu> <tên biến>;
class ConNguoi()
{
public string hoTen;
protected string gioiTinh;
DateTime ngaySinh;
}
6
6
Phạm vi truy cập
private: Chỉ truy cập được từ trong lớp khai
báo.
protected: Truy cập được từ trong lớp khai
báo và các lớp con của lớp khai báo.
public: Truy cập được từ mọi nơi.
Mặc định là private
7
HÀM XÂY DỰNG
Cú pháp:
<phạm vi truy cập> <tên lớp>([danh sách
tham số])
{
Các phép toán gán giá trị cho các biến
thành viên;
}
8
HÀM XÂY DỰNG
Hàm xây dựng không
tham số:
public ConNguoi()
{
hoTen=“”;
gioiTinh=“Nam”;
}
Gọi hàm xây dựng:
ConNguoi cn;
cn=new ConNguoi()
Nếu một lớp không định nghĩa hàm xây dựng thì lớp sẽ có một
hàm xây dựng mặc nhiên là:
Public ConNguoi(){}
9
HÀM XÂY DỰNG
Hàm xây dựng có tham số:
public ConNguoi(string hoTen,string gioiTinh, DateTime NS)
{
this.hoTen=hoTen;
this.gioiTinh=gioiTinh;
ngaySinh=NS;
}
Gọi hàm:
ConNguoi cn=new ConNguoi(“NVA”,”Nam”,ns);
10
THUỘC TÍNH
Cú pháp:
<thuộc tính tr.cập> <kiểu> <tên
thuộc tính>
{
[get{}] // gán giá trị trả về cho
thuộc tính.
[set{}] // thiết lập giá trị cho
biến thành viên.
}
VD:
Public string HoTen
{
get{return hoTen;}
set{hoTen=value;}
}
Ví dụ:
ConNguoi cn=new
ConNguoi();
Cn.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.
[...]... } 23 TƯƠNG QUAN GIỮA ĐỐITƯỢNG LỚP CON VÀ ĐỐITƯỢNG LỚP CHA Tất cả các đốitượng của lớp con và đốitượ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 DTLopCha2 DTLopCha1 Biến tĩnh DTLopCon1 DTLopCon2 24 TƯƠNG QUAN GIỮA ĐỐITƯỢNG LỚP CON VÀ ĐỐITƯỢNG LỚP CHA Ta có thể gán một đốitượ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... đối tượngtrong 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 Lớp CuTri (Con) public int Tuoi() { int tuoi=base.Tuoi(); return tuoi ; } Lớp ConNguoi (Cha) public int Tuoi() { int tuoi=DateTime.Now.YearngaySinh.Year+1; return tuoi; } 23 TƯƠNG QUAN GIỮA ĐỐITƯỢNG LỚP CON VÀ ĐỐI... hàm nhập thông tin cho đốitượng hiện hành Viết hàm in thông tin của đốitượng hiện hành 32 Bà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 đốitượng hiện hành Viết hàm in thông tin của đốitượng hiện hành 33 ... CuTri ct=new CuTri(); cn=ct; // Hợp lệ ct=cn; //Hỗn 25 TƯƠNG QUAN GIỮA ĐỐITƯỢNG LỚP CON VÀ ĐỐITƯỢ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 26 LỚP DateTime Khai báo đốitượng mới cho lớp: DateTime t = new DateTime(); DateTime t = new... protected string gioiTinh; DateTime ngaySinh; } 20 HÀ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 Ví dụ: public CuTri():base() { cmnd=“”; } public ConNguoi() { hoTen=“”; gioiTinh=“Nam”; } 21 HÀM HỦY TRONG LỚP CON Hàm hủy được gọi một cách tự động khi đốitượng được thu hồi Cú pháp: ~() { thu hồi vùng... tính tĩnh public Class CuTri { static int soNguoiDiBau; public static void DiBau() { soNguoiDiBau++; } } 17 GỌ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 đốitượng cụ thể Ví dụ: CuTri ct=new CuTri(); ct.hoTen=“NVA”; Đối với các yếu tố tĩnh của một lớp ta phải gọi chúng thông qua tên của lớp đó Ví dụ: int soNguoiDiBau=CuTri.SoNguoiDiBau; int so=ct... SoPhieuBau { get {return soPhieuBau;} } } UngCuVien ucv=new UngCuVien(); int soPB=ucv.SoPhieuBau; //OK ucv.SoPhieuBau=7; // Lỗi 11 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 đốitượngtrong lớp đó Cú pháp: ( [Danh sách các tham số]) { nội dung phương thức; } 12 PHƯƠNG THỨC VD: class NhanKhau() { String cmnd; public string hoTen;... ngaySinh; int namKetHon; String tinhTrangHonNhan; String hoTenVoChong; public void LapGiaDinh(int nam, string hoTen) { namKetHon=nam; tinhTrangHonNhan=“Đã kết hôn”; hoTenVoChong=hoTen; } } 13 OVERLOAD 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ố class NhanKhau() { public void LapGiaDinh(int nam, string hoTen) { namKetHon=nam; . trình đó.
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ệ
thống.
Lớp.
1
HƯỚNG ĐỐI
TƯỢNG TRONG
C#
2
Nhắc lại về lập trình HĐT
Tiếp cận HĐT giúp khắc phục