1. Lớp
và đối tượng
a. Lớp (class)
Một lớp là một khái niệm mô tả cho những thực thể có chung tính chất và hành vi. Lớp định nghĩa những thuộc tính và hành vi được dùng cho những đối tượng của lớp đó. Do đó có thể nói lớp là một khuôn mẫu cho các đối tượng.
Công thức để tạo một class
AccessModifier class className
{
// thân class
}
Ví dụ tôi định nghĩa một class là color, class
này được truy cập public
public class Color
{
// Nội
dung class
}
b. Đối
tượng
Đối tượng là một đại
diện, hay có thể nói là một sản phẩm của một class. Tất cả các đối tượng
đều có chung những thuộc tính và hành vi mà class định nghĩa. Cách tạo
đối tượng giống như cách tạo một biến có kiểu dữ liệu là Class.
Ví dụ tôi muốn khai báo một đối tượng c là thể
hiện của class color nói trên. Tôi làm như sau:
Color c = new Color();
Sau đó từ đối tượng c này tôi sẽ truy cập đến
các thành phần của class thông qua toán tử “.” (Mà tôi đã giới thiệu ở
bài học số 2). Tuy nhiên việc truy cập các thành phần của class còn tùy
thuộc vào thành phần đó là instance hay static. Bạn sẽ được tìm hiểu
khái niệm này ở phần tiếp theo của bài học.
c. Ưu
điểm khi sử dụng lớp và đối tượng trong lập trình
Có một số những ưu điểm
của việc sử dụng Class và đối tượng trong phát triển phần mềm. Những ưu
điểm nổi bật nhất được liệt kê như sau:
§ Duy trì code bằng việc
mô hình hóa
§ Đóng gói những sự phức
tạp trong mã lênh từ người dùng
§ Khả năng sử dụng lại
§ Cung cấp đơn kế thừa để
thực thi nhiều phương thức.
Các
bạn sẽ hiểu hơn về điều này ở các bài học sau của chúng tôi về
inheritance (sự thừa kế) hay polymorphism ( Tính đa hình ).
2. Khái
niệm thành viên thể hiện (instance) và thành viên tĩnh(static)
Trong
một lớp , các thành viên có thể là instance (thành viên thể hiện) hoặc
static (thành viên tĩnh). Một thành viên
instance có nghĩa là thành viên đó liên quan đến thể hiện của một kiểu
dữ liệu. Thành viên static được xem như một phần
của lớp. Chúng ta truy cập đến thành viên tĩnh của một lớp thông qua tên
lớp đã được khai báo. Còn các thành viên instance thì phải thông qua
thể hiện của lớp.
Giả sử chúng ta có
một lớp là class A và có 2 thể hiện là t1, t2 và
một phương thức tĩnh là a(). Để truy cập phương thức này ta viết A.a().
Chứ không thể viết t1. a() hoặc t2.a() vì trong C# không cho phép truy
cập đến phương thức cũng như các biến thành viên tĩnh thông qua một thể
hiện.
Một số ngôn ngữ thì
có sự phân chia giữa phương thức của lớp và các phương thức khác (toàn
cục) tồn tại bên ngoài không phụ thuộc bất cứ một lớp nào. Tuy nhiên,
điều này không cho phép trong C#, ngôn ngữ C# không cho phép tạo các
phương thức bên ngoài của lớp, nhưng ta có thể tạo được các phương thức
giống như vậy bằng cách tạo các phương thức tĩnh
bên trong một lớp. Phương thức tĩnh ít nhiều giống phương thức toàn cục
bởi ta có thể truy cập đến nó không phải thông qua bất cứ một thể hiện
nào của lớp chứa nó. Tuy nhiên phương thức tĩnh sẽ hoạt động tốt hơn
phương thức toàn cục vì nó luôn được đặt trong phạm vi một lớp do đó
chúng ta sẽ tránh được tình trạng lộn xộn do bị trùng tên giữa các
phương thức đặt trong namespace.
3. Các
thành phần của lớp
a. Fields
Field là một phần tử dùng để thể hiện các biến trong lớp – các biến hoặc các thể hiện của một lớp dụ:
class Color
{
internal ushort redPart;
internal ushort bluePart;
internal ushort greenPart;
public Color(ushort red, ushort
blue, ushort green)
{
redPart = red;
bluePart = blue;
greenPart = green;
}
}
Lớp color chứa các
instance fields như là redPart,
bluePart, và greenPart.
Fields có thể là
static như ví dụ dưới đây:
Class Color
{
public static Color Red =
new Color(0xFF, 0, 0);
public static Color Blue
= new Color(0, 0xFF, 0);
public static Color
Green = new Color(0, 0, 0xFF);
public static Color
White = new Color(0xFF, 0xFF, 0xFF);
...
}
Các phần tử Red,
Blue, Green,
White đều là các phần tử static.
b. Properties
Property (thuộc tính, đặc tính) là một
phần tử dùng để truy cập đến đặc điểm của một đối tượng hoặc một class
(lớp). Ví dụ như là độ dài một chuỗi, kích cỡ của
font chữ, độ rộng của một cửa sổ, tên của một customer …Property là
phần mở rộng của fields. Cả 2 đều được gọi tên với các kiểu kết hợp, và
cách truy cập đến fields và properties là như nhau. Tuy nhiên khác với
fields, properties không chỉ rõ nới lưu trữ nó. Thay vào đó, properties
có cách truy nhập là dùng câu lệnh để thi hành việc đọc và ghi giá trị.
Property được định nghĩa bằng 2 phần. Phần
thứ nhất giống như cách định nghĩa Fields. Phần thứ 2 chứa phần tử truy
cập get và set. Các bạn hãy xem ví dụ dưới đây :
public class
Button
{
private string caption;
public string Caption
{
get
{
return
caption;
}
set
{
caption = value;
Repaint();
}
}
}
c. Methods
Bạn sẽ được học về methods ở bài sau
0 comments:
Đăng nhận xét