intTypePromotion=1
ADSENSE

HƯỚNG ĐỐI TƯỢNG TRONG C#

Chia sẻ: Huynh Hoang Khai | Ngày: | Loại File: PPT | Số trang:33

119
lượt xem
20
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Lập trình hướng đối tượng trong C#, khái niệm và hướng dẫn lập trình Mục tiêu 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 đó....

Chủ đề:
Lưu

Nội dung Text: HƯỚNG ĐỐI TƯỢNG TRONG C#

  1. HƯỚNG ĐỐI TƯỢNG TRONG C# 1
  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: sử dụng lại được mã nguồn.  Không  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 đó. 2
  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 là khái niệm trừu tượng phản ánh tập hợp các đối tượng có cùng tính chất.  Một đối tượng là một thể hiện của một lớp. 3
  4. CẤU TRÚC CỦA LỚP Class { 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; } 4
  5. BIẾN THÀNH VIÊN Cú pháp: ; class ConNguoi() { public string hoTen; protected string gioiTinh; DateTime ngaySinh; } 5
  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 6 6
  7. HÀM XÂY DỰNG Cú phá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; } 7
  8. HÀM XÂY DỰNG Hàm xây dựng không Gọi hàm xây dựng:  tham số: ConNguoi cn; public ConNguoi() cn=new ConNguoi() { hoTen=“”; gioiTinh=“Nam”; } 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(){} 8
  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); 9
  10. THUỘC TÍNH Cú pháp: Ví dụ: ConNguoi cn=new { ConNguoi(); [get{}] // gán giá trị trả về cho thuộc tính. Cn.HoTen=“Nguyen Van A”; [set{}] // thiết lập giá trị cho // Hàm set trong thuộc biến thành viên. } tính HoTen được gọi. VD: Public string HoTen String ht= cn.HoTen; { // Hàm get trong thuộc tính get{return hoTen;} set{hoTen=value;} HoTen được gọi. } 10
  11. THUỘC TÍNH CHỈ ĐỌng: C Là thuộc tính chỉ có hàm get. Cách sử dụ UngCuVien ucv=new UngCuVien(); class UngCuVien() { int soPB=ucv.SoPhieuBau; //OK String cmnd; public string hoTen; ucv.SoPhieuBau=7; // Lỗi protected string gioiTinh; DateTime ngaySinh; int soPhieuBau; public int SoPhieuBau { get {return soPhieuBau;} } } 11
  12. 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 đó.  Cú pháp: ( [Danh sách các tham số]) { nội dung phương thức; } 12
  13. PHƯƠNG THỨC VD: class NhanKhau() { String cmnd; public string hoTen; protected string gioiTinh; DateTime ngaySinh; int namKetHon; String tinhTrangHonNhan; String hoTenVoChong; public void LapGiaDinh(int nam, string hoTen) { namKetHon=nam; tinhTrangHonNhan=“Đã kết hôn”; hoTenVoChong=hoTen; } } 13
  14. 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; tinhTrangHonNhan=“Đã kết hôn”; hoTenVoChong=hoTen; } public void LapGiaDinh(string hoTen) { namKetHon=DateTime.Now.Year; tinhTrangHonNhan=“Đã kết hôn”; hoTenVoChong=hoTen; } } 14
  15. BIẾN THÀNH VIÊNMô hình b(STATIC) TĨNH ộ nhớ: Cách khai báo: CuTri ct1=new CuTri(); public Class CuTri{ CuTri ct2=new CuTri(); String cmnd; public string hoTen; ct1 cmnd protected string soNguoiDiBau gioiTinh; cmnd DateTime ngaySinh; ct2 static int soNguoiDiBau; } 15
  16. THUỘC TÍNH TĨNH (STATIC) Các thuộc tính 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). public Class CuTri { ... static int soNguoiDiBau; public static int SoNguoiDiBau { get { return soNguoiDiBau; } } } 16
  17. PHƯƠ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() { soNguoiDiBau++; } } 17
  18. 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 đối tượ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. SoNguoiDiBau; //Lỗi cú pháp 18
  19. TÍNH THỪA KẾ Tính thừa kế giúp có thể tái sử dụng lại mã nguồn. Một lớp được thừa kế từ một lớp khác được gọi là lớp con, lớp còn lại gọi là lớp cha. Lớp con có thể sử dụng và truy cập những biế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. 19
  20. TÍNH THỪA KẾ Lớp con: Lớp cha: Class CuTri:ConNguoi class ConNguoi() { { String cmnd; public string hoTen; } protected string gioiTinh; DateTime ngaySinh; } 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2