Phương thức thiết lập mặc định được tạo ra cho một đối tượng sẽ không thực hiện bất cứ hành động nào. Các thành viên lớp được khởi tạo các giá trị mặc định[r]
(1)4/10/2012
Chương 3
Xây dựng lớp, đối tượng
ThS Phạm Thanh An Khoa Công nghệ thông tin
Đại học Ngân hàng Tp Hồ Chí Minh
Nội dung trình bày
Định nghĩa lớp.
Tạo đối tượng.
Sử dụng thành viên static.
Hủy đối tượng.
Truyền tham số.
Nạp chồng phương thức.
Đóng gói liệu với thuộc tính.
Thuộc tính đọc.
Phát triển hệ thống OOP
Chương trình tạo thành đối
tượng
Mỗi đối tượng đảm nhận thực tập nhiệm vụ liên quan
Trong phát triển hệ thống, đối tượng mô
tả mà muốn thao tác hệ thống: thực thể vật lý thực thể khái niệm
Đối tượng có thuộc tính (property) hành
(2)4/10/2012
Đối tượng
Sinh viên:
Thuộc tính:
Tên
Mã số sinh viên
Ngày sinh
Quê quán Hành vi
Đăng ký môn học
Chọn chuyên ngành
Hủy môn học
Đối tượng (tt)
Đối tượng biểu diễn cho người, vị trí,
vật, bảng liệu cần xử lý
Xehơi : thực thể vật lý
Tàikhoản khách hàng: thực thể khái niệm
Khoa: thực thể khái niệm
Cácđối tượng tương tác cách gửi thống
điệp (sending message)
sending message = calling method
Lớp
Lớp mẫu hay kiểu chung cho tất đối tượng có đặc trưng giống
có thuộc tính hành vi giống
Trong lập trình hướng đối tượng, lớp được xem đồng với kiểu liệu trừu tượng
(3)4/10/2012
Lớp (tt)
Tên Địa chỉ Điện thoại
Thanh
Quận 123-456
Bình
Quận 221-4728
Lan
Quận 117-2321
Khách hàng
Tên Địa Điện thoai
Lớp với đối tượng
Lớp Đối tượng
Là khuôn mẫu
Định nghĩa thuộc tính hành động đối tượng Được tạo thiết
kế
Là thể lớp, đối tượng tồn nhớ có thời gian tồn hữu hạn (finite lifespan)
245
Định nghĩa lớp
Sử dụng từ khoá class
[Bổ từ truy cập] class <tên lớp> [: Lớp sở] {
<Khai báo thuộc tính> // Các thành phần liệu
<Khai báo phương thức> // Hàm }
(4)4/10/2012
Ví dụ định nghĩa lớp public class hocsinh
{
private string hoten; public int lop ; public void lenlop();
{
lop = lop +1; }
} // kết thúc khai báo lớp
Ví dụ: Lớp tài khoản
public class taikhoan
{
private float sodutk ; public void naptien(float sotien)
{ sodutk = sodutk + sotien; } public bool ruttien(float sotien)
{ if ( sodutk < sotien) return false ;
else { sodutk = sodutk - tienrut; return true ; } }
public float laysodu() { return sodutk ; } }
Bổ từ truy cập (Access modifiers)
Bổ từ truy
cập Giới hạn truy cập
public Không giới hạn Những thành phần public dùng phương thức lớp
private Thành viên lớp A đánh dấu private truy cập phương thức lớp A
protected Thành viên lớp A đánh dấu protected có
(5)4/10/2012
Bổ từ truy cập (Access modifiers)
Bổ từ truy
cập Giới hạn truy cập
internal Thành viên lớp A đánh dấu internal
truy cập phương thức lớp khối hợp ngữ với A
protected internal
Thành viên lớp A đánh dấu protected
internal được truy cập phương thức lớp A, phương thức lớp dẫn xuất A, lớp khối hợp ngữ A
Phương thức
Là hàm khai báo bên lớp
Có trả giá trị (int, float, string, object, vv)
Hoặc không trả giá trị (void)
Một phương thức cài đặt hành vi đối
tượng
Khai báo phương thức
<Bổ từ truy cập> <kiểu trả về> <tên phương thức> (d/s tham số) {
< câu lệnh> ; // thân phương thức }
Tham số phương thức
Có thể có nhiều tham số
Mỗi tham số phải khai báo kèm với kiểu
liệu
Bên thân phương thức,
Các tham số xem biến cục
(6)4/10/2012
Tạo đối tượng
Sử dụng từ khóa new
Đối tượng = new tênlớp()
Ví dụ:
taikhoan tk1 = new taikhoan();
taikhoan tk1 ; tk1 = new taikhoan();
Truy cập đến thành phần <đối tượng>.<thành phần>
Ví dụ: lớp thời gian using System;
public class ThoiGian {
int Nam; int Thang;
int Ngay; // Các thành viên private int Gio;
int Phut; int Giay;
public void ThoiGianHienHanh() {
Console.WriteLine(“Hien thi thoi gian hien hanh”); }
}
Ví dụ: lớp thời gian public class Tester {
static void Main() {
ThoiGian t = new ThoiGian(); t.ThoiGianHienHanh();
(7)4/10/2012
Phương thức thiết lập (constructor)
Là phương thức đặc biệt lớp
Được gọi đối tượng tạo
Khơng bắt buộc phải có, hữu ích cho
việc khởi tạo thành phần đối tượng
Có tên với tên lớp, khai báo
public, không trả giá trị (không sử dụng void)
Khi tạo đối tượng:
đối tượng = new tênlớp(các tham số)
Ví dụ: Phương thức thiết lập using System;
public class Thang {
private int days; public Thang(int songay) {
days = songay; }
static void Main() {
Thang thang1 =new Thang(31); Thang thang4 = new Thang(30);
Console.WriteLine (Thang1.days); }
}
(8)4/10/2012
Phương thức thiết lập (tt)
Nếu không định nghĩa phương thức thiết lập, trình biên dịch cung cấp phương thức thiết lập mặc định.
Phương thức thiết lập mặc định tạo cho đối tượng không thực hiện hành động nào
Các thành viên lớp khởi tạo giá trị mặc định.
Giá trị mặc định kiểu liệu bản
Ví dụ:
class MyClass
{
string myMsg; public MyClass (string msg) {
myMsg = msg; }
}
class MyApp
{
MyClass c;
public Main (string[] args) {
c = new MyClass(); // Lỗi
(9)4/10/2012
Ví dụ: lớp Time using System;
using System.Collections.Generic; using System.Text;
namespace DeclaringConstructor {
public class Time {
int Year; int Month;
int Date; // private member variables int Hour;
int Minute; int Second;
Ví dụ: lớp Time (tt) public void DisplayCurrentTime( )
{
System.Console.WriteLine( "{0}/{1}/{2} {3}:{4}:{5}", Month, Date, Year, Hour, Minute, Second );
}
// phương thức thiết lập
public Time( System.DateTime dt )
{ Year = dt.Year; Month = dt.Month; Date = dt.Day; Hour = dt.Hour; Minute = dt.Minute; Second = dt.Second;
}
} // end class Time
Ví dụ: lớp Time (tt) public class Kiemtra {
static void Main( ) {
System.DateTime currentTime =System.DateTime.Now; Time t = new Time( currentTime );
t.DisplayCurrentTime( ); }
}
(10)4/10/2012
Khởi tạo biến thành viên
Các biến thành viên khởi tạo trực tiếp khai báo trình khởi tạo
private int Giay = 30; // Khởi tạo
Nạp chồng phương thức thiết lập
Chúng ta định nghĩa nhiều phương thức thiết lập lớp
Với điều kiện
Danh sách tham số phải khác
Hoặc kiểu liệu các tham số phải
khác
Ví dụ
public class taikhoan {
private float sodutk ; private float gioihanrut;
public taikhoan( int sd)
{ sodutk = sd; }
public taikhoan (int sd, int lm) {