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

21 348 0
Tài liệu Bài 4: Xây dựng lớp - đối tượng ppt

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài Xây dựng lớp – Đối tượng Mục tiêu bài: Nhằm trang bị cho người học: Kiến thức kỹ tạo lớp, tạo đối tượng Kiến thức kỹ phương thức, thành phần static Kiến thức kỹ tham số phương thức nạp chồng Kiến thức kỹ thuộc tính 1 Lớp đối tượng 1.1 Lớp (Class) Lớp hay cịn gọi class gói gọn liệu phương thức (method) họat động liệu đó.Trong C# , lớp xem kiểu liệu tham chiếu (reference) Khai báo lớp cách sử dụng từ khoá class Cú pháp đầy đủ khai báo lớp sau: [Thuộc tính] [Bổ sung truy cập] class [: Lớp sở] { } Lớp đối tượng + Thuộc tính - public :Khơng hạn chế Những thành viên đánh dấu public dùng phương thức ớp bao gồm lớp khác - private : Thành viên lớp A đánh dấu private truy cập phương thức lớp A - protected : Thành viên lớp A đánh dấu protected phương thức bên lớp A phương thức dẫn xuất từ lớp A truy cập - internal : Thành viên lớp A đánh dấu internal truy cập phương thức lớp khối hợp ngữ với A - protected internal : Thành viên lớp A đánh dấu protected internal truy cập phương thức lớp A, phương thức lớp dẫn xuất A, lớp khối hợp ngữ A + Bổ sung truy cập : partial cho phép triển khai nhiều class tên giống file khác nhau.Sau kết hợp khơng gian tên (namespace) sử dụng Assembly + Hàm khởi tạo (Contructor) Hàm khởi tạo phương thức lớp gọi thực Lớp đố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 } } Lớp đối tượng 1.2 Đối tượng (Obiect) Còn đối tượng đại diện cho lớp, đối tượng có chung tính chất hành vi mà lớp định nghĩa Khai báo đối tượng : ClsCommon cm = new ClsCommon(); Lớp đối tượng namespace ConsoleApplication2 { class ClsCommon { int i = 10; Kết : Gia tri tra ve :30 int j = 20; 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()); } Sử dụng thành viên static Trong Class có phương thức thuộc tính static khơng , khai báo phương thức có từ khóa static bạn 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 Ví dụ sử dụng static 2 Sử dụng 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; } } Sử dụng 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 - Hủy đối tượng 3.1 Phương thức Finalize Ngôn ngữ C# cung cấp chế thu dọn (garbage collection) không cần phải khai báo tường minh phương thức hủy Tuy nhiên, làm việc với đoạn mã khơng quản lý cần phải khai báo tường minh phương thức hủy để giải phóng tài nguyên.C# cung cấp ngần định phương thức để thực điều khiển công việc này, phương thức Finalize() hay cịn gọi kết thúc Phương thức Finalize gọi chế thu dọn đối tượng bị hủy Phương thức kết thúc giải phóng tài nguyên mà đối tượng nắm giữ, không tham chiếu đến đối tượng khác Nếu với đoạn mã bình thường tức chứa tham chiếu kiểm sốt khơng cần thiết phải tạo thực thi phương thức Finalize() Chúng ta làm điều xử lý tài ngun khơng kiểm sốt 3 Hủy đối tượng Cú pháp phương thức hủy ngôn ngữ C# ~Class1() ~Class1() { // Thực số công việc } Cũng tương tự viết : Class1.Finalize() { // Thực số công việc base.Finalize(); } Truyền tham số 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 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ị truyền giá trị vào cho phương th ức có m ột b ản chép đối tượng tạo bên phương thức Khi phương thức thực xong đ ối tượng chép 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, phương thức xử lý gán giá trị cho tham chiếu kết sau phương thức thực xong ta dùng tham số truyền vào kết trả + 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 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 phương thức tên nhận tham s ố khác 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)); } } } Đóng gói liệu với thuộc tính Đặc tính cung cấp khả bảo vệ trường liệu bên lớp việc đọc viết chúng thơng qua thuộc tính Trong ngơn ngữ khác, điều thực thông qua việc tạo phương thức lấy liệu (getter method) phương thức thiết lập liệu (setter method) 5.1 Thuộc tính đọc ghi 5.2 Thuộc tính đọc 5.3 Thuộc tính ghi 5.1 Thuộc tính đọc ghi public int PropertyName { get { return iValue; } set { iValue = value; } } Ví dụ thuộc tính đọc ghi class ClsPeople { //Khai bao bien cuc bo private string sName; private string sAddress; private int iAge; //Khai bao thuoc tinh Name public string Name { get { return sName;} set {sName = value;} } //Khai bao thuoc tinh Address public string Address { get { return sAddress; } set { sAddress = value; } } //Khai bao thuoc tinh Age public int Age { get { return iAge; } set { if (value > 100) iAge = 100; else if (value < 0) value = 20; else iAge = value; } } } 5.1 Thuộc tính đọc ghi public class ThuocTinhDocGhi { static void Main() { ClsPeople P = new ClsPeople(); Console.Write("Name :"); P.Name = Console.ReadLine(); Console.Write("Address :"); P.Address = Console.ReadLine(); Console.Write("Age :"); P.Age = int.Parse(Console.ReadLine()); Console.Write("Ban da nhap \n Ten : {0} \n Dia Chi : {1} \n Tuoi : {2} \n",P.Name,P.Address,P.Age); } } ... } } Lớp đối tượng 1.2 Đối tượng (Obiect) Còn đối tượng đại diện cho lớp, đối tượng có chung tính chất hành vi mà lớp định nghĩa Khai báo đối tượng : ClsCommon cm = new ClsCommon(); Lớp đối tượng. ..1 Lớp đối tượng 1.1 Lớp (Class) Lớp hay cịn gọi class gói gọn liệu phương thức (method) họat động liệu đó.Trong C# , lớp xem kiểu liệu tham chiếu (reference) Khai báo lớp cách sử dụng... bao gồm lớp khác - private : Thành viên lớp A đánh dấu private truy cập phương thức lớp A - protected : Thành viên lớp A đánh dấu protected phương thức bên lớp A phương thức dẫn xuất từ lớp A truy

Ngày đăng: 14/12/2013, 13:15

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan