Lập trình Windows - Lập Trình C #- Lập Trình C Shap - Chương 3

Chia sẻ: No Comment | Ngày: | Loại File: PPT | Số trang:118

0
215
lượt xem
103
download

Lập trình Windows - Lập Trình C #- Lập Trình C Shap - Chương 3

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'lập trình windows - lập trình c #- lập trình c shap - chương 3', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Lập trình Windows - Lập Trình C #- Lập Trình C Shap - Chương 3

  1. Chương 3 Xây dưng lơp va giao diên ̣ ́ ̀ ̣ 1
  2. Nội dung Lâp trinh hướng đôi tượng là gi? ̣ ̀ ́ ̀  Khai báo lớp  ́ Khai bao interface  Constructor & destructor  Thuộc tính (field)  Method  Inheritance  Protected fields  Overriding method  2
  3. ̣ Nôi dung Nôi Polymorphism (Đa hình)  Down cast – up cast  Abstract class  Sealed class, nested class  Interface  3
  4. Overview Overview “Everything is an object! At least, that is the view from inside the CLR and the C# programming language. This is no surprise, because C# is, after all, an object-oriented language. The objects that you create through class definitions in C# have all the same capabilities as the other predefined objects in the system…” Apress-Accelerated C# 2008 4
  5. Object-oriented Programming (OOP) Object-oriented Kỹ thuât lâp trinh truyên thông ( procedural ̣̣ ̀ ̀ ́  programming):  all functionality is contained in a few modules of code (often just one)  Khó thay thế cai tiên̉ ́  Kỹ thuât OOP : ̣  Sử dung nhiêu modules of code, môi module cung ̣ ̀ ̃ câp 1 chức năng riêng và có thể được cô lâp ́ ̣ (isolated) hay thâm chí đôc lâp hoan toan với ̣ ̣ ̣ ̀ ̀ nhau.  Dễ dang sử dung lai cac module ̀ ̣ ̣ ́ 5
  6. What is an Object? What An object is a building block of an OOP  application Objects in C# are created from types, just like  the variables. The type of an object is known by a special  name in OOP, its class. You can use class definitions to instantiate  objects, which means creating a real, named instance of a class. 6
  7. ́ ́ ̉ Câu truc cua object Câu ̣ ̀ ́ Môt object gôm co:  Field  Method  7
  8. Life Cycle of an Object Life ̀ ̣ Gôm 2 giai đoan (two important stages):  ➤ Construction: đôi tượng cân được khởi tao, và được thực ́ ̀ ̣ thi bởi ham constructor ̀ ➤ Destruction: khi đôi tượng bị huy bo, 1 số nhiêm vụ clean- ́ ̉ ̉ ̣ up cân được thực thi để giai phong bộ nhớ  ham ̀ ̉ ́ ̀ destructor. 8
  9. Tạo lớp trong C# Khai báo lớp  [access modifier] class [: base class] { // class body } Nếu ko khai báo lớp cơ sở thì C# mặc định xem  lớp cơ sở là object Lớp luôn là kiểu dữ liệu tham chiếu (reference  type) trong C# 9
  10. Khóa truy xuất cho class Khóa (Access modifier) Một class chỉ có 2 khóa truy xuất   Internal: chỉ cho phép sử dụng bên trong project ̣ ̀ hiên hanh (default) internal class MyClass { // Class members. } ́ Public: cho phép cac project bên ngoài truy  xuất public class MyClass { // Class members. } 10
  11. Interface là gi? ̀ Interface Interface là 1 tâp hợp cac method và property điên hinh ̣ ́ ̉ ̀  chung nao đó được nhom lai cung nhau để đong goi ̀ ́ ̣ ̀ ́ ́ (encapsulate) 1 chưc năng nao đo. ́ ̀ ́ Interface không chưa mã để thực thi, nó chỉ đinh nghia ́ ̣ ̃  ́ ̀ ̀ ̉ ́ ́ cac thanh phân cua chinh no. Sau khi đinh nghia interface, có thể thực thi nó trong 1 ̣ ̃  class  class sẽ hỗ trợ (support) moi property và thanh ̣ ̀ phân được xac đinh trong interface. ̀ ́ ̣ Interfaces cannot exist on their own  không thể khởi tao ̣  1 interface (‘‘instantiate an interface’’) 11
  12. ̉ ̃ ̀ Biêu diên interface băng UML Biêu 12
  13. Khai ́ Khai bao interface Khai bao interface cung tương tự như khai bao lớp: ́ ̃ ́  interface IMyInterface { // Interface members. } ́ ́ ́ Cac khoa truy xuât: internal (default), public, không  được phep dung astract hay sealed ́ ̀ Tinh kế thừa cua interface cung tương tự như tinh ́ ̉ ̃ ́  kế thừa cua class ̉ public interface IMyInterface : IMyBaseInterface, IMyBaseInterface2 { // Interface members. } 13
  14. So sanh Interface và class So ́ Tât cả class đêu kế thừa từ lớp cơ sở System.Object theo ́ ̀  ̣ ́ dang cây phân câp (inheritance hierarchy) Interfaces không phai là class, vì vây không kế thừa từ ̉ ̣  System.Object. Không thể khởi tao (instantiate) môt interface như khởi tao ̣ ̣ ̣  1 class. 14
  15. Các thành phần của class Các Lớp có thể chứa các phần sau  Constructor và destructor  Field và constant  Method  Property  Indexer  Event  Chứa các kiểu khác (nested): class, struct, enumeration,  interface và delegate 15
  16. Constructor Constructor Có cung tên với class, có thể không có tham số nao ̀ ̀  (parameter) và không trả về bât kỳ giá trị nao (kể cả void). ́ ̀ Môi class phai có it nhât 1 constructor. Nêu ban không tao ̃ ̉ ́ ́ ́ ̣ ̣  constructor cho 1 class thỉ compiler sẽ tự đông phat ra 1 ̣ ́ default constructor Cho phép overload constructor để tạo ra nhiều cách  khởi tạo đối tượng 16
  17. ̣ Phân loai Constructor Phân Constructor mặc định  Không có tham số  Khởi tạo đối tượng từ class khi chưa biết thông tin gì về nó  Constructor sao chép  Tham số vào là đối tượng cùng lớp  Tạo ra đôi tượng như bản sao của đôi tượng đầu vào ́ ́  ̣ ̣ ́ Constructor không măc đinh khac  Có một hay nhiều tham số vào  Tạo đôi tương khi biết một số thông tin nào về nó ́  17
  18. Constructor Constructor class HocSinh { //... public HocSinh() { hoTen = “unknown"; Constructor mặc định namSinh = 1990; diemVan = diemToan = 0; } public HocSinh(HocSinh hs) { hoTen = hs.hoTen; Constructor sao chép namSinh = hs.namSinh; diemVan = hs.diemVan; diemToan = hs.diemToan; } public HocSinh(string ht) Constructor khác { (tạo học sinh khi biết họ tên) hoTen = ht; } } 18
  19. Constructor Constructor Khai báo private cho constructor sẽ ko cho phép khởi tạo  đối tượng Ko thể tạo thể hiện/obj 19
  20. class Car { // The 'state' of the Car. public string petName; public int currSpeed; // A custom default constructor. public Car() { petName = "Chuck"; A custom default currSpeed = 10; constructor static void Main(string[] args) } { // Here, currSpeed will receive the // Make a Car called Chuck // default value of an int (zero). public Car(string pn) Instance Constructors MPH. going 10 { Car chuck = new Car(); petName = pn; } chuck.PrintState(); // Let caller set the full 'state' of the Car. // Make a Car called Mary going public Car(string pn, int cs) { 0 MPH. petName = pn; Car mary = new Car("Mary"); currSpeed = cs; mary.PrintState(); } .. // Make a Car called Daisy } going 75 MPH. Car daisy = new Car("Daisy", 20

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản