Chương 3. Lớp và Đối tượng<br />
Nội dung<br />
Nhắc lại Đối tượng<br />
<br />
Bài 3<br />
3.<br />
Lớp và Đối tượng<br />
<br />
Khai báo lớp đ<br />
h bá lớ đơn giản<br />
ả<br />
Phạm vi truy xuất thành phần lớp<br />
Đối tượng<br />
Đối tượng this<br />
Phương thức khởi tạo<br />
Phươ<br />
thứ<br />
t<br />
Phương thức huỷ<br />
Thành phần tĩnh - static<br />
Thành phần hằng - final<br />
<br />
1. Nhắc lại Đối tượng<br />
<br />
2<br />
<br />
1. Nhắc lại Đối tượng<br />
Đối tượng có<br />
<br />
Một chương trình là tập hợp các đối<br />
<br />
• Th ộ tí h: đặ trưng miêu tả đối tượng<br />
Thuộc tính đặc t ư<br />
tính:<br />
iê<br />
tượ<br />
<br />
tượng tương tác với nhau.<br />
<br />
• Hành vi: là những gì đối tượng có thể làm.<br />
vi:<br />
Thuộc tính có thể là:<br />
<br />
Các đối tượng kết hợp với nhau để<br />
<br />
• attributes: miêu tả đối tượng.<br />
• components: những thành phần của đối tượng<br />
<br />
hoàn thành nhiệm vụ.<br />
<br />
• associations: những điều mà đối tượng biết nhưng không<br />
là thành phần của nó.<br />
<br />
Để làm được điều này, chúng giao<br />
<br />
Hành vi có thể là:<br />
<br />
tiếp với nhau bằng cách truyền thông<br />
<br />
• Constructors: thiết lập đối tượng.<br />
<br />
điệp.<br />
<br />
• queries: cung cấp những câu trả lời dựa trên thuộc tính<br />
4<br />
đối tượng.<br />
<br />
3<br />
<br />
• commands: thay đổi thuộc tính đối tượng.<br />
<br />
1<br />
<br />
Chương 3. Lớp và Đối tượng<br />
1. Nhắc lại Đối tượng<br />
<br />
1. Nhắc lại Đối tượng<br />
<br />
Ví dụ: Thùng rác<br />
<br />
Ví dụ: trò chơi xếp gạch<br />
<br />
Thuộc tính:<br />
<br />
Tetris<br />
<br />
• Attributes: màu, chất liệu, mùi.<br />
<br />
• Những đối tượng của trò<br />
<br />
• Components: nắp, thùng, bịch rác<br />
<br />
chơi này là gì?<br />
<br />
• Associations: phòng mà nó được đặt trong<br />
đó.<br />
<br />
• Chúng biết làm gì?<br />
<br />
Hành vi (khả năng đối tượng)<br />
<br />
• Nhữ<br />
Những thuộc tí h của<br />
th ộ tính ủ<br />
<br />
• Constructor: tạo thùng<br />
<br />
chúng.<br />
<br />
• commands: nhận rác, đổ hết rác.<br />
• queries: trả lời nắp mở hay đóng, thùng<br />
rỗng hay đầy.<br />
5<br />
<br />
6<br />
<br />
1. Đối tượng<br />
<br />
1. Đối tượng<br />
<br />
Đối tượng: chữ, bản điều<br />
khiển.<br />
khiển<br />
Khả năng gì?<br />
<br />
Thuộc tính gì?<br />
• Chữ:<br />
Hướng<br />
<br />
• chữ:<br />
<br />
Vị trí<br />
<br />
Tạo<br />
Quay<br />
Rơi<br />
Dừng<br />
<br />
Hình dạng<br />
Màu sắc<br />
<br />
• Bảng điều khiển<br />
<br />
• Bảng điều khiển<br />
<br />
tạo bảng<br />
bỏ dòng (khi có điểm)<br />
kiểm tra kết thúc trò chơi<br />
<br />
Kích thước<br />
Số dòng<br />
7<br />
<br />
8<br />
<br />
2<br />
<br />
Chương 3. Lớp và Đối tượng<br />
1. Đối tượng<br />
<br />
2. Lớp<br />
Lớp:<br />
Lớp: Hiện thực chung cho một tập<br />
các đối tượng có cùng đặc điểm và<br />
phương thức.<br />
thức.<br />
Một lớp có thể là lớp con của một lớp<br />
đã có<br />
Lớp và mỗi thành phần cần phải chỉ<br />
định ứ<br />
đị h mức độ cho phép t<br />
h<br />
hé truy cập (tí h<br />
ậ (tính<br />
bảo mật)<br />
access modifier<br />
<br />
Lớp là hiện thực chung cho tập các đối<br />
tượng có cùng đặc điểm và hành vi<br />
vi.<br />
<br />
Lớp Chữ<br />
<br />
Cài đặt các khả năng lớp là phương thức.<br />
Cài đặt các thuộc tính là biến.<br />
<br />
9<br />
<br />
10<br />
<br />
2. Khai báo lớp đơn giản<br />
<br />
2. Khai báo lớp đơn giản<br />
<br />
Cú pháp:<br />
<br />
Khai báo phương thức:<br />
<br />
class <br />
ê ớ<br />
{<br />
<br />
PVTX Kiểu tênPhươngThức(ds Tham số)<br />
{<br />
<br />
Khai báo các thuộc tính<br />
Khai báo các phương thức<br />
<br />
Các lệnh của phương thức;<br />
return kếtQuả;<br />
<br />
}<br />
<br />
}<br />
<br />
Khai báo thuộc tính:<br />
Phạm vi truy xuất Kiểu tênThuộcTính;<br />
11<br />
<br />
12<br />
<br />
3<br />
<br />
Chương 3. Lớp và Đối tượng<br />
Phạm vi truy xuất<br />
<br />
Phạm vi truy xuất<br />
<br />
Modifier<br />
<br />
private<br />
<br />
friendly<br />
<br />
protected<br />
<br />
public<br />
<br />
Cùng class<br />
<br />
YES<br />
<br />
YES<br />
<br />
YES<br />
<br />
YES<br />
<br />
Cùng gói, khác<br />
class<br />
<br />
NO<br />
<br />
YES<br />
<br />
YES<br />
<br />
YES<br />
<br />
lớp con trong<br />
cùng gói với<br />
lớp cha<br />
<br />
NO<br />
<br />
YES<br />
<br />
YES<br />
<br />
YES<br />
<br />
Khác gói, khác<br />
lớp<br />
<br />
NO<br />
<br />
NO<br />
<br />
NO<br />
<br />
YES<br />
<br />
Lớp con khác<br />
gói với lớp cha<br />
<br />
NO<br />
<br />
NO<br />
<br />
YES<br />
<br />
Không có modifier: Mặc định là<br />
modifier:<br />
friendly, h<br />
friendly<br />
f i dl , cho phép các đối tượng<br />
hé<br />
á<br />
tượ<br />
thuộc các class cùng package ( cùng<br />
thư mục)truy cập<br />
<br />
YES<br />
13<br />
<br />
3. Phạm vi truy xuất các thành<br />
phần của lớp<br />
<br />
14<br />
<br />
3. Phạm vi truy xuất các thành<br />
phần của lớp<br />
<br />
Thông thường các thuộc tính được quy<br />
định phạm vi truy xuất là private.<br />
Để truy xuất được các thuộc tính từ bên<br />
ngoài lớp, ta cung cấp các phương thức<br />
lấy iá t ị à á<br />
lấ giá trị và gán giá trị cho thuộc tí h<br />
iá t ị h th ộ tính.<br />
<br />
15<br />
<br />
16<br />
<br />
4<br />
<br />
Chương 3. Lớp và Đối tượng<br />
3. Phạm vi truy xuất các thành<br />
phần của lớp<br />
<br />
3. Phạm vi truy xuất các thành<br />
phần của lớp<br />
Xuất hiện lỗi !<br />
<br />
17<br />
<br />
3. Phạm vi truy xuất các thành<br />
phần của lớp<br />
<br />
18<br />
<br />
Ví dụ<br />
<br />
Hiệu chỉnh.<br />
<br />
19<br />
<br />
20<br />
<br />
5<br />
<br />