Ngôn ngữ lập trình C#
CHƯƠNG 3. LỚP - ĐỐI TƯỢNG
Lớp (class) 1
Đối tượng (object) 2
Bộ tạo (Constructors)
3
Các bộ khởi tạo (Initializers)4
Bộ tạo sao chép (Copy Contructors) 5
Từ khoá this
6
Sử dụng các thành viên tĩnh (static)
7
CHƯƠNG 3. LỚP - ĐỐI TƯỢNG (tt)
Hủy đối tượng 8
Truyền tham số (Passing Parameters)
9
Nạp chồng phương thức10
Đóng gói dữ liệu với đặc tính thuộc tính
11
Các trường chỉ đọc12
Câu hỏi, bài tập, bài thực hành
13
3.1. Lớp (class)
Khái niệm về lớp
Định nghĩa lớp
Thành phần “access-modifiers” trong cú pháp
định nghĩa lớp
Một lớp được tạo ra không chỉ có
dữ liệu mà còn có các chức năng
tương tác với dữ liệu đó
Class Meo
{
int TrongLuong;
int ChieuCao;
string MauMat;
string MauLong;
void An() { … }
void Ngu() {…}
void LeoTreo() {…}
}
3.1.2. Định nghĩa lớp
Để định nghĩa một lớp mới:
Khai báo lớp
Định nghĩa các phương thức
Định nghĩa các trường
Cú pháp khai báo lớp:
[attributes] [access-modifiers] class identifier [:base-class]
{class-body}
Khai
báo
lớp
}
3.1.3.Thành phần “access-modifiers”
Thành phần access- modifiers (gọi là phương thức truy cập)
quyết định khả năng các phương thức của lớp bao gồm việc
các phương thức của lớp khác có thể nhìn thấy và sử dụng
các biến thành viên hay những phương thức bên trong lớp
[attributes] [access-modifiers] class identifier [:base-class]
{class-body}
public Class A
{
….
}
public Class B
{
….
}
Nhìn thấy
3.1.3.Thành phần “access-modifiers” (tt)
Bao gồm:
public
private
protected
internal
int Month;
int Date;
int Hour;
int Minute;
int Second;
private int Year;
private int Month;
private int Date;
private int Hour;
private int Minute;
private int Second;
3.1.4. Đối số của phương thức
Khi định nghĩa một phương thức, thông thường phải khai
báo các đối số (hay tham số) cho các phương thức đó
Số lượng của đối số trong một phương thức có thể tuỳ ý
3.1.4. Đối số của phương thức (tt)
Phương thức:
Khai báo một phương thức có đối số:
Khai báo kiểu trả về của phương thức
Tên của phương thức
Sau phần tên của phương thức là danh sách các đối số được đặt
trong cặp dấu ngoặc đơn. Đứng trước mỗi đối số là kiểu dữ liệu của
đối số đó
Để tạo một đối tượng ta sử dụng từ khoá new
Ví dụ: Tạo một đối tượng của lớp Time()
Time t = new Time( );
3.3 Bộ tạo (Constructors)
Bộ tạo (hàm tạo) là một
phương thức của lớp
Chức năng của hàm
tạo là tạo ra một đối
tượng đặc biệt của lớp
và hàm tạo có tên trùng
với tên của lớp chứa nó
Hàm tạo không có kiểu
trả về giá trị và thường
khai báo với phương
thức truy cập là puplic
public class Time
{
public void DisplayCurrentTime( )
{
System.Console.WriteLine(“{0}/{1}/{2} {3}:{4}:{5}”,
Month, Date, Year, Hour, Minute, Second);
}
public Time(System.DateTime dt)
{
Year = dt.Year;
Month = dt.Month;
{
static void Main( )
{
Time t = new Time();
t.Year=2008; t.Month=10;
t.Date=05; t.Hour=5;
t.Minute=30; t.Second=30;
t.DisplayCurrentTime( );
}
}
Không sử dụng hàm tạo:
3.4 Các bộ khởi tạo (Initializers)
Có thể khởi tạo các giá trị ban đầu cho các biến thành viên
thông qua bộ khởi tạo
Để thực hiện việc khởi tạo, chúng ta chỉ cần gán giá trị ban
đầu cho các thành viên của lớp thông qua lệnh gán
Ví dụ:
private int Second = 30; // Bộ khởi tạo
3.5 Bộ tạo sao chép
Bộ tạo (hàm tạo) sao chép thực hiện việc tạo một đối tượng
mới bằng cách sao chép tất cả các biến từ một đối tượng
cùng kiểu đã có
public Time(Time existingTimeObject)
{
Year = existingTimeObject.Year;
Month = existingTimeObject.Month;
}
Cách 3: Sử dụng tham chiếu this với mảng chỉ mục (indexer), phần
này sẽ được trình bày trong nội dung của mảng chỉ mục
Biến thành viên
Tham số truyền vào
3.7 Sử dụng các thành viên tĩnh (static)
Những thuộc tính và phương thức trong một lớp có thể
là những thành viên thể hiện (instance members) hay
những thành viên tĩnh (static members)
Những thành viên thể hiện là sự kết hợp các thể hiện
của một kiểu dữ liệu
Những thành viên tĩnh được xem như một phần của
lớp. Chúng ta có thể 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
3.7 Sử dụng các thành viên tĩnh (static)
Ví dụ:
- Giả sử rằng có một lớp tên Button
- Trong đó có hai thành viên (đối tượng) thể hiện là
btnUpdate và btnDelete
- Và có một phương thức tĩnh (thành viên tĩnh) là
SomeMethod()
Khi đó, để truy cập đến phương thức tĩnh này ta có thể viết:
Button.SomeMethod();
Chứ không được viết: btnUpdate.SomeMethod();
Hay viết: btnDelete.SomeMethod();