Professional Documents
Culture Documents
Bai 03
Bai 03
Bai 03
Bộ môn Công nghệ Phần mềm Nêu được bản chất, vai trò của trừu tượng hóa
Viện CNTT & TT Giải thích về đóng gói và che giấu thông tin
Trường Đại học Bách Khoa Hà Nội Xây dựng lớp
Định nghĩa lớp, thực hiện ẩn
Tạo các phương thức, các trường/thuộc tính
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
3 4
1
8/24/2011
7 8
1.2. Trừu tượng hóa dữ liệu (3) 1.2. Trừu tượng hóa dữ liệu (2)
Any model that includes the most important, Tập hợp các thể hiện của
essential, or distinguishing aspects of các thực thể thành các nhóm
something while suppressing or ignoring less có chung các thuộc tính
important, immaterial, or diversionary details.
The result of removing distinctions so as to
emphasize commonalties (Dictionary of
Object Technology, Firesmith, Eykholt,
1995).
9 10
11 12
2
8/24/2011
13 14
Professor
- name
- employeeID : UniqueId
- hireDate
- status
- discipline
- maxLoad
Student
+ submitFinalGrade()
+ acceptCourseOffering()
- name
+ setMaxLoad() - address
+ takeSabbatical() - studentID
+ teachClass()
- dateOfBirth
Student
- address = “123 Main St.”
- studentID = 9 2. Đóng gói và xây dựng lớp
Tạo và sử dụng đối tượng
- name - dateOfBirth = “03/10/1967”
- address 3.
- studentID
- dateOfBirth
sv2:Student
- name = “D. Hatcher”
- address = “456 Oak Ln.”
- studentID = 2
- dateOfBirth = “12/11/1969”
18
3
8/24/2011
BankAccount
- owner: String
- balance: double
Client Methods
+ debit(double): boolean
+credit(double)
Data
19 20
BankAccount
- owner: String
- balance: double
+ debit(double): boolean
Input Don’t know how Output +credit(double)
it works, but it
works! 21 22
2.2. Xây dựng lớp (2) 2.2. Xây dựng lớp (3)
Lớp đóng gói các thành viên (member) Các lớp được nhóm lại thành package
String owner;
double balance;
23 24
4
8/24/2011
25 26
5
8/24/2011
BankAccount
- owner: String
- balance: double
+ debit(double): boolean
boolean
+credit(double)
31 32
33 34
35
6
8/24/2011
package com.megabank.models;
public class BankAccount { 2.3. Che giấu dữ liệu (Data hiding)
private String owner;
private double balance;
BankAccount
- owner: String
- balance: double
+ debit(double): boolean
39
+credit(double) 40
41 42
7
8/24/2011
Khởi tạo và hủy bỏ đối tượng 3.2. Phương thức khởi tạo
Tạo Mục đích chính?
Hủy
Student
- name
- address
- studentID
- dateOfBirth
Nguyễn Thu Hương
Nguyễn Hoàng Nam …
Hải Phòng…
Hà Nội…
45 46
3.2. Phương thức khởi tạo (2) 3.2. Phương thức khởi tạo (3)
Ví dụ: Các chỉ định truy cập có thể dùng?
public BankAccount(String o, double b){ Được xem như là thành viên của lớp?
owner = o;
balance = b;
}
47 48
8
8/24/2011
3.2. Phương thức khởi tạo (4) 3.3. Khai báo và khởi tạo đối tượng
Phương khởi tạo mặc định (default Đối tượng được tạo ra, thể hiện hóa
constructor) (instantiate) từ một mẫu chung (lớp).
49 50
3.3. Khai báo và khởi tạo đối tượng (2) 3.3. Khai báo và khởi tạo đối tượng (3)
51 52
3.3. Khai báo và khởi tạo đối tượng (4) 3.3. Khai báo và khởi tạo đối tượng (5)
Ví dụ:
Employee emp1 = new Employee(123456);
Employee emp2;
emp2 = emp1;
Department dept[] = new Department[100];
Test[] t = {new Test(1),new Test(2)};
53 54
9
8/24/2011
Ví dụ 1 Ví dụ 2
class BankAccount{ public class BackAccount{
private String owner; private String owner;
private double balance;
private double balance;
public BankAccount(){
} owner = ”noname”;
public class Test{ }
public static void main(String args[]){ }
BankAccount acc1 = new BankAccount(); public class Test{
public static void main(String args[]){
}
BankAccount acc1 = new BankAccount();
}
}
}
55 56
59 60
10
8/24/2011
11