8/24/2011
Nội dung
1.
Bộ môn Công nghệ Phần mềm
Viện CNTT & TT
Trường Đại học Bách Khoa Hà Nội
2.
3.
4.
k o?sqìmg?g ︰mf?I。h?s ︸mf
Bài 01. Tổng quan vềOOP
Lập trình hướng đối tượng
Công nghệhướng đối tượng
Ngôn ngữlập trình Java
Ví dụvà bài tập
2
Nội dung
1.
2.
3.
4.
1.1. Lị
ch sửphát triển của các NNLT
a. Hợp ngữ(Assembly language):
Lậ p trình hư ớ ng đố i tư ợ ng
Công nghệhướng đối tượng
Ngôn ngữlập trình Java
Ví dụvà bài tập
3
1.1. Lị
ch sửphát triển của các NNLT (2)
4
1.1. Lị
ch sửphát triển của các NNLT (3)
b. NNLT cấu trúc/thủ
tục:
c. NNLT hướng đối tượng:
5
6
1
8/24/2011
1.2. Đối tượng là gì?
Đối tượng thếgiới thực
Đối tượng trong thếgiới thực
Là một thực thểcụthểmà thông thường
chúng ta có thểsờ , nhìn thấ y hay cả m nhậ n
được.
7
Đối tượng phần mềm
8
Đối tượng
Đối tượng phần mềm
9
Mô hình hóa đối tượng
10
Tương tác giữa các đối tượng
Car
Tom
House
Đối tượng phần mềm Xe Đạp
Reality
Tree
Object-oriented modeling
Model
drives
House
Car
lives in
Tree
Tom
11
12
2
8/24/2011
Gọi hàm vs. Gửi thông điệp
Thông điệp vs. Phương thức
Thông điệp
Gọi hàm (Call function)
Phương thức
Gửi thông điệp
13
14
Lớp-Ví dụLớp Xe đạp
Hướng cấu trúc vs. Hướng ĐT?
Khai báo cho lớp
XeDap
Hướng cấu trúc:
Đối tượng của lớp
XeDap
Hướng đối tượng:
15
2. Công nghệđối tượng (OT)
Nội dung
1.
2.
3.
4.
16
Lập trình hướng đối tượng
Công nghệ hư ớ ng đố i tư ợ ng
Ngôn ngữlập trình Java
Ví dụvà bài tập
Gn ¡¦ ?s¡¦⁄‹› ›£„ L `?l\‹\£¡‒☂ ?f· ¡K?s\„ ›‒K?PXXVH
17
18
3
8/24/2011
2.1. Lị
ch sửphát triển của OT
2.2. OT được sửdụng ởđâu?
Các hệthống Client/Server và phát triển
Web
C ++
Simula
The UML
Late 1980s
1967
1996
1972
1991
2004
Smalltalk
Java
UML 2
20
19
2.2. OO được sửdụng ởđâu? (2)
2.3. Các nguyên lý cơ bản của OO
Hệnhúng (embedded system)
Hệthống thời gian thực (real-time)
Phân cấp
Mô-đun hóa
Trừu
tượng
hóa
S
Đóng gói
Hướng đối tượng
21
22
b. Đóng gói (Encapsulation)
a. Trừu tượng hóa (Abstraction)
Tăng cường tính mềm dẻo
23
24
23
4
8/24/2011
c. Mô đun hóa (Modularity)
d. Phân cấp (Hierarchy)
Tài sản
Gia tăng mức độ
trừu tượng hóa
Tài khoản ngân hàng Chứng khoán
Giảm mức độ
trừu tượng hóa
Tiết kiệm Tiên gửi
Cổ phiếu
Bất động sản
Các loại giấy tờ có giá trị
25
26
25
Nội dung
1.
2.
3.
4.
26
3.1. Java là gì?
Java là một ngôn ngữlập trình HĐT được phát triển
bởi Sun Microsystems.
Lập trình hướng đối tượng
Công nghệhướng đối tượng
Ngôn ngữ lậ p trình Java
Ví dụvà bài tập
f‒¡¡‹?s¡\«?\‹ ?i\«¡ ?f› ‹£
G ⁄¡? ¡\ ¡‒H
27
28
3.2. Các ấn bản của Java
3.1. Java là gì?
Ngày nay, nhắc đến Java, không còn nhắc
đến như một ngôn ngữmà còn là một công
nghệ, một nền tảng phát triển.
Java có một cộng đồng phát triển mạnh mẽ
29
30
5
8/24/2011
Lị
ch sửphát triển của J2SE
Lị
ch sửphát triển của J2SE (2)
JDK 1.1.4 (Sparkler): 12 tháng 9, 1997
JDK 1.1.5 (Pumpkin): 3 tháng 12, 1997
JDK 1.1.6 (Abigail): 24 tháng 4, 1998
JDK 1.1.7 (Brutus): 28 tháng 9, 1998
JDK 1.1.8 (Chelsea): 8 tháng 4, 1999
J2SE 1.2 (Playground): 4 tháng 12, 1998
J2SE 1.2.1 (none): 30 tháng 3, 1999
J2SE 1.2.2 (Cricket): 8 tháng 7, 1999
J2SE 1.3 (Kestrel): 8 tháng 5, 2000
J2SE 1.3.1 (Ladybird): 17 tháng 5, 2001
J2SE 1.4.0 (Merlin) 13 tháng 2, 2002
J2SE 1.4.1 (Hopper) 16 tháng 9, 2002
J2SE 1.4.2 (Mantis) 26 tháng 6, 2003
J2SE 5 (1.5.0) (Tiger) 29 tháng 9, 2004
Java SE 6 ( Mustang) , 11 tháng 12, 2006
Các bản cập nhật 2 và 3 được đưa ra vào năm 2007
Bản cập nhật 4 đưa ra tháng 1 năm 2008.
Java SE 7 ( Dolphin) , 4/2008.
32
31
3.3. Mô hình dị
ch của Java
3.2. Nền tảng của Java (Java platform)
a. Mô hình biên dị
ch truyền thống:
33
3.3. Mô hình dị
ch của Java (2)
b. Mô hình dị
ch của Java:
34
3.3. Mô hình dị
ch của Java (3)
Máy ảo Java (Java Virtual Machine):
Máy ảo Java là trái tim của ngôn ngữJava
35
36
6
8/24/2011
3.4. Các tính năng của Java
3.4. Các tính năng của Java (2)
Java được thiết kế:
Mạnh mẽ
Ngôn ngữlập trình mạnh, đầy đủtính năng và
thuần hướng đối tượng.
Dễhọc, cú pháp tương tựnhư C++
…
Hướng đối tượng
38
37
3.4. Các tính năng của Java (3)
3.4. Các tính năng của Java (3)
Đơn giản
Java có 50 từkhóa
Network capable
39
3.4. Các tính năng của Java (4)
40
3.4. Các tính năng của Java (5)
Đa luồng (Multi-threaded)
Bảo mật
Khảchuyển (Portable)
41
42
7
8/24/2011
3.4. Các tính năng của Java (6)
3.5. Các kiểu chương trình Java
Ứng dụng (Application)
Các môi trường phát triển
Java Development Kit
Applet
Integrated Development Environments (IDEs):
44
43
Nội dung
3.5. Các kiểu chương trình Java (2)
Ứng dụng Web (Web application)
1.
2.
3.
4.
Lập trình hướng đối tượng
Công nghệhướng đối tượng
Ngôn ngữlập trình Java
Ví dụ và bài tậ p
45
Ví dụ1 - HelloWorld
46
Ví dụ1 (tiếp)
Chú thích (Comment)
Java phân biệt chữhoa chữthường
Từkhóa có sẵn của Java:
// HelloWorld.java
// Chuong trinh hien thi dong chu “Hello World”
public class HelloWorld {
/* Phuong thuc main se duoc goi dau tien
trong bat cu ung dung Java nao*/
public static void main(String args[]){
System.out.println( “Hello World!" );
} // ket thuc phuong thuc main
} // ket thuc lop HelloWorld
class: Khai báo lớp
public: Quy đị
nh phạm vi truy cập
Tên lớp chứa hàm main phải trùng với tên
file .java.
47
48
8
8/24/2011
Biến môi trường
Cài đặt và chạy thửchương trình Java
Bước 1: Cài đặt j2sdk1.5/6/7, cài đặt các biến môi trường
(nếu dùng cmd)
Bước 2: Cài trình soạn thảo
TextPad/JCreator/NetBean/Eclipse…
Bước 3: Lập trình/Viết mã nguồn
Bước 4: Dị
ch
cmd: javac HelloWorld.java
Textpad: Ctrl + 1
JCreator: F7 hoặc Build
Build Project/File
Bước 5: Chạy chương trình
cmd: java HelloWorld.class
Textpad: Ctrl + 2
JCreator: F5 hoặc Run
Run Project/File
PATH = …;C:\Program Files\Java\jdk1.6\bin
CLASSPATH = C:\Program
Files\Java\jdk1.6\lib;.;C:\Program
Files\Java\jdk1.6\include
49
50
Ví dụ2 - GUI
import javax.swing.JOptionPane;
public class FirstDialog{
public static void main(String[] args){
JOptionPane.showMessageDialog(null,
”Xin chao ban!”);
System.exit(0);
}
}
51
52
Ví dụ3 – Nhập, xuất dữliệu
import javax.swing.JOptionPane;
public class HelloNameDialog{
public static void main(String[] args){
String result;
result = JOptionPane.showInputDialog(“Hay nhap
ten ban:”);
JOptionPane.showMessageDialog(null,
”Xin chao “+ result + “!”);
System.exit(0);
}
}
53
9