Bài giảng Lập trình Ứng dụng quản lý - Tuần 4: C#.NET cơ bản - Lập trình hướng đối tượng

9/25/2018  
Lập trình Ứng dụng quản lý  
C#.NET cơ bản  
Lập trình hướng đối tượng  
Nội dung  
Class và thừa kế  
Interface và Struct  
Phân cấp dữ liệu trong .NET  
Truyền tham số trong C#  
1
9/25/2018  
Nội dung  
Class và thừa kế  
Interface và Struct  
Phân cấp dữ liệu trong .NET  
Truyền tham số trong C#  
Trừu tượng hóa dữ liệu  
Trừu tượng hóa dữ liệu là một phương pháp tích  
hợp các dữ liệu cơ sở hoặc kiểu dữ liệu có sẵn  
nhằm mô tả, biểu diễn một khái niệm hay một đối  
tượng trong thế giới thực.  
Ví dụ biểu diễn dữ liệu thông tin một Sinh viên,  
một Nhâ n viên.  
2
9/25/2018  
Class  
Cú phá p khai bá o trong C#  
[accessmodifier] class ClassName  
{
[accessmodifier] [datatype] fieldName;  
...  
[accessmodifier] methodName(parameters);  
}
Thành phần trong class  
Thành phần dữ liệu: fields, constants  
Thành phần xử lý: methods  
Thành phần  
Thành phần instance (thể hiện) và static (tĩnh)  
Tùy theo dữ liệu hay xử lý là chung hay riêng cho mỗi  
instance.  
Từ khóa: static  
class ClassName  
{
datatype fieldInstance;  
datatype fieldStatic;  
datatype methodInstance(params)  
{
...  
}
datatype methodStatic(params)  
{
...  
}
}
3
9/25/2018  
Kế thừa  
Cú phá p  
class ClassName : ClassBase  
{
...  
}
Trong C# chỉ cho phép kế thừa public.  
Trong C# chỉ cho phép đơn thừa kế.  
Trong C# một lớp bắt buột phải thừa kế từ một lớp  
nào đó. ???  
Đa hình  
Cú phá p  
class ClassBase  
{
public datatype methodVirtual()  
{
...  
}
}
class ClassName : ClassBase  
{
public datatype methodVirtual()  
{
return ethodVirtual();  
}
}
4
9/25/2018  
Abstract  
C# cho phép cả class và phương thức có thể khai  
bá o abstract.  
Một class abstract khô ng có instance và một  
phương thức abstract phải được overriden trong  
bất kỳ lớp dẫn xuất khô ng abstract nào.  
Một phương thức abstract sẽ tự động được khai  
bá o virtual.  
Nếu một lớp có phương thức abstract thì nó cũng  
là lớp abstract.  
Sealed  
C# cho phé p cá c class và phương thức được khai  
bá o sealed.  
Một class sealed thì khô ng cho phép kế thừa.  
Một phương thức sealed thì khô ng cho phé p  
overriden.  
class ClassBase  
{
...  
}
class ClassName  
{
public datatype method()  
{
...  
}
}
5
9/25/2018  
Construction  
Constructor  
class ClassName  
{
public ClassName()  
{
}
...  
}
Cá c contructor theo cùng luật overloading như  
các phương thức khác.  
Constructor mặc định có thể không cần cài đặt.  
Static Constructor  
class ClassName  
{
public static ClassName()  
{
...  
}
}
Constructor static để khởi tạo các thành phần  
static. Constructor static không có bổ từ tầm vực  
truy xuất, không có bất kỳ một tham số nào và chỉ  
có duy nhất một constructor static trong một lớp.  
6
9/25/2018  
Constructor gọi constructor khác  
class ClassName  
class ClassName  
{
{
field1;  
field2;  
field1;  
field2;  
public ClassName()  
public ClassName()  
{
{
field1 = default1;  
field1 = default1;  
}
}
public ClassName(info1)  
public ClassName(info1)  
{
: this()  
field1 = default1;  
{
field2 = info1;  
}
field2 = info1;  
}
}
}
Constructor trong kế thừa  
class ClassBase  
{
field1;  
public ClassBase(info1)  
{
field1 = info1;  
}
}
class ClassName : ClassBase  
{
public ClassName(info1)  
: base(info1)  
{
}
}
7
9/25/2018  
Disposal  
Mọi vùng nhớ cấp phát cho đối tượng trong .NET  
đều được bộ thu gom rác (garbage collection)  
quản lý.  
C# hỗ trợ mẫu Destruction để giải quyết vấn đề  
cần giải phóng sớm các tài nguyên chiếm nhiều  
bộ nhớ hoặc các tài nguyên có vùng nhớ không  
được quản lý (unsafe). Gồm 2 giai đoạn  
Thực thi giao diện Dispose giải phóng tài nguyên  
sớm.  
Cài đặt Destructor để giải phóng vùng nhớ không  
được quản lý.  
Ví dụ  
class ClassName
{
fieldLargeMem;  
fieldUnsafe;  
{
giải phóng fieldLargeMem  
}
{
giải phóng fieldUnsafe  
}
}
8
9/25/2018  
Phân biệt Close và Dispose  
class ClassName : IDisposable  
{
fieldLargeMem;  
public void Dispose()  
{
giải phóng fieldLargeMem  
}
public void Close()  
{
...  
}
}
Class Object  
System.Object là class cơ sở cao nhất trong cây  
thừa kế các kiểu dữ liệu của .NET.  
Nếu class không được khai báo tường minh thừa  
kế bất kỳ class nào thì mặc định kế thừa Object.  
Một số phương thức được định nghĩa trong  
Object:  
Phương thức  
Đặc tí nh  
Chức năng  
Trả về một chuỗi mô tả của đối  
tượng  
string ToString()  
public virtual  
int GetHashTable() public virtual Được sử dụng trong dictionary  
9
9/25/2018  
Class Object (tt)  
Phương thức  
Đặc tí nh  
Chức năng  
So sánh các thực thể của đối  
tượng  
bool Equals(object obj) public virtual  
bool Equals(object  
public static  
So sánh các thực thể của đối  
tượng  
objA, object objB)  
bool  
So sánh hai sự tham chiếu đến  
một đối tượng  
ReferenceEquals(obje public static  
ct objA, object objB)  
Trả về chi tiết kiểu của một đối  
tượng  
Type GetType()  
Public  
object  
MemberwiseClone()  
tạo ra một bản copy của đối  
tượng  
Protected  
Protected  
virtual  
Đây là một dạng Destructor  
của .Net  
void Finalize()  
Property  
Giúp truy suất an toàn thành phần dữ liệu của đối  
tượng.  
class ClassName  
{
datatype field;  
public
{
{
return field;  
}
{
field =
}
}
}
10  
9/25/2018  
Property (tt)  
Bản chất của property là method.  
Property chỉ đọc (readonly) hay chỉ ghi  
(writeonly).???  
Property có thể được cài đặt virtual hay  
abstract.  
Indexer  
class ClassI  
{
string[] arrData;  
public string
{
get  
{
return arrData[i];  
}
set  
{
arrData[i] = value;  
}
}
}
11  
9/25/2018  
Nội dung  
Class và thừa kế  
Interface và Struct  
Phân cấp dữ liệu trong .NET  
Truyền tham số trong C#  
Interface  
C# hỗ trợ interface (giao diện) để thực thi đa  
thừa kế. ???  
Một interface thì khô ng có constructor hay  
field.  
Các thành phần trong interface mặc định là  
public và không cho phép tầm vực truy suất  
khá c.  
Các thành phần trong interface không được  
phé p khai bá o virtual hay static.  
12  
9/25/2018  
Ví dụ  
class CTest : ITest1, ITest2  
interface ITest1  
{
{
public void func1()  
{
void func1();  
void func2(int i);  
}
...  
}
public void func2(int t)  
{
interface ITest2  
{
...  
int func1();  
}
}
int ITest2.func1()  
{
...  
}
}
Struct  
Cú phá p  
[accessmodifier] struct structName  
{
[accessmodifier] datatype fieldName;  
[accessmodifier] datatype methodName()  
{
...  
}
}
Struct là value type.  
Struct không hỗ trợ kế thừa.  
Không được phép cài đặt constructor mặc định.  
Tầm vực truy suất mặc định là public.  
13  
9/25/2018  
Nội dung  
Class và thừa kế  
Interface và Struct  
Phân cấp dữ liệu trong .NET  
Truyền tham số trong C#  
Phân cấp kiểu dữ liệu trong .NET  
14  
9/25/2018  
Phân cấp kiểu dữ liệu trong .NET (tt)  
Bất kỳ kiểu dữ liệu nào cũng được dẫn xuất từ  
Object, được định nghĩa tập các phương thức  
thông dụng cho tất cả các kiểu (như: ToString(),  
Equals(), GetHashCode(),...).  
Các kiểu dữ liệu số (numerical) dẫn xuất từ  
System.ValueType (tự động cấp phát trên  
stack).  
Kiểu dữ liệu số có các giá trị mặc định tương ứng  
(như MaxValue, MinValue,...)  
Các kiểu dữ liệu số có phương thức hỗ trợ lấy giá  
trị (value) từ chuỗi (string) đó là Parse() và  
TryParse().  
Implicitly Typed Local Variables  
Từ C# 3.0 cho phép khai báo biến với kiểu dữ  
liệu không tường minh bằng từ khóa var. Thực  
chất compiler sẽ tự gán kiểu giá trị thích hợp cho  
biến.  
Giới hạn: chỉ sử dụng cho biến cục bộ trong  
method hoặc property. Phải gán giá trị khởi tạo  
(≠ null) cho biến.  
15  
9/25/2018  
Nội dung  
Class và thừa kế  
Interface và Struct  
Phân cấp dữ liệu trong .NET  
Truyền tham số trong C#  
Truyền tham số cho phương thức  
Dạng tham số  
Ý nghĩa  
Khô ng kèm theo từ khóa bổ trợ  
Tham số được truyền bằng giá trị  
(value), nghĩa là phương thức được  
gọi nhận một bản sao của dữ liệu  
gốc  
Đi kèm từ khóa out  
Đi kèm từ khóa ref  
Tham số phải được gán giá trị bởi  
phương thức được gọi nhận tham  
số.  
Tham số có thể được gán lại giá trị  
trong phương thức và điều này là  
không bắt buộc  
Đi kèm từ khóa params  
Cho phé p truyền biến thiên về số  
lượng tham số với cách khai báo  
như là 1 tham số  
16  
9/25/2018  
Ví dụ truyền tham số thông thường  
Ví dụ truyền tham số với out  
17  
9/25/2018  
Ví dụ truyền tham số với ref  
Ví dụ truyền tham số với params  
18  
9/25/2018  
Ví dụ truyền tham số với params (tt)  
Phân biệt kiểu tham số và kiểu dữ liệu  
19  
9/25/2018  
Phân biệt kiểu tham số và kiểu dữ liệu (tt)  
Phân biệt kiểu tham số và kiểu dữ liệu (tt)  
20  
Tải về để xem bản đầy đủ
pdf 22 trang myanh 23220 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình Ứng dụng quản lý - Tuần 4: C#.NET cơ bản - Lập trình hướng đối tượng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_lap_trinh_ung_dung_quan_ly_tuan_4_c_net_co_ban_lap.pdf