YOMEDIA
ADSENSE
Bài 4: Xây dựng lớp - đối tượng
104
lượt xem 13
download
lượt xem 13
download
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.
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài 4: Xây dựng lớp - đối tượng
- 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.
- 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ở] { }
- 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.
- 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 } }
- 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();
- 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()); }
- 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.
- 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; } }
- 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
- 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.
- 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(); }
- 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)
- 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; } }
- 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); } }
- 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); } }
- 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); }
- 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; } } }
- 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)); } } }
- 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
- 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
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn