8/24/2011
Nội dung
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
1. Lập trình hướng đối tượng 2. Công nghệ hướng đối tượng 3. Ngôn ngữ lập trình Java 4. Ví dụ và bài tập
(cid:76)(cid:7852)(cid:80)(cid:32)(cid:84)(cid:82)(cid:204)(cid:78)(cid:72)(cid:32)(cid:72)(cid:431)(cid:7898)(cid:78)(cid:71)(cid:32)(cid:272)(cid:7888)(cid:73)(cid:32)(cid:84)(cid:431)(cid:7906)(cid:78)(cid:71) Bài 01. Tổng quan về OOP
2
Nội dung
1.1. Lịch sử phát triển của các NNLT
(cid:61550) a. Hợp ngữ (Assembly language):
1. Lập trình hướng đối tượng 2. Công nghệ hướng đối tượng 3. Ngôn ngữ lập trình Java 4. Ví dụ và bài tập
1.1. Lịch sử phát triển của các NNLT (2)
1.1. Lịch sử phát triển của các NNLT (3)
(cid:61550) b. NNLT cấu trúc/thủ
(cid:61550) c. NNLT hướng đối tượng:
tục:
3 4
1
5 6
8/24/2011
1.2. Đối tượng là gì?
Đối tượng thế giới thực
(cid:61550) Đối tượng trong thế giới thực
(cid:61550) 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 8
Đối tượng phần mềm
Đối tượng
Đối tượng phần mềm
Đối tượng phần mềm Xe Đạp
9 10
Mô hình hóa đối tượng
Tương tác giữa các đối tượng
Car
Tom
House
Reality
Tree
Object-oriented modeling
Model
drives
House
Car
lives in
Tree
Tom
2
11 12
8/24/2011
Gọi hàm vs. Gửi thông điệp
Thông điệp vs. Phương thức
(cid:61550) Thông điệp
(cid:61550) Gọi hàm (Call function)
(cid:61550) Phương thức
(cid:61550) Gửi thông điệp
Hướng cấu trúc vs. Hướng ĐT?
14 13
Lớp-Ví dụ Lớp Xe đạp
(cid:61550) Hướng cấu trúc:
Khai báo cho lớp XeDap
Đối tượng của lớp XeDap
(cid:61550) Hướng đối tượng:
16 15
2. Công nghệ đối tượng (OT)
Nội dung
1. Lập trình hướng đối tượng 2. Công nghệ hướng đối tượng 3. Ngôn ngữ lập trình Java 4. Ví dụ và bài tập
(cid:40)(cid:79)(cid:98)(cid:106)(cid:101)(cid:99)(cid:116)(cid:32)(cid:84)(cid:101)(cid:99)(cid:104)(cid:110)(cid:111)(cid:108)(cid:111)(cid:103)(cid:121) (cid:45) (cid:65)(cid:32)(cid:77)(cid:97)(cid:110)(cid:97)(cid:103)(cid:101)(cid:114)(cid:8217)(cid:115)(cid:32)(cid:71)(cid:117)(cid:105)(cid:100)(cid:101)(cid:44)(cid:32)(cid:84)(cid:97)(cid:121)(cid:108)(cid:111)(cid:114)(cid:44)(cid:32)(cid:49)(cid:57)(cid:57)(cid:55)(cid:41)
3
18 17
8/24/2011
2.1. Lịch sử phát triển của OT
2.2. OT được sử dụng ở đâu?
(cid:61550) Các hệ thống Client/Server và phát triển
Web
Simula
C ++
The UML
Smalltalk
UML 2
Late 1980s 1996 1967 1991 2004 1972
Java
2.2. OO được sử dụng ở đâu? (2)
2.3. Các nguyên lý cơ bản của OO
(cid:61550) Hệ nhúng (embedded system) (cid:61550) Hệ thống thời gian thực (real-time)
Hướng đối tượng
i
(cid:52)
a ó h
ó g
p ấ c
a ó h
u ừ r T
g n ợ ư
t
g n ó Đ
n â h P
n u đ - ô M
20 19
a. Trừu tượng hóa (Abstraction)
22 21
b. Đóng gói (Encapsulation)
Tăng cường tính mềm dẻo
2323
4
23 24
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
Bất động sản
Cổ phiếu
Tiết kiệm
Tiên gửi
Các loại giấy tờ có giá trị
Giảm mức độ trừu tượng hóa
2525
2626
25 26
Nội dung
3.1. Java là gì?
(cid:61550) Java là một ngôn ngữ lập trình HĐT được phát triển
bởi Sun Microsystems.
1. Lập trình hướng đối tượng 2. Công nghệ hướng đối tượng 3. Ngôn ngữ lập trình Java 4. Ví dụ và bài tập
(cid:71)(cid:114)(cid:101)(cid:101)(cid:110)(cid:32)(cid:84)(cid:101)(cid:97)(cid:109)(cid:32)(cid:97)(cid:110)(cid:100)(cid:32)(cid:74)(cid:97)(cid:109)(cid:101)(cid:115)(cid:32)(cid:71)(cid:111)(cid:115)(cid:108)(cid:105)(cid:110)(cid:103)
(cid:40)(cid:116)(cid:104)(cid:101)(cid:32)(cid:108)(cid:101)(cid:97)(cid:100)(cid:101)(cid:114)(cid:41)
28 27
3.1. Java là gì?
3.2. Các ấn bản của Java
(cid:61550) 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.
(cid:61550) Java có một cộng đồng phát triển mạnh mẽ
5
29 30
8/24/2011
Lịch sử phát triển của J2SE
Lịch sử phát triển của J2SE (2)
(cid:61550) J2SE 1.4.0 (Merlin) 13 tháng 2, 2002 (cid:61550) J2SE 1.4.1 (Hopper) 16 tháng 9, 2002 (cid:61550) J2SE 1.4.2 (Mantis) 26 tháng 6, 2003 (cid:61550) J2SE 5 (1.5.0) (Tiger) 29 tháng 9, 2004 (cid:61550) Java SE 6 (Mustang), 11 tháng 12, 2006 (cid:61550) Các bản cập nhật 2 và 3 được đưa ra vào năm 2007 (cid:61550) Bản cập nhật 4 đưa ra tháng 1 năm 2008.
(cid:61550) Java SE 7 (Dolphin), 4/2008.
(cid:61550) JDK 1.1.4 (Sparkler): 12 tháng 9, 1997 (cid:61550) JDK 1.1.5 (Pumpkin): 3 tháng 12, 1997 (cid:61550) JDK 1.1.6 (Abigail): 24 tháng 4, 1998 (cid:61550) JDK 1.1.7 (Brutus): 28 tháng 9, 1998 (cid:61550) JDK 1.1.8 (Chelsea): 8 tháng 4, 1999 (cid:61550) J2SE 1.2 (Playground): 4 tháng 12, 1998 (cid:61550) J2SE 1.2.1 (none): 30 tháng 3, 1999 (cid:61550) J2SE 1.2.2 (Cricket): 8 tháng 7, 1999 (cid:61550) J2SE 1.3 (Kestrel): 8 tháng 5, 2000 (cid:61550) J2SE 1.3.1 (Ladybird): 17 tháng 5, 2001
3.2. Nền tảng của Java (Java platform)
31 32
3.3. Mô hình dịch của Java
(cid:61550) a. Mô hình biên dịch truyền thống:
33 34
3.3. Mô hình dịch của Java (2)
3.3. Mô hình dịch của Java (3)
(cid:61550) b. Mô hình dịch của Java:
(cid:61550) Máy ảo Java (Java Virtual Machine): (cid:61550) Máy ảo Java là trái tim của ngôn ngữ Java
6
35 36
8/24/2011
3.4. Các tính năng của Java (2)
3.4. Các tính năng của Java
(cid:61550) Java được thiết kế:
(cid:61550) Mạnh mẽ
(cid:61550) Ngôn ngữ lập trình mạnh, đầy đủ tính năng và
thuần hướng đối tượng.
(cid:61550) Hướng đối tượng
(cid:61550) Dễ học, cú pháp tương tự như C++ (cid:61550) …
3.4. Các tính năng của Java (3)
3.4. Các tính năng của Java (3)
(cid:61550) Đơn giản
(cid:61550) Java có 50 từ khóa
(cid:61550) Network capable
37 38
3.4. Các tính năng của Java (4)
3.4. Các tính năng của Java (5)
(cid:61550) Đa luồng (Multi-threaded)
(cid:61550) Bảo mật
(cid:61550) Khả chuyển (Portable)
39 40
7
41 42
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
(cid:61550) Ứng dụng (Application)
(cid:61550) Các môi trường phát triển (cid:61550) Java Development Kit
(cid:61550) Applet
(cid:61550) Integrated Development Environments (IDEs):
43 44
Nội dung
3.5. Các kiểu chương trình Java (2)
(cid:61550) Ứng dụng Web (Web application)
1. Lập trình hướng đối tượng 2. Công nghệ hướng đối tượng 3. Ngôn ngữ lập trình Java 4. Ví dụ và bài tập
45 46
Ví dụ 1 - HelloWorld
Ví dụ 1 (tiếp)
// HelloWorld.java
// Chuong trinh hien thi dong chu “Hello World” public class HelloWorld { /* Phuong thuc main se duoc goi dau tien
(cid:61550) Chú thích (Comment) (cid:61550) Java phân biệt chữ hoa chữ thường (cid:61550) Từ khóa có sẵn của Java:
trong bat cu ung dung Java nao*/ public static void main(String args[]){
(cid:61550) class: Khai báo lớp (cid:61550) public: Quy định phạm vi truy cập
System.out.println( “Hello World!" );
(cid:61550) Tên lớp chứa hàm main phải trùng với tên
} // ket thuc phuong thuc main
file .java.
} // ket thuc lop HelloWorld
8
47 48
8/24/2011
Cài đặt và chạy thử chương trình Java
Biến môi trường
(cid:61550) 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)
(cid:61550) Bước 2: Cài trình soạn thảo
(cid:61550) PATH = …;C:\Program Files\Java\jdk1.6\bin (cid:61550) CLASSPATH = C:\Program
TextPad/JCreator/NetBean/Eclipse…
Files\Java\jdk1.6\lib;.;C:\Program Files\Java\jdk1.6\include
(cid:61550) Bước 3: Lập trình/Viết mã nguồn (cid:61550) Bước 4: Dịch
(cid:61550) cmd: javac HelloWorld.java (cid:61550) Textpad: Ctrl + 1 (cid:61550) JCreator: F7 hoặc Build (cid:61664) Build Project/File
(cid:61550) Bước 5: Chạy chương trình
(cid:61550) cmd: java HelloWorld.class (cid:61550) Textpad: Ctrl + 2 (cid:61550) JCreator: F5 hoặc Run (cid:61664) Run Project/File
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);
}
}
9
53

