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

Bài giảng kỹ thuật lập trình chương 4

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 (1.15 MB, 35 trang )

Chương 4

Lớp và đối tượng


Nội dung
Khái niệm đối tượng
Các mức truy xuất
Các thành phần của lớp


Đối tượng
Khái niệm đối tượng (object) trong lập
trình hướng đối tượng giống như một đối
tượng cụ thể trong thế giới thực.
Mỗi đối tượng có các thuộc tính và các
hành vi riêng.
 Thuộc tính (attribute) mô tả đặc điểm của đối
tưởng.
 Hành vi là phương thức hoạt động của đối
tượng, gọi tắt là phương thức (method).


Đối tượng
Ví dụ: Phân số
Đặc điểm
 Tử số
 Mẫu số

Thao tác
 Cộng, trừ, nhân, chia


 Tối giản
 Nghịch đảo


Đối tượng
Ví dụ: xe hơi









Màu trắng
4 cửa
4 bánh
Hiệu Toyota
Chạy tới
Chạy lui
Xe dừng



Đối tượng
Đối tượng:
XeHoi
Hiệu xe
Màu xe

Số bánh xe
Số cửa
Chạy tới
Chạy lui
Dừng xe

Tên đối tượng
Thuộc tính

Phương thức


Đối tượng
Các đối tượng có các đặc điểm (thuộc tính
và phương thức) giống nhau được gom
nhóm thành một lớp để phân biệt với các
đối tượng khác và dễ quản lý.
Một lớp (class) là sự phân loại của các
đối tượng hay là kiểu (type) của đối
tượng.
Ví dụ:
− Các chiếc xe Toyota, Honda, Porsche thuộc
lớp xe hơi.
• Các con chó giữ nhà, chó săn, chó kiểng
thuộc lớp chó.


Khai báo đối tượng
class TenLop
{

//khai báo biến lớp
kieubien tenBien1;
kieubien tenBien2;
//khai báo phương thức
PhuongThuc1();
PhuongThuc2();
}


Khởi tạo đối tượng
TenLop tenBien = new TenLop();
Ví dụ:
 PhanSo a = new PhanSo();
 XeHoi b = new XeHoi();


Khai báo đối tượng
Đối tượng phân số:
class PhanSo
{
//khai báo biến lớp
int tuSo;
int mauSo;
//khai báo phương thức
...
}


Mức truy xuất
public

 Có thể truy xuất ở mọi nơi khác

private
 Chỉ có thể truy xuất ở trong class

protected
 Chỉ có thể truy xuất ở trong class hoặc class
kế thừa


Biến lớp
Lưu trữ tình trạng của đối tượng
Sử dụng cách khai báo biến thông thường
Thêm mức truy xuất
Ví dụ
 public int tuSo;
 private int mauSo
 protected soBanhXe;

Truy xuất biến lớp:
 tenDoiTuong.bienLop


Phương thức (method)
Các hàm bên trong lớp
Mô tả hoạt động của đối tượng
Thêm mức truy xuất khi khai báo
Truy xuất phương thức
 tenBien.TenPhuongThuc();
 Ví dụ:

• PhanSo a = new PhanSo();
• a.ToiGian();
• PhanSo b = a.NhanMotSo(2);


static
Dùng cho các thành phần lớp không phụ
thuộc vào đối tượng cụ thể
Có thể truy cập trong bản thân lớp
Được truy cập trực tiếp từ tên lớp
Phương thức static chỉ truy cập được
những thành viên static của lớp
Truy cập:
 TenLop.TenBien
 TenLop.TenPhuongThuc()


Hàm khởi tạo (constructor)
Khởi tạo giá trị ban đầu cho đối tượng khi
khai báo
Cùng tên với tên lớp
Không khai báo kiểu trả về
Khai báo:
class TenLop
{
public TenLop()
{
...
}
}



Constructor mặc định
Là constructor không có tham số và không
thực hiện lệnh gì cả
Nếu không khai báo constructor thì trình
biên dịch sẽ tự thêm constructor mặc định


Constructor
Một lớp có thể có nhiều constructor
Các constructor khác nhau về tham số
 Số tham số
 Kiểu tham số

Đối tượng được khởi tạo theo constructor
tương ứng khi khai báo
Chú ý: Khi khai báo constructor khác,
constructor mặc định sẽ không có. Nếu
muốn sử dụng thì phải khai báo lại.


Constructor
class PhanSo
{
//khai báo biến lớp
public int tuSo;
public int mauSo;
public PhanSo()
{

tuSo = 0;
mauSo = 1;
}
public PhanSo(int ts, int ms)
{
tuSo = ts;
mauSo = ms;
}
}


Constructor
Khởi tạo đối tượng phân số có tử số = 0,
mẫu số = 1:
 PhanSo a = new PhanSo();
 PhanSo b = new PhanSo(0, 1);

Khởi tạo đối tượng phân số có tử số = 1,
mẫu số = 2
 PhanSo c = new PhanSo(1, 2)


Tham chiếu this
Tham khảo đến đối tượng hiện hành
Trong trường hợp đặt tên tham số trùng
với tên biến lớp, sử dụng this để chỉ biến
lớp class PhanSo
{
public int tuSo;
public int mauSo;

public PhanSo(int tuSo, int mauSo)
{
this.tuSo = tuSo;
this.mauSo = mauSo;
}
}


Truyền đối tượng vào phương thức
Đối tượng là kiểu tham chiếu
Nếu có câu lệnh tác động đến giá trị các
biến lớp của đối tượng trong phương thức
 đối tượng bị thay đổi sau khi hoàn tất
phương thức.


Chương 4

Lớp và đối tượng


Nội dung
Thuộc tính
Operator


Bảo vệ truy cập biến lớp
Thay đổi tên biến  thay đổi code ở
những chỗ dùng biến?
Hạn chế người dùng thay đổi giá trị biến?

Kiểm tra hợp lệ khi gán giá trị biến?
Biến chỉ đọc (read only)?
Truy cập giá trị là kết quả của việc xử lý
các biến lớp?


Bảo vệ truy cập biến lớp
 Không cho phép truy cập biến lớp
 dùng hàm để truy cập
class PhanSo
{
private int tuSo;
public int mauSo;
public int LayTuSo()
{
return tuSo;
}
public void GanTuSo(int gt)
{
tuSo = gt;
}
}


×