Bài 4: Xây dựng lớp - đối tượng

Chia sẻ: Tan Tan | Ngày: | Loại File: PPT | Số trang:21

0
77
lượt xem
13
download

Bài 4: Xây dựng lớp - đối tượng

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

Mục tiêu của bài: Nhằm trang bị cho người học: Kiến thức và kỹ năng tạo lớp, tạo đối tượng. Kiến thức và kỹ năng về các phương thức, các thành phần static. Kiến thức và kỹ năng về tham số và các phương thức nạp chồng. Kiến thức và kỹ năng về thuộc tính.

Chủ đề:
Lưu

Nội dung Text: Bài 4: Xây dựng lớp - đối tượng

  1. Bài 4. Xây dựng lớp – Đối tượng Mục tiêu của bài: Nhằm trang bị cho người học: Kiến thức và kỹ năng tạo lớp, tạo đối tượng. Kiến thức và kỹ năng về các phương thức, các thành phần static. Kiến thức và kỹ năng về tham số và các phương thức nạp chồng. Kiến thức và kỹ năng về thuộc tính.
  2. 1. Lớp và đối tượng 1.1 Lớp (Class) Lớp hay còn gọi là class là sự gói gọn các dữ liệu và các  phương thức (method) họat động trên dữ liệu đó.Trong C# , lớp  được xem là kiểu dữ liệu tham chiếu (reference) . Khai báo một  lớp bằng cách sử dụng từ khoá class. Cú pháp đầy đủ của khai  báo một lớp như sau: [Thuộc tính] [Bổ sung truy cập] class  [:  Lớp cơ sở] { }
  3. 1. Lớp và đối tượng + Thuộc tính  ­ public :Không hạn chế. Những thành viên được đánh dấu public có thể  được dùng bởi bất kì các phương thức của ớp bao gồm những lớp khác. ­ private : Thành viên trong một lớp A được đánh dấu là private thì chỉ  được truy cập bởi các phương thức của lớp A. ­ protected : Thành viên trong lớp A được đánh dấu là protected thì chỉ  được các phương thức bên trong lớp A và những phương thức dẫn xuất từ lớp A  truy cập. ­ internal : Thành viên trong lớp A được đánh dấu là internal thì được  truy cập bởi những phương thức của bất cứ lớp nào trong cùng khối hợp ngữ với  A. ­ protected internal : Thành viên trong lớp A được đánh dấu là protected  internal được truy cập bởi các phương thức của lớp A, các phương thức của lớp  dẫn xuất của A, và bất cứ lớp nào trong cùng khối hợp ngữ của A. + Bổ sung truy cập : partial cho phép triển khai nhiều class tên giống nhau trên  các file khác nhau.Sau đó có thể kết hợp trong không gian tên (namespace) hoặc  sử dụng Assembly. + Hàm khởi tạo (Contructor) Hàm khởi tạo là một phương thức của lớp và được gọi thực hiện khi một  lớp được tạo ra.Tên hàm khởi tạo trùng với tên lớp.
  4. 1. Lớp và đối tượng Ví dụ hàm khởi tạo public class mySampleClass { public mySampleClass() { // This is the no parameter constructor method. // First Constructor } public mySampleClass(int Age) { // This is the constructor with one parameter. // Second Constructor } public mySampleClass(int Age, string Name) { // This is the constructor with two parameters. // Third Constructor } }
  5. 1. Lớp và đối tượng 1.2 Đối tượng (Obiect) Còn đối tượng là những đại diện cho lớp, mọi đối tượng đều có  chung tính chất và hành vi mà lớp định nghĩa. Khai báo đối tượng :  ClsCommon cm = new ClsCommon();
  6. 1. Lớp và đối tượng namespace ConsoleApplication2 {      class ClsCommon         { ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­          int i = 10; ­­­­­­­          int j = 20; Kết quả :  Gia tri tra ve :30          public int sum()          { ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­              return i + j; ­­­­­­­          }         } } namespace ConsoleApplication2 {      public class UseClass         {          static void Main()          { //Tao doi tuong              ClsCommon cm = new ClsCommon();              Console.WriteLine("Gia tri tra ve :{0}", cm.sum());          }
  7. 2. Sử dụng các thành viên static Trong Class có thể có phương thức và thuộc tính là static hoặc  không , nếu khai báo phương thức có từ khóa static thì bạn có  thể truy cập trực tiếp phương thức mà không cần khởi tạo đối  tượng chứa nó . Ví dụ sử dụng static.
  8. 2. Sử dụng các thành viên static namespace ConsoleApplication2 {      class ClsA         {          static int i = 10;          static int j = 20;          public static int Total()          {              return i + j;          }          public static int Sum()          {              int a = 30;              int b = 40;              return a + b;          }         }
  9. 2. Sử dụng các thành viên static namespace ConsoleApplication2 {      public class UseClass         {          static void Main()          {              Console.WriteLine("Gia tri tra ve Total :{0}",  ClsA.Total());              Console.WriteLine("Gia tri tra ve Sum :{0}",  ClsA.Sum());          }         } } ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ Kết qua : Gia tri tra ve Total : 30     Gia tri tra ve Total : 70
  10. 3. Hủy đối tượng 3.1 Phương thức Finalize Ngôn ngữ C# cung cấp cơ chế thu dọn (garbage  collection) và do vậy không cần phải khai báo tường minh các  phương thức hủy. Tuy nhiên, khi làm việc với các đoạn mã  không được quản lý thì cần phải khai báo tường minh các  phương thức hủy để giải phóng các tài nguyên.C# cung cấp  ngần định một phương thức để thực hiện điều khiển công việc  này, phương thức đó là Finalize() hay còn gọi là bộ kết thúc.  Phương thức Finalize này sẽ được gọi bởi cơ chế thu dọn khi  đối tượng bị hủy. Phương thức kết thúc chỉ giải phóng các tài nguyên mà  đối tượng nắm giữ, và không tham chiếu đến các đối tượng  khác. Nếu với những đoạn mã bình thường tức là chứa các tham  chiếu kiểm soát được thì không cần thiết phải tạo và thực thi  phương thức Finalize(). Chúng ta chỉ làm điều này khi xử lý các  tài nguyên không kiểm soát được.
  11. 3. Hủy đối tượng Cú pháp phương thức hủy trong ngôn ngữ C# ~Class1() ~Class1() { // Thực hiện một số công việc } Cũng tương tự như viết : Class1.Finalize() { // Thực hiện một số công việc base.Finalize(); }
  12. 4. Truyền tham số và nạp chồng phương thức 4.1 Truyền tham số 4.1.1 Truyền tham trị 4.1.2 Truyền tham chiếu  .2 Nạp chồng phương thức(Overloading) 
  13. 4.1.2 Truyền tham chiếu Khi môt đối tượng có kiểu giá trị được truyền giá trị vào cho một phương thức thì có  một bản sao chép đối tượng đó được tạo ra bên trong phương thức. Khi phương thức  thực hiện xong thì đối tượng sao chép này sẽ được hủy. Ví dụ truyền tham trị public class ThamTri      {             static void Main()            {                 Console.Write("Nhap so thu nhat : ");                int a = int.Parse(Console.ReadLine());                Console.Write("Nhap so thu hai : ");                int b = int.Parse(Console.ReadLine());                Console.Write("Ket qua a + b = {0}",Sum(a,b));                Console.ReadLine();             }             static int Sum(int a, int b)             {              return a + b;             }      }
  14. 4.1.1 Truyền tham trị Truyền tham chiếu, trong phương thức sẽ xử lý và gán các giá trị mới cho các  tham chiếu này và kết quả là sau khi phương thức thực hiện xong ta dùng các  tham số truyền vào như là các kết quả trả về + Truyền tham chiếu khởi tạo public class ThamChieuref      {             static void Method(ref string s)             {                 s = "changed";             }             static void Main()             {              string str = "original";              Method(ref str);              Console.WriteLine(str);             }      }
  15. 4.1.1 Truyền tham trị + Truyền tham chiếu không khởi tạo public class ThamChieuref      {             static void Method(out int i, out string s1, out string s2)             {              i = 44;              s1 = "I've been returned";              s2 = null;             }             static void Main()             {              int value;              string str1, str2;              Method(out value, out str1, out str2);             }      }
  16. 4.1.1 Truyền tham trị Dùng tham chiếu out hay ref ? public class ThamChieu      {             static void swap(? int a,? int b)             {                 int temp;                 temp = a;                 a = b;                  b = temp;             }             static void Main()             {              int x = 3, y = 4;              Console.Write("Truoc khi goi ham swap()\n");              Console.Write("x = {0}, y = {1}\n", x, y);              swap(? x,? y);              Console.Write("Sau Khi goi ham swap()\n");              Console.Write("x = {0}, y = {1}\n", x, y);             }
  17. 4.2 Nạp chồng phương  thức(Overloading)  Nạp chồng phương thức xây dựng nhiều các phương thức cùng tên nhưng nhận các  tham số khác nhau. namespace ConsoleApplication2 {      class ClsA         {          public int Total(int a,int b)          {              return a + b;          }          public int Total(int a,int b,int c)          {              return a + b + c;          }         } }
  18. 4.2 Nạp chồng phương  thức(Overloading)  namespace ConsoleApplication2 {      public class NapChong         {          static void Main()          {              int a = 5, b = 6, c = 7;              ClsA A = new ClsA();              Console.Write("Tong a + b = {0}\n",A.Total(a,b));              Console.Write("Tong a + b + c = {0}\n", A.Total(a, b,c));          }         } }
  19. 5. Đóng gói dữ liệu với thuộc tính Đặc tính này cung cấp khả năng bảo vệ các trường dữ liệu bên trong một  lớp bằng việc đọc và viết chúng thông qua thuộc tính. Trong ngôn ngữ  khác, điều này có thể được thực hiện thông qua việc tạo các phương thức  lấy dữ liệu (getter method) và phương thức thiết lập dữ liệu (setter  method). 5.1 Thuộc tính đọc và ghi 5.2 Thuộc tính chỉ đọc 5.3 Thuộc tính chỉ ghi
  20. 5.1 Thuộc tính đọc và ghi public int PropertyName //Khai bao thuoc tinh Address          {         public string Address              get { return iValue; }         {              set { iValue = value; }             get { return sAddress; }          }             set { sAddress = value; }         } Ví dụ về thuộc tính đọc và ghi         //Khai bao thuoc tinh Age class ClsPeople         public int Age      {         {         //Khai bao bien cuc bo             get { return iAge; }             set {         private string sName;                 if (value > 100)         private string sAddress;                     iAge = 100;         private int iAge;                 else if (value 

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản