
11/09/2017
1
Chương 3
22
NỘI DUNG
1. Giới thiệu
2. Một số khái niệm
3. Thiết kế lớp
(class)
4. Thuộc tính
5. Phương thức
6. Phương thức khởi
tạo
7. Thành viên static
8. Sự đóng gói
9. Từ khóa this
10. Kế thừa
11.Đa hình
12.Lớp trừu tượng
13.Packages &
Interfaces

11/09/2017
2
33
1. Giới thiệu
• Các phương pháp lập trình
–Step-by-Step Programming
–Procedural Programming
–Object-Oriented Programming
44
Step-by-Step Programming
• Lập trình từng bước
•Machine Language, Assembly Language
1. Giới thiệu
1101011100111101
1010000111011101
0110111011001010
1000100100101011
...
MOV BX, CS
SUB BX, 10h
JNE label1
LOOP label2
...

11/09/2017
3
55
Procedural Programming
• Thiết kế top-down.
• Chương trình được
chia thành các hàm,
thủ tục.
• Ngôn ngữ: Pascal, C
•Hạn chế:dùng dữ liệu toàn cục,khó phát
triển,khó mô tả các thực thể trong thực
tế
5
1. Giới thiệu
Program
Proc3
Proc1
Proc2
66
Object-Oriented Programming
• Chương trình bao gồm các đối tượng.
• Các đối tượng tương tác với nhau thông
qua các phương thức của chúng
•Dễ mô tả các thực thể
•Dễ phát triển,
mở rộng chương trình
6
1. Giới thiệu
Object A
Object C
Object B
Object D

11/09/2017
4
77
Vấn đề bài toán (*)
•Cho một tập tin lưu tọa độ (x,y) của các thành phố,
bắt đầu là số lượng thành phố như sau:
6
50 20
90 60
10 72
74 98
5 136
150 91
• Viết một chương trình hiển thị tọa độ các thành phố
trên một DrawingPanel, sau đó đặt một “quả bom” với
bán kính cho trước và tô màu đỏ các thành phố trong
phạm vi sẽ bị “nổ”.
1. Giới thiệu
88
Cách viết không tốt
Scanner input = new Scanner(new
File("cities.txt"));
int cityCount = input.nextInt();
int[] xCoords = new int [cityCount];
int[] yCoords = new int [cityCount];
for (int i = 0; i < cityCount; i++) {
xCoords[i] = input.nextInt();
// read each city
yCoords[i] = input.nextInt();
}
–...
•Sử dụng song song 2 mảng để lưu tọa độ x
và y cho mỗi thành phố với cùng một chỉ số
1. Giới thiệu

11/09/2017
5
99
Quan sát bài toán
•Dữ liệu trong bài toán này là tập hợp các
điểm (Point) cần lưu trữ các đối tượng
Point.
– Mỗi Point chứa hai tọa độ x và y
–So sánh khoảng cách giữa các điểm để xem
một điểm có nằm trong phạm vi nổ bom hay
không.
– Mỗi Point có thể tự vẽ chính nó
Tạo class Point
1. Giới thiệu
1010
2. Một số khái niệm
• Lớp (class): là một kiểu dữ liệu mở rộng
được định nghĩa, bao gồm:
•Danh sách các thuộc tính (dữ liệu)
•Các phương thức mô tả hành vi của một
nhóm đối tượng nào đó
• Đối tượng (object):
•Là một thể hiện cụ thể của lớp, các thuộc tính
có giá trị xác định.
•Là một biến có kiểu dữ liệu là lớp.

