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