Chương 3:
Xây dựng lớp _ đối tượng
Giảng viên: Ths. Nguyễn Thị Khiêm Hòa
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Nội dung
Định nghĩa Lớp
Tạo đối tượng
Xây dựng các phương thức
Sử dụng các thành phần tĩnh (Static)
Đóng gói dữ liệu
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Đối tượng (Object)
Mô tả một thực thể hay một quan hệ trong thế giới
thực
Có các thuộc tính (properties) và hành vi (behaviors)
Có thể là thực thể vật lý hay thực thể khái niệm.
Mô tả những vấn đề cần thao tác trong hệ thống
Đối tượng = Dữ liệu + Hành vi
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Đối tượng (Object)
Thuộc tính: mô tả thông tin của đối tượng
Trạng thái: được định nghĩa bởi giá trị của thuộc tính
tại một thời điểm nào đó.
Hành vi: chỉ ra các hoạt động của đối tượng được cài
đặt thành phương thức (methods)
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Multimedia: Lớp đối tượng và đối tượng
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Lớp và đối tượng
Lớp (Class):
Class
Covered Porch
Thiết kế của đối tượng
Chứa thuộc tính và phương thức
Được xem như kiểu dữ liệu trừu tượng
kitchen
Dining
Room
Đối tượng (Object):
Thể hiện (Instance) của
lớp, đóng vai trò biến trong
chương trình.
Được tạo bởi từ khóa new
Có hoạt động
Object
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Living Room
Bath
Office
Family
Room
Xây dựng lớp và tạo đối tượng
Xây dựng lớp
Khai báo một lớp bằng cách sử dụng từ khoá class.
[Bổ từ truy cập] class <tên lớp> [: Lớp cơ sở]
{
<Khai báo các thuộc tính>
// Các thành phần dữ liệu
<Khai báo các phương thức> // Hàm
}
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Xây dựng lớp và tạo đối tượng
Ví dụ
public class hocsinh
{
private string hoten;
public int lop ;
public void lenlop()
{
lop = lop +1;
}
} // kết thúc lớp
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Xây dựng lớp và tạo đối tượng
Ví dụ
public class Taikhoan
{
private string tentk;
private double sodutk = 0;
private double gioihanrut;
public void naptien(double tiennap)
{
sodutk = sodutk + tiennap;
}
public void ruttien(double tienrut)
{
sodutk = sodutk - tienrut;
}
}
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Xây dựng lớp và tạo đối tượng
Tạo đối tượng
Taikhoan tk = new Taikhoan();
Truy xuất thành phần
tk.naptien(100000);
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Bổ từ truy cập
Quy định giới hạn truy xuất vào các thành phần
của lớp
Phạm vi
Khai báo
public
Không giới hạn.
private
Chỉ truy cập trong nội bộ của lớp.
internal
protected
protected
internal
Cho phép các lớp trong cùng chương trình
truy cập.
Được truy xuất bởi các thành viên trong lớp và
lớp dẫn xuất
Cho phép các lớp cùng chương trình, hoặc các
lớp dẫn xuất truy cập
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Phương thức khởi tạo
Phương thức đặc biệt, được gọi tự động khi
tạo ra đối tượng
Tên phương thức có cùng tên với lớp
Giới hạn truy cập: public
Phương thức khởi tạo mặc định không có tham số
Không có giá trị trả về
Không cho phép tham chiếu trực tiếp
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Phương thức khởi tạo
Giá trị mặc định của các kiểu dữ liệu
Kiểu dữ liệu
Giá trị mặc định
int, long, byte,… 0
bool
char
enum
Reference
false
‘\0’, Null
0
Null
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Phương thức khởi tạo
Ví dụ
public class Taikhoan
{
…
public Taikhoan()
{
tentk = Null;
sodutk = 0;
gioihanrut = 0;
}
}
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Nạp chồng phương thức khởi tạo
Có
thể tạo nhiều phương thức khởi tạo cùng tên
Cũng có thể dùng con trỏ this
Ví dụ
public class Lion
{
private string name;
private int age;
public Lion() : this( "unknown", 0 )
{
Console.WriteLine("Default: {0}", name);
}
}
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Nạp chồng phương thức khởi tạo
Ví dụ
public class Lion
{
private string name;
private int age;
. . .
public Lion( string theName, int theAge )
{
name = theName;
age = theAge;
Console.WriteLine("Specified: {0}", name);
}
}
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Phương thức khởi tạo sao chép
Tạo một đối tượng mới bằng cách sao chép toàn bộ các
thành phần dữ liệu từ một đối tượng đã có cùng lớp.
Ví dụ
public class Thoigian
{
…
public ThoiGian( ThoiGian tg)
{
Nam = tg.Nam;
Thang = tg.Thang;
Ngay = tg.Ngay;
Gio = tg.Gio;
Phut = tg.Phut;
Giay = tg.Giay;
}
…
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
}
Phương thức khởi tạo sao chép
Ví dụ
static void main()
{
Thoigian t1(14,2,2011,7,30,0);
Thoigian t2 = new Thoigian(t1);
…
}
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Bài tập
Thực hiện
Xây dựng lớp Tài khoản hoàn chỉnh
10 min
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Từ khóa this
Dùng để tham chiếu đến thể hiện hiện hành của một đối tượng.
Con trỏ ẩn đến tất các phương thức không có thuộc tính tĩnh
(nonstatic) trong một lớp
Mỗi phương thức có thể tham chiếu đến những phương thức khác
và các biến thành viên thông qua tham chiếu this này
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Từ khóa this
Sử dụng khi các biến thành viên cùng tên với tham số
Ví dụ
public void SetYear( int Nam)
{
this.Nam = Nam;
}
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Từ khóa this
Truyền đối tượng hiện hành làm tham số cho một phương
thức của đối tượng khác.
Ví dụ
class Point
{
…
public void Dispose()
{
GC.SuppressFinalize( this );
}
public override void Finalize()
{
Dispose();
base.Finalize();
}
}
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Từ khóa this
Gọi nạp chồng phương thức thiết lập từ phương thức thiết
lập khác
Ví dụ
class Point
{
private double x;
private double y;
public Point(double a, double b)
{
this.x = a;
this.y = b;
}
public Point(): this(5,5)
{}
}
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Sử dụng các thành phần tĩnh của lớp
Thành phần tĩnh
Thuộc về một lớp
Được khởi tạo trước khi khởi tạo đối tượng (thể
hiện) của lớp
Dùng chung cho tất cả các thể hiện của lớp
Sử dụng không thông qua một thể hiện nào trong lớp
Khai báo thành phần tĩnh bằng từ khóa static
Thuộc tính tĩnh lưu trữ trạng thái liên quan đến tất cả các
thể hiện
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Phương thức tĩnh
Hàm Main()
Được xem là hoạt động chung chứ không riêng thể hiện nào
của lớp
Không có tham chiếu this
Không được các thể hiện tham chiếu đến
Không được gọi trực tiếp các phương thức không
tĩnh(nonstatic)
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM