LỚP VÀ ĐỐI TƯỢNG
Gv: Văn Thiên Hoàng 2/40
Mục đích & Yêu cầu
•
Nắm vững cấu trúc của một lớp.
•
Nắm vững các chỉ thị truy cập.
•
Giải thích được constructor và destructor
•
Hiểu cách sử dụng phương thức
Gv: Văn Thiên Hoàng 3/40
Nội dung
•
Nhắc lại Đối tượng
•
Khai báo lớp đơn giản
•
Đối tượng
•
Phạm vi truy xuất thành phần lớp
•
Đối tượng this
•
Phương thức khởi tạo
•
Phương thức huỷ
•
Thành phần tĩnh & hằng
Gv: Văn Thiên Hoàng 4/40
1. Nhắc lại Đối tượng
•
Một chương trình là tập hợp các đối tượng
tương tác với nhau.
•
Các đối tượng kết hợp với nhau để hoàn thành
nhiệm vụ.
•
Để làm được điều này, chúng giao tiếp với nhau
bằng cách truyền thông điệp.
Gv: Văn Thiên Hoàng 5/40
1. Nhắc lại Đối tượng
•
Đối tượng có
–
Thuộc tính: đặc trưng miêu tả đối tượng
–
Hành vi: là những gì đối tượng có thể làm.
•
Thuộc tính có thể là:
–
attributes: miêu tả đối tượng.
–
components: những thành phần của đối tượng
–
associations: những điều mà đối tượng biết nhưng không là thành
phần của nó.
•
Hành vi có thể là:
–
Constructors: thiết lập đối tượng.
–
commands: thay đổi thuộc tính đối tượng.
–
queries: cung cấp những câu trả lời dựa trên thuộc tính đối tượng.
Gv: Văn Thiên Hoàng 6/40
1. Nhắc lại Đối tượng
•
Ví dụ: Thùng rác
•
Thuộc tính:
–
Attributes: màu, chất liệu, mùi.
–
Components: nắp, thùng, bịch rác
–
Associations: phòng mà nó được đặt trong đó.
•
Hành vi (khả năng đối tượng)
–
Constructor: tạo thùng
–
commands: nhận rác, đổ hết rác.
–
queries: trả lời nắp mở hay đóng, thùng rỗng hay đầy.
Gv: Văn Thiên Hoàng 7/40
1. Nhắc lại Đối tượng
•
Ví dụ: trò chơi xếp gạch Tetris
–
Những đối tượng của trò chơi
này là gì?
–
Chúng biết làm gì?
–
Những thuộc tính của chúng.
Gv: Văn Thiên Hoàng 8/40
1. Nhắc lại Đối tượng
•
Đối tượng: chữ, bản điều khiển.
•
Khả năng gì?
–
chữ:
•
Tạo
•
Quay
•
Rơi
•
Dừng
–
Bảng điều khiển
•
tạo bảng
•
bỏ dòng (khi có điểm)
•
kiểm tra kết thúc trò chơi
Gv: Văn Thiên Hoàng 9/40
1. Nhắc lại Đối tượng
•
Thuộc tính gì?
–
Chữ:
•
Hướng
•
Vị trí
•
Hình dạng
•
Màu sắc
–
Bảng điều khiển
•
Kích thước
•
Số dòng
Gv: Văn Thiên Hoàng 10/40
1. Nhắc lại Đối tượng
•
Lớp là hiện thực chung cho tập các đối tượng có cùng
đặc điểm và hành vi.
•
Cài đặt các khả năng lớp là phương thức.
•
Cài đặt các thuộc tính là biến.
Lớp Chữ
Gv: Văn Thiên Hoàng 11/40
2. Khai báo lớp đơn giản
•
Cú pháp:
class <TênLớp>
{
Khai báo các thuộc tính
Khai báo các phương thức
}
•
Khai báo thuộc tính:
Kiểu tênThuộcTính;
Gv: Văn Thiên Hoàng 12/40
2. Khai báo lớp đơn giản
•
Khai báo phương thức:
Kiểu tênPhươngThức(ds Tham số)
{
Các lệnh của phương thức;
return kếtQuả;
}
Gv: Văn Thiên Hoàng 13/40
2. Khai báo lớp đơn giản
Gv: Văn Thiên Hoàng 14/40
3. Đối tượng
•
Đối tượng được tạo từ lớp theo cú pháp:
new TênLớp();
–
Ví dụ: new PhanSo();
–
Sẽ cấp phát vùng nhớ lưu đối
tượng.
–
Trong Java vùng nhớ cấp phát
cho đối tượng là Heap.
data
1000
new PhanSo();
Heap
Gv: Văn Thiên Hoàng 15/40
3. Đối tượng
•
Tham chiếu:
–
Để thao tác với đối tượng cần có tên,
gọi là tham chiếu.
–
Khai báo tham chiếu:
TênLớp tênThamChiếu;
–
Ví dụ: PhanSo phanSo;
–
Phép gán tham chiếu:
tênThamChiếu1 = tênThamChiếu2;
PhanSo phanSo ;
phanSo
Heap
Gv: Văn Thiên Hoàng 16/40
3. Đối tượng
•
Ví dụ: Cấp phát và tham chiếu tới đối tượng
PhanSo phanSo = new PhanSo();
phanSo 1000
data
1000
PhanSo phanSo ; phanSo= new PhanSo();
phanSo
Gv: Văn Thiên Hoàng 17/40
3. Đối tượng
•
Thao tác với đối tượng qua tham chiếu:
–
Thao tác với thuộc tính:
tênThCh.tênThuộcTính
Ví dụ: phanSo.tu=1; phanSo.mau=2;
–
Thao tác với phương thức:
tênThCh.tênPhươngThức(ds đối số);
Ví dụ: phanSo.hienThi();
Gv: Văn Thiên Hoàng 18/40
4. Phạm vi truy xuất
các thành phần của lớp
•
Khai báo các thành phần với phạm vi truy xuất:
<Phạm vi> <Khai báo thành phần>
–
<Phạm vi> gồm:
•
public: dùng chung tại mọi vị trí.
•
private: chỉ được truy xuất trong phạm vi của
lớp.
Gv: Văn Thiên Hoàng 19/40
4. Phạm vi truy xuất
các thành phần của lớp
•
Thông thường các thuộc tính được quy định
phạm vi truy xuất là private.
•
Để truy xuất được các thuộc tính từ bên ngoài
lớp, ta cung cấp các phương thức lấy giá trị và
gán giá trị cho thuộc tính.
Gv: Văn Thiên Hoàng 20/40
4. Phạm vi truy xuất
các thành phần của lớp
Gv: Văn Thiên Hoàng 21/40
4. Phạm vi truy xuất
các thành phần của lớp
Gv: Văn Thiên Hoàng 22/40
4. Phạm vi truy xuất
các thành phần của lớp
•
Xuất hiện lỗi !
Gv: Văn Thiên Hoàng 23/40
4. Phạm vi truy xuất
các thành phần của lớp
•
Hiệu chỉnh.
Gv: Văn Thiên Hoàng 24/40
4. Phạm vi truy xuất
các thành phần của lớp
Gv: Văn Thiên Hoàng 25/40
5. Đối tượng this
•
Là đối tượng ngầm định khi viết mã lệnh các phương thức của một
lớp.
•
Ví dụ: trong lớp PhanSo
class PhanSo
{
private int tu, mau;
public void setTu(int tu){ this.tu = tu; }
}