Tải bản đầy đủ (.pdf) (42 trang)

Bài giảng cơ sở lập trình máy tính chương 3 ths nguyễn thị khiêm hòa

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.43 MB, 42 trang )

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



×