1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng về Java

151 939 4
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 151
Dung lượng 1,25 MB

Nội dung

Bài giảng về Java

Trang 1

M C L C Ụ Ụ

M C L CỤ Ụ 1

Đ tài 0 Gi i thi u v Javaề ớ ệ ề 6

I L ch s hình thành và phát tri n ngôn ng l p trình Javaị ử ể ữ ậ 6

I.1 Gi i thi u v Javaớ ệ ề 6

I.2 Tóm t t l ch s hình thành c a Java ắ ị ử ủ 6

II Các đ c tr ng c a Javaặ ư ủ 7

II.1 Tính đ n gi nơ ả 7

II.2 Tính hướng đ i tố ượng 7

II.3 Tính phân tán 7

II.4 Tính m nh mạ ẽ 7

II.5 Tính an toàn 7

II.6 Tính trung l pậ 8

II.7 Tính di đ ngộ 8

II.8 Tính thông d chị 9

II.9 Tính th c thi caoự 9

II.10 Tính đa lu ngồ 9

II.11 Tính đ ng ộ 9

III Các lo i ng d ng c a Javaạ ứ ụ ủ 9

IV Công c và môi trụ ường l p trình Javaậ 9

V Cài đ t Java ặ 10

Đ tài 1 Ngôn ng mô hình hóa UMLề ữ 13

I Xây d ng h th ng ph n m m theo hự ệ ố ầ ề ướng đ i tố ượng 13

I.1 Các khái ni m căn b n c a công ngh hệ ả ủ ệ ướng đ i tố ượng 13

I.2 Quy trình chung phát tri n h th ng ph n m mể ệ ố ầ ề 14

I.3 Nh ng thách th c c a ngành công nghi p ph n m m hi n nayữ ứ ủ ệ ầ ề ệ 14

II L ch s phát tri n ngôn ng mô hình hóa UMLị ử ể ữ 14

II.1 Tóm t t l ch s UMLắ ị ử 14

II.2 Khái ni m v UMLệ ề 15

II.3 Đ c tr ng c a UMLặ ư ủ 15

III Ngôn ng UMLữ 16

III.1 Các thành ph n c a UMLầ ủ 16

III.2 Các hướng nhìn (view) 17

III.3 ng d ng UML trong quy trình làm ph n m mỨ ụ ầ ề 24

IV Quy trình Rational Unified Process (RUP) phát tri n ph n m m d a trên UMLể ầ ề ự 26

IV.1 Gi i thi u v RUPớ ệ ề 26

IV.2 Các nguyên t c chính c a RUP:ắ ủ 26

IV.3 Vòng đ i c a ph n m m theo quy trình RUPờ ủ ầ ề 26

IV.4 Các công c c a RUPụ ủ 28

Bài t pậ 28

Đ tài 2 Nh p môn Javaề ậ 29

I Vi t và th c hi n m t chế ự ệ ộ ương trình Java 29

I.1 Tìm hi u mã ngu n m t chể ồ ộ ương trình đ n gi nơ ả 29

I.2 Th c hi n chự ệ ương trình Java 29

I.3 M t s chú ý khi l p trình Javaộ ố ậ 30

Trang 2

I.4 C u trúc m t chấ ộ ương trình Java 30

II Các ki u d li u trong Javaể ữ ệ 31

II.1 Các ki u d li u s nguyênể ữ ệ ố 31

II.2 Các ki u s th cể ố ự 32

II.3 Ki u ký t (character)ể ự 32

II.4 Ki u logic (boolean)ể 32

II.5 Ki u chu iể ỗ 32

II.6 Chuy n đ i gi a các ki u sể ổ ữ ể ố 32

III Khai báo bi n và h ng trong Javaế ằ 33

III.1 Quy t c đ t tên bi nắ ặ ế 33

III.2 Khai báo bi nế 33

III.3 Bi n ki u m ngế ể ả 34

III.4 H ng s (literal)ằ ố 35

III.5 Ph m vi ho t đ ng c a h ng và bi n:ạ ạ ộ ủ ằ ế 36

IV Các toán t và bi u th cử ể ứ 36

IV.1 Các toán t và th t u tiênử ứ ự ư 36

IV.2 Bi u th cể ứ 37

V Các l nh đi u khi n r nhánhệ ề ể ẽ 38

V.1 L nh ifệ 38

V.2 L nh switch …caseệ 38

VI Các l nh l pệ ặ 39

VI.1 Vòng l p forặ 39

VI.2 Vòng l p whileặ 40

VI.3 Vòng l p do whileặ 41

VI.4 Phép nh yả 41

VII Vào d li u t bàn phím và xu t d li u ra màn hìnhữ ệ ừ ấ ữ ệ 42

VII.1 L y giá tr nh p vào t bàn phímấ ị ậ ừ 42

VII.2 K t xu t d li u ra màn hìnhế ấ ữ ệ 43

Bài t pậ 44

Đ tài 3 L p trình hề ậ ướng đ i tố ượng trong Java 46

I Khái ni m l p trình hệ ậ ướng đ i tố ượng (Object-Oriented Programming - OOP) 46

I.1 Khái ni m OOPệ 46

I.2 C s lý lu n c a OOPơ ở ậ ủ 46

I.3 Tr u từ ượng hóa 46

II Tính đóng gói trong Java 48

II.1 Khái ni m tính đóng góiệ 48

II.2 M i quan h gi a các classố ệ ữ 48

II.3 M t s g i ý khi thi t k classộ ố ợ ế ế 48

IV S d ng các Class xây d ng s n trong th vi nử ụ ự ẵ ư ệ 49

V Xây d ng Class trong Javaự 50

V.1 C u trúc c a classấ ủ 50

V.2 Các thu c tính thành ph n:ộ ầ 51

V.3 Các phương th c thành ph nứ ầ 52

V.4 G i và truy n tham s cho phọ ề ố ương th cứ 53

V.6 Các hàm và phương th c đ c bi tứ ặ ệ 53

V.7 Khai báo ch ng các phồ ương th cứ 54

V.8 L p l ng nhau – l p n iớ ồ ớ ộ 55

2

Trang 3

VI Tính k th a trong Javaế ừ 56

VI.1 S k th a các thu c tính và phự ế ừ ộ ương th cứ 56

VI.2 S k th a đ i v i các constructorự ế ừ ố ớ 59

VII Tính đa hình trong Java 60

VII.1 S ép ki u và gán tham chi u đ i tự ể ế ố ượng 60

VII.2 S ràng bu c đ ng –Dynamic Binding ự ộ ộ 61

VIII L p Objectớ 62

IX Giao di nệ 62

IX.1 C u trúc c a giao di nấ ủ ệ 62

IX.2 Các tính ch t c a giao di nấ ủ ệ 64

X Package 64

X.1 S d ng các package trong th vi n Javaử ụ ư ệ 64

X.2 Đ t l p vào packageặ ớ 65

Bài t pậ 65

Đ tài 4 L p và phề ớ ương th c tr u tứ ừ ượng 67

I Khái ni m l p tr u tệ ớ ừ ượng 67

II Cài đ t l p và phặ ớ ương th c tr u tứ ừ ượng trong Java 67

Bài t pậ 68

Đ tài 5 L u tr và x lý đ i tề ư ữ ử ố ượng 69

I L p Vector và giao di n Enumerationớ ệ 69

I.1 L p Vectorớ 69

I.2 Giao di n Enumerationệ 70

II M ng trong Java và l p ArrayListả ớ 72

II.1 M ng trong Javaả 72

II.2 Các thu t toán c b n trên m ngậ ơ ả ả 73

II.3 Class Arrays 74

III Danh sách trong java và giao di n Lists ệ 76

Bài t pậ 77

Đ tài 6 Các lu ng vào ra d li u v i fileề ồ ữ ệ ớ 78

I Khái ni m lu ng vào ra (I/O stream)ệ ồ 78

II L p InputStream:ớ 79

III L p OutputStreamớ 80

IV L p FileInputStreamớ 80

V L p FileOutputStreamớ 80

VI L p Fileớ 80

VII Nh p xu t l c ậ ấ ọ 82

VII.1 L p FilterInputStream: ớ 82

VII.2 L p FilterOutputStreamớ 82

VIII Vào/ra có s d ng b đ m ử ụ ộ ệ 82

VIII.1 L p BufferedInputStream:ớ 82

VIII.2 L p BufferedOutputStreamớ 82

IX L p RandomAccessFile ớ 85

X Đ i tố ượng System.in 85

XI Truy c p file ch đ tu n tậ ở ế ộ ầ ự 85

XII Truy c p file nh phânậ ị 89

Bài t p ậ 90

Đ tài 7 X lý ngo i lề ử ạ ệ 91

Trang 4

I Các tình hu ng s d ng ngo i lố ử ụ ạ ệ 91

II C s qu n lý ngo i l trong Javaơ ở ả ạ ệ 91

III C u trúc cây k th a các x lý ngo i lấ ế ừ ử ạ ệ 92

IV S d ng ngo i l đử ụ ạ ệ ược ki m soátể 93

V Xây d ng m t ngo i lự ộ ạ ệ 94

VI Bài t pậ 95

Đ tài 8 X lý các s ki n trong Javaề ử ự ệ 96

I Khái ni m và c s x lý s ki nệ ơ ở ử ự ệ 96

II Truy c p thông tin s ki nậ ự ệ 102

III X lý các s ki n trên windowử ự ệ 103

IV Các l p thích nghiớ 104

V X lý các s ki n chu tử ự ệ ộ 106

Bài t pậ 107

Đ tài 9 Appletề 108

I Xây d ng m t Applet đ n gi nự ộ ơ ả 108

II C u trúc c b n và vòng đ i c a m t Appletấ ơ ả ờ ủ ộ 108

III An ninh và kh năng c a Appletả ủ 110

IV ng d ng Applet v i c a s PopupỨ ụ ớ ủ ổ 110

V Các th HTML c a Appletẻ ủ 111

VI Các phương th c, l p trình đ h a và b t s ki n c a appletứ ậ ồ ọ ắ ự ệ ủ 112

Đ tài 10 L p trình giao di n đ h a GUIề ậ ệ ồ ọ 114

I Gi i thi u AWT ớ ệ 114

II V t ch a (Container)ậ ứ 115

II.1 JFrame 115

II.2 JPanel 115

II.3 JDialog 116

II.4 JScrollPane 118

III Gi i thi u v các thành ph n GUI c b nớ ệ ề ầ ơ ả 118

III.1 Nút nh n ấ 118

III.2 Nhãn (Label) 118

III.3 Nút đánh d u (checkbox)ấ 120

III.4 Nút ch n (radio button)ọ 122

III.5 H p tho i Combo ộ ạ 122

III.6 Danh sách (Lists) 123

III.7 Ô văn b n (text field) và vùng văn b n (text areas)ả ả 125

III.8 Thanh trượt (Scrollbar) 128

IV Thành ph n Menuầ 129

V B qu n lý cách trình bày (Layout Manager)ộ ả 132

V.1 Cách trình bày FlowLayout: 133

V.2 Cách trình bày GridLayout: 133

V.3 Cách trình bày BorderLayout 133

VI Các h p tho iộ ạ 133

VI.1 H p tho i thông báoộ ạ 133

VI.2 H p tho i ch n Fileộ ạ ọ 134

VI.3 H p tho i ch n màuộ ạ ọ 135

Bài t pậ 135

Đ tài 11 Threadingề 137

4

Trang 5

I Khái ni m threadệ 137

I.1 Khái ni m:ệ 137

I.2 L p Threadớ 137

I.3 Các bước đ t o m t threadể ạ ộ 138

II Các tr ng thái c a thread.ạ ủ 138

III Các thu c tính c a threadộ ủ 139

III.1 Đ u tiên c a threadộ ư ủ 139

III.2 Nhóm thread 140

III.3 Qu n lý các ngo i l c a threadả ạ ệ ủ 140

IV Đi u khi n các threadề ể 141

IV.1 Interrupt m t threadộ 141

IV.2 D ng m t threadừ ộ 142

IV.3 T m d ng và ph c h i m t threadạ ừ ụ ồ ộ 143

IV.4 Gi i phóng th i gian cho CPUả ờ 143

IV.5 Đ i m t thread k t thúc công vi cợ ộ ế ệ 143

V Đ ng b threadồ ộ 144

V.1 Tình tr ng “đua tranh”ạ 144

V.2 Khóa đ i tố ượng 145

V.3 Đ i tố ượng đi u ki nề ệ 146

Bài t pậ 148

Ph l c A Các t khóa c a Javaụ ụ ừ ủ 149

Ph l c B M t s hàm hay s d ngụ ụ ộ ố ử ụ 150

Tài li u tham kh oệ ả 151

Trang 6

Đ tài 0 Gi i thi u v Java ề ớ ệ ề

I.1 Gi i thi u v Java ớ ệ ề

Java là m t ngôn ng l p trình m nh đang độ ữ ậ ạ ượ ử ục s d ng r t r ng rãi hi n nay trên toànấ ộ ệ

th gi i Trên th c t , Java đế ớ ự ế ược bi t đ n không ch là m t ngôn ng l p trình mà là m tế ế ỉ ộ ữ ậ ộ platform – m t môi trộ ường và công ngh phát tri n – riêng bi t Khi làm vi c v i Java, ngệ ể ệ ệ ớ ườ i

l p trình đậ ược s h u m t th vi n l n, có tính m v i m t lở ữ ộ ư ệ ớ ở ớ ộ ượng mã ngu n tái s d ngồ ử ụ

kh ng l luôn có trên internet Ngoài ra, các chổ ồ ương trình vi t b ng Java có môi trế ằ ường th cự thi riêng v i các tính năng b o m t, kh năng tri n khai trên nhi u h đi u hành khác nhau vàớ ả ậ ả ể ề ệ ềnhi u tính năng u vi t khác chúng ta s xem xét trong ph n sau.ề ư ệ ẽ ầ

I.2 Tóm t t l ch s hình thành c a Java ắ ị ử ủ

Năm 1991, m t nhóm k s c a hãng SUN bao g m Patrick Naughton, Sun Fellow vàộ ỹ ư ủ ồJames Gosling có ý tưởng phát minh ra m t ngôn ng l p trình nh g n có th th c thi độ ữ ậ ỏ ọ ể ự ượ ctrên các thi t b d ng nh b chuy n kênh c a truy n hình cáp vì các thi t b ki u này có bế ị ạ ư ộ ể ủ ề ế ị ể ộ

nh nh Bên c nh đó, do các hãng khác nhau s d ng các chíp x lý (CPUs) khác nhau nênớ ỏ ạ ử ụ ử

m t đ c tính quan tr ng mà ngôn ng này ph i có là đ c l p v i các dòng CPUs khác nhau –ộ ặ ọ ữ ả ộ ậ ớ

g i là đ c tính di đ ng Nhóm đã m m t d án có tên là Green đ hi n th c hóa ý tọ ặ ộ ở ộ ự ể ệ ự ưởng này

Đ gi i quy t v n đ di đ ng, nhóm đã s d ng ý tể ả ế ấ ề ộ ử ụ ưởng c a k s Niklaus Wirth –ủ ỹ ư

người sáng l p ngôn ng Pascal – v vi c s d ng c ch thông d ch và máy o (virtualậ ữ ề ệ ử ụ ơ ế ị ảmachine)

V n n t ng ngôn ng , do hãng SUN phát tri n trên n n UNIX nên h s d ng ngônề ề ả ữ ể ề ọ ử ụ

ng l p trình C++ là ch y u Do đó, ngôn ng m i thiên v hữ ậ ủ ế ữ ớ ề ướng đ i tố ượng (ObjectOriented) c a C++ h n là hủ ơ ướng th t c nh Pascal.ủ ụ ư

Ban đ u nhóm đ t tên cho ngôn ng m i là “Oak” nh ng sau đó đầ ặ ữ ớ ư ược chuy n thànhểJava do Oak cũng đã là tên m t ngôn ng l p trình khác.ộ ữ ậ

Năm 1992, d án Green cho ra đ i s n ph m đ u tiên có tên là “*7” nh ng đã khôngự ờ ả ẩ ầ ư

được chào đón nh mong đ i Sau đó nhóm đã ph i m t c năm 1993 và n a đ u 1994 đ điư ợ ả ấ ả ử ầ ể

ti p th công ngh c a mình T năm 1994, s phát tri n c a Internet đã t o c h i đ Javaế ị ệ ủ ừ ự ể ủ ạ ơ ộ ểphát tri n nhanh chóng Nhóm đã phát tri n m t trình duy t có tên là HotJava cho phép cácể ể ộ ệ

chương trình Java nhúng được trong đó (applet) Đây chính là minh ch ng rõ ràng v s c m nhứ ề ứ ạ

c a Java đã nhanh chóng đủ ược c ng đ ng ngộ ồ ườ ử ụi s d ng internet bi t đ n và là ti n đ đế ế ề ề ể Java phát tri n r c r nh ngày hôm nay.ể ự ỡ ư

Phiên b n đ u tiên 1.0 c a Java ra đ i vào năm 1996, sau đó là phiên b n 1.1 m c dùả ầ ủ ờ ả ặkhá m nh nh ng cũng còn nhi u h n ch ạ ư ề ạ ế

Năm 1998 đánh đ u bấ ước chuy n mình m nh m c a Java v i s ra đ i c a phiên b nể ạ ẽ ủ ớ ự ờ ủ ả 1.2 làm cho Java ti n g n t i m c tiêu “vi t m t l n, ch y kh p n i” (Write once, Runế ầ ớ ụ ế ộ ầ ạ ắ ơAnywhere) Các nhân viên ti p th c a Java g i đây là phiên b n “Java 2 Standard Editionế ị ủ ọ ảSoftware Development Kit Version 1.2” ý nói t i s có m t đ ng th i c a 2 phiên b nớ ự ặ ồ ờ ủ ả

“Standard Edition” là Micro Edition và Enterprise Edition trong Java

Các phiên b n 1.3, 1.4 là s phát tri n m r ng ti p theo c a phiên b n 1.2 Phiên b nả ự ể ở ộ ế ủ ả ả 1.5 (chuy n sang g i là phiên b n 5.0) đánh d u s tích h p đ y đ nh t các công ngh Java.ể ọ ả ấ ự ợ ầ ủ ấ ệ

B ng sau cho th y s phát tri n th vi n Java qua các phiên b n:ả ấ ự ể ư ệ ả

6

Trang 7

Java được phát tri n d a trên C++ nh ng lể ự ư ược b t đi ho c thay th các khái ni m khóớ ặ ế ệ

hi u nh header file, con tr , structures, union, operator overloading, virtual base class Trongể ư ỏJava ch có th a k đ n mà không có tính đa th a k nh c a C++ Tuy nhiên tính đa th a kỉ ừ ế ơ ừ ế ư ủ ừ ế

được bi u hi n thông qua vi c s d ng các Interface.ể ệ ệ ử ụ

II.2 Tính h ướ ng đ i t ố ượ ng

Nh đã trình bày trên, Java đư ở ược phát tri n t C++ nên nó là ngôn ng l p trìnhể ừ ữ ậ

Trang 8

II.6 Tính trung l p ậ

Các chương trình vi t b ng Java không b ph thu c vào h đi u hành Đi u này cóế ằ ị ụ ộ ệ ề ề

được là do mã ngu n chồ ương trình không được biên d ch thành mã máy ngay mà thành mãịBytecode Khi đem mã Bytecode này ch y trên h máy tính nào thì m t trình thông d ch virtualạ ệ ộ ịmachine (Java Vitual Machine-JVM) s thông d ch chúng sang mã máy tẽ ị ương ng đ th c thi.ứ ể ự

Mã ngu n -> ByteCodes -> machine code.ồ

T mã ngu n -> Bytecodes: Trình biên d ch Java.ừ ồ ị

T Bytecodes -> machine code: Trình thông d ch Virtual machine ừ ị

Java Virtual Machine – JVM

Máy o là m t ph n m m d a trên c s máy tính o Nó có t p h p các l nh logic đả ộ ầ ề ự ơ ở ả ậ ợ ệ ể xác đ nh các ho t đ ng c a máy tính Ngị ạ ộ ủ ười ta có th xem nó nh m t h đi u hành thu nh ể ư ộ ệ ề ỏ JVM thi t l p các l p tr u tế ậ ớ ừ ượng cho ph n c ng bên dầ ứ ưới, h đi u hành, mã đã biên d ch.ệ ề ị

Trình biên d ch chuy n mã ngu n thành t p các l nh c a máy o mà không ph thu cị ể ồ ậ ệ ủ ả ụ ộ vào ph n c ng c th Trình thông d ch trên m i máy s chuy n t p l nh này thành chầ ứ ụ ể ị ỗ ẽ ể ậ ệ ươ ngtrình th c thi Máy o t o ra m t môi trự ả ạ ộ ường bên trong đ th c thi các l nh b ng cách: ể ự ệ ằ

• N p các file classạ

• Qu n lý b nh ả ộ ớ

• D n “rác”, thu h i b nh c p cho các bi n không còn đọ ồ ộ ớ ấ ế ượ ử ục s d ng

Vi c không nh t quán c a ph n c ng làm cho máy o ph i s d ng ngăn x p đ l uệ ấ ủ ầ ứ ả ả ử ụ ế ể ư

tr các thông tin sau:ữ

• Các “Frame” ch a các tr ng thái c a các phứ ạ ủ ương th c.ứ

• Các toán h ng c a mã bytecode.ạ ủ

• Các tham s truy n cho phố ề ương th c.ứ

• Các bi n c c b ế ụ ộ

II.7 Tính di đ ng ộ

Không gi ng C++ và C, các ki u d li u nguyên th y c a Java đố ể ữ ệ ủ ủ ược c p phát m tấ ộ

lượng b nh c đ nh Ch ng h n ki u d li u int c a Java luôn là 4 byte (32 bit) trong khiộ ớ ố ị ẳ ạ ể ữ ệ ủ

ki u int c a C++ có th hi u là 2 byte ho c 4 byte Thi t k này giúp cho trình biên d ch luônể ủ ể ể ặ ế ế ị

có s bytecode nh nhau trên m i h máy và sau đó phát sinh mã máy theo khuôn d ng cố ư ọ ệ ạ ố

đ nh.ị

Trong các phiên b n đ u c a Java, v n đ giao di n đ h a cho ngả ầ ủ ấ ề ệ ồ ọ ườ ử ụi s d ng (GUI)

ch a đư ược x lý tri t đ và ph thu c vào h máy Ngày nay, th vi n GUI c a Java đã đử ệ ể ụ ộ ệ ư ệ ủ ượ c

Macintosh

Trình biên

d chị

Bytecode

Trình thông

d ch ịJava(Java Interpreter)

IBM

Sparc

8

Trang 9

vi t l i hoàn toàn và có tính đ c l p cao giúp cho chế ạ ộ ậ ương trình Java có giao di n gi ng nhauệ ốtrên m i h máy.ọ ệ

II.8 Tính thông d ch ị

Trình thông d ch Java s thông d ch mã bytecode sang mã máy n i mà nó đị ẽ ị ơ ược cài đ t.ặ Quá trình này cũng làm các chương trình Java ch y ch m h n Tuy nhiên đây l i là gi i phápạ ậ ơ ạ ảcho tính di đ ng.ộ

II.9 Tính th c thi cao ự

Java s d ng công ngh Just-In-Time (JIT) giúp quá trình thông d ch th c hi n nhanhử ụ ệ ị ự ệ

h n V i công ngh này, nh ng mã bytecode gi ng nhau s ch c n thông d ch m t l n Ngàyơ ớ ệ ữ ố ẽ ỉ ầ ị ộ ầnay, công ngh này liên t c đệ ụ ược c i ti n và cho k t qu vả ế ế ả ượ ột tr i so v i các trình thông d chớ ị truy n th ng Ví d nh JIT có th qu n lý các đo n mã đề ố ụ ư ể ả ạ ượ ử ục s d ng thường xuyên trong

chương trình, t i u chúng đ nâng cao t c đ c th c hi n.ố ư ể ố ộ ự ệ

II.10 Tính đa lu ng ồ

V i chớ ương trình Java, l p trình viên có th cùng lúc qu n lý nhi u ti n trình khácậ ể ả ề ếnhau Đi u này giúp cho vi c cài đ t các thu t toán song song b ng Java trên các máy tínhề ệ ặ ậ ằnhi u CPU đề ược d dàng h n, đ c bi t trong các ng d ng th i gianễ ơ ặ ệ ứ ụ ờ th c.ự

• Applet: Nhúng trong các trang Web

• Servlet: Các class th c thi phía ự web server

• JSP: Các file nhúng mã Java và HTML

• Ứng d ng EJB, RMI, JMS: Xây d ng ng d ng b i nhi u thành ph n ghép l i,ụ ự ứ ụ ở ề ầ ạ giao ti p t xa.ế ừ

Hi n nay có r t nhi u môi trệ ấ ề ường phát tri n Java (Integrated Development Environmentể

- IDE) M i môi trỗ ường cung c p cho l p trình viên nh ng ti n ích l p trình m c đ khácấ ậ ữ ệ ậ ở ứ ộnhau M t s IDE thông d ng là:ộ ố ụ

• Netbeans (mi n phí t i http://ễ ạ www.netbeans.org)

• Jcreator (thương m i).ạ

• Jbuilder (thương m i).ạ

• Eclipse (mi n phí ễ http://www.eclipse.org/)

Trang 10

bin Ch a các công c và trình biên d ch Java ứ ụ ị

demo Ch a các chứ ương trình Java Demo

docs Ch a các tài li u mô t th vi n c a Javaứ ệ ả ư ệ ủ

includes Ch a các file dùng đ biên d ch các đo n mã ngu n vi t b ng ngôn ng khácứ ể ị ạ ồ ế ằ ữ

Cú pháp:java [options] classname

Trình d ch ngị ược, 'javap'

javap d ch ngị ược bytecode và in ra thông tin v các thu c tính (các trề ộ ường), các phươ ng

th c c a m t l p.ứ ủ ộ ớ

Cú pháp:javap [options] classname

Công c sinh tài li u, 'javadoc' ụ ệ

Ti n ích này cho phép ta t o ra t p HTML d a trên các l i gi i thích trong mã chệ ạ ệ ự ờ ả ươ ngtrình (ph n n m trong c p d u /* */).ầ ằ ặ ấ

Cú pháp:javadoc [options] sourcecodename.java

Chương trình tìm l i - Debug, 'jdb‘ỗ

Cú pháp:jdb [options] sourcecodename.java

hayjdb -host -password [options] sourcecodename.java

Cài đ t đ ặ ườ ng d n m c đ nh ẫ ặ ị

1 M Control Panelở

2 Ch n Systemọ

10

Trang 11

3 Ch n Tab Advancedọ

4 Ch n Environment Variablesọ

5 Thêm đường d n C:\Program Files\Java\jdk1.6.0_02\bin vào bi n môi trẫ ế ường Path

- Ch n Variable Pathọ

Trang 12

- Ch n Editọ

12

Trang 13

Đ tài 1 Ngôn ng mô hình hóa UML ề ữ

I.1 Các khái ni m căn b n c a công ngh h ệ ả ủ ệ ướ ng đ i t ố ượ ng

Hướng đ i tố ượng là m t công ngh đ s n sinh ra các mô hình ph n ánh m t cách tộ ệ ể ả ả ộ ự nhiên các nghi p v th c t Xét cho cùng thì m i quy trình nghi p v trong th c t đ u là sệ ụ ự ế ọ ệ ụ ự ế ề ự

tương tác c a các đ i tủ ố ượng theo m t trình t nh m đ t độ ự ằ ạ ược m t m c đích c th Nói cáchộ ụ ụ ểkhác, các đ i tố ượng và m i quan h gi a chúng ph n ánh quy trình nghi p v Ví d nhố ệ ữ ả ệ ụ ụ ư nghi p v tuy n nhân s cho m t công ty có th đệ ụ ể ự ộ ể ược tóm t t qua m t chu i các tắ ộ ỗ ương tác

nh sau:ư

1 Công ty đ a ra thông báo tuy n nhân s t i các ng viên có nhu c uư ể ự ớ ứ ầ

2 Ứng viên g i h s d tuy n t i công tyử ồ ơ ự ể ớ

3 Công ty duy t h s và g i gi y h n ph ng v n t i ng viênệ ồ ơ ử ấ ẹ ỏ ấ ớ ứ

th a (inheritance).ừ

Trong m t h th ng bán hàng, m i đ n hàng bao g m trong nó các thông tin v kháchộ ệ ố ỗ ơ ồ ềhàng, ngày gi , …và m t danh m c các m t hàng Khi này ta nói r ng gi a đ n hàng và m tờ ộ ụ ặ ằ ữ ơ ặ hàng t n t i m t quan h bao g m (aggregation) ồ ạ ộ ệ ồ

M c tiêu c a công ngh hụ ủ ệ ướng đ i tố ượng chính là th hi n để ệ ược các đ i tố ượng và

m i quan h gi a chúng vào trong các h th ng ph n m m Vì v y, các h th ng ph n m mố ệ ữ ệ ố ầ ề ậ ệ ố ầ ề theo công ngh hệ ướng đ i tố ượng ph n ánh m t cách t nhiên và trung th c nghi p v th c tả ộ ự ự ệ ụ ự ế

và có kh năng đáp ng các thay đ i d dàng.ả ứ ổ ễ

Phát tri n m t h th ng ph n m m theo hể ộ ệ ố ầ ề ướng đ i tố ượng d a trên 5 khái ni m cự ệ ơ

b n: L p (class), đ i tả ớ ố ượng (object), thông đi p (mesage), th a k (inheritance) và đa hìnhệ ừ ế(polymorphism)

L p là s tr u tớ ự ừ ượng hóa các đ i tố ượng th c t theo ph m vi nghi p v L y ví d vự ế ạ ệ ụ ấ ụ ề

h th ng qu n lý sinh viên c a trệ ố ả ủ ường ĐHBK Hà N i c n qu n lý r t nhi u đ i tộ ầ ả ấ ề ố ượng sinhviên khác nhau nh ng có th ch đư ể ỉ ược tr u từ ượng hóa thành m t l p đ i tộ ớ ố ượng có tênSinhVien ch ng h n S tr u tẳ ạ ự ừ ượng hóa m t l p đ i tộ ớ ố ượng cho ta k t qu m t t p các thu cế ả ộ ậ ộ tính (attributes) và các hành vi (operations) đ c tr ng cho b t kỳ đ i tặ ư ấ ố ượng nào thu c l p đó.ộ ớ

Đ i tố ượng th c t thì có vô s thu c tính và hành vi nh ng ch thu c tính và hành vi trongự ế ố ộ ư ỉ ộ

ph m vi nghi p v là đạ ệ ụ ược xét đ n S chi ti t ph thu c vào ph m vi nghi p v ế ự ế ụ ộ ạ ệ ụ

S tr u tự ừ ượng hóa di n ra nhi u c p đ L y ví d : l p đ ng v t có vú bao g m l pễ ở ề ấ ộ ấ ụ ớ ộ ậ ồ ớ

đ ng v t 4 chân, l p 4 chân l i bao g m các l p nh l p mèo, l p trâu,…ộ ậ ớ ạ ồ ớ ư ớ ớ

M i đ i tỗ ố ượng là m t bi u hi n th c t c a m t l p.ộ ể ệ ự ế ủ ộ ớ

object = name + attributes + operations

H th ng hệ ố ướng đ i tố ượng n u đế ược mô hình đúng s r t linh ho t, d hi u ch nh,ẽ ấ ạ ễ ệ ỉ

được cài đ t d dàng b ng các ngôn ng hặ ễ ằ ữ ướng đ i tố ượng Các h th ng ph n m m hệ ố ầ ề ướ ng

đ i tố ượng cũng được cài đ t b i các ngôn ng l p trình hặ ở ữ ậ ướng đ i tố ượng

Trang 14

Hướng đ i tố ượng không ch là m t lý thuy t mà đã đỉ ộ ế ược ch ng minh b ng nh ng ngứ ằ ữ ứ

d ng r t thành công trong th c t nhi u lĩnh v c khác nhau Tuy nhiên, lĩnh v c này v n c nụ ấ ự ế ở ề ự ự ẫ ầ

được chu n hóa h n n a.ẩ ơ ữ

I.2 Quy trình chung phát tri n h th ng ph n m m ể ệ ố ầ ề

Xây d ng m t h th ng ph n m m hự ộ ệ ố ầ ề ướng đ i tố ượng cũng tuân theo quy trình chung

6 Deployment: Tri n khaiể

Theo nguyên t c chung này, m i công ty l i ng d ng nh ng công ngh khác nhau đắ ỗ ạ ứ ụ ữ ệ ể phát tri n ng d ng nh các mô hình water fall, mô hình hể ứ ụ ư ướng ch c năng,…ứ

I.3 Nh ng thách th c c a ngành công nghi p ph n m m hi n nay ữ ứ ủ ệ ầ ề ệ

M c dù đã ng d ng các công ngh ti n ti n và quy trình phát tri n chu n hóa nh ngặ ứ ụ ệ ế ế ể ẩ ư ngành công nghi p ph n m m v n ph i đ i m t v i nh ng thách th c:ệ ầ ề ẫ ả ố ặ ớ ữ ứ

1 S gia tăng v quy mô t nh đ n l n c a ng d ngự ề ừ ỏ ế ớ ủ ứ ụ

2 S c ép v th i gian hoàn thànhứ ề ờ

3 S phân tán v không gian làm vi cự ề ệ

4 Đa d ng v n i dungạ ề ộ

5 S thay đ i các yêu c u c a ngự ổ ầ ủ ườ ử ụi s d ng

Nh ng thách th c này có th nói là g n li n v i m i công ty ph n m m đ c bi t là ữ ứ ể ắ ề ớ ọ ầ ề ặ ệ ở

Vi t Nam, n i mà vai trò c a quá trình kh o sát, phân tích còn b xem nh cũng nh các côngệ ơ ủ ả ị ẹ ư

ty còn đang b ng v i s m r ng v quy mô và thi u nhân l c chuyên môn v phân tíchỡ ỡ ớ ự ở ộ ề ế ự ềthi t k ế ế

II.1 Tóm t t l ch s UML ắ ị ử

Nh ng năm 1980 là th i kỳ bùng n s lữ ờ ổ ố ượng các công ty ph n m m s d ng ngônầ ề ử ụ

ng l p trình hữ ậ ướng đ i tố ượng(Object Oriented Programming - OOP) đ xây d ng các ngể ự ứ

d ng Đi u này d n t i m t đòi h i ph i có m t quy trình làm ph n m m ti p c n theo hụ ề ẫ ớ ộ ỏ ả ộ ầ ề ế ậ ướ ngphân tích và thi t k hế ế ướng đ i tố ượng (Object Oriented Analyze and Design - OOAD) Nhi uề nhà nghiên c u phứ ương pháp trong đó có Booch, Rumbaugh và Jacobson đã làm vi c đ c l pệ ộ ậ

và đã đ xu t các quy trình th a mãn yêu c u này M i m t quy trình có m t t p ký hi u môề ấ ỏ ầ ỗ ộ ộ ậ ệhình riêng đ truy n đ t và di n t các k t qu phân tích và thi t k ể ề ạ ễ ả ế ả ế ế

Vào đ u nh ng năm 1990, các công ty khác nhau, th m chí là các b ph n khác nhauầ ữ ậ ộ ậ

c a cùng m t công ty đã s d ng các quy trình khác nhau Thêm vào đó, các công ty này l iủ ộ ử ụ ạ

mu n s d ng các công c ph n m m h tr các quy trình c a h V i quá nhi u quy trìnhố ử ụ ụ ầ ề ỗ ợ ủ ọ ớ ềkhác nhau, các công ty ph n m m đã r t khó khăn trong vi c cung c p các công c này Đi uầ ề ấ ệ ấ ụ ề này cho th y vi c c n thi t ph i có m t quy trình v i t p ký hi u th ng nh t.ấ ệ ầ ế ả ộ ớ ậ ệ ố ấ

Năm 1994, James Rumbaugh đã h p tác cùng Grady Booch t i công ty ph n m mợ ạ ầ ề Rational Software Corporation đ cùng xây d ng m t quy trình th ng nh t d a trên k t quể ự ộ ố ấ ự ế ả

14

Trang 15

c a t ng ngủ ừ ười Sau đó Ivar Jacobson cũng s m gia nh p nhóm này Năm 1996, nhóm đã choớ ậ

xu t b n phiên b n đ u tiên c a UML t i c ng đ ng phát tri n ph n m m và yêu c u ph nấ ả ả ầ ủ ớ ộ ồ ể ầ ề ầ ả

h i Cũng cùng th i gian đó, m t t ch c có tên Object Management Group (OMG) đã m iồ ờ ộ ổ ứ ờ nhóm đ trình m t ngôn ng mô hình OMG là m t t ch c phi l i nhu n chuyên xúc ti n vi cệ ộ ữ ộ ổ ứ ợ ậ ế ệ

s d ng công ngh hử ụ ệ ướng đ i tố ượng trong ngành công nghi p ph n m m thông qua vi c đ aệ ầ ề ệ ư

ra các hướng d n và đ c t OOP Các thành viên c a OMG ban đ u là 3Com Corporation;ẫ ặ ả ủ ầAmerican Airlines; Canon, Inc.; Data General; Hewlett-Packard; Philips Telecommunications N.V.; Sun Microsystems; và Unisys Corporation Các t p đoàn l n nh HP, IBM, Microsoft,ậ ớ ưOracle và Rational Software đã nh n th y l i ích c a UML và đã nh n l i tài tr cho các d ánậ ấ ợ ủ ậ ờ ợ ự

v UML c a OMG Năm 1997, OMG ti p t c xem xét l i UML và đ n năm 2001 thì phiênề ủ ế ụ ạ ế

b n UML 1.4 ra đ i Hi n nay OMG đã phát hành t i phiên b n UML 2.0 và đang nghiên c uả ờ ệ ớ ả ứ phiên b n 2.1.ả

II.2 Khái ni m v UML ệ ề

UML – Unified Modeling Language là m t ngôn ng dùng các s đ và mô hình th ngộ ữ ơ ồ ố

nh t đ mô hình các h th ng ph n m m.ấ ể ệ ố ầ ề

M c đích c a UML là:ụ ủ

• Tr thành ngôn ng mô hình mà t t c m i ngở ữ ấ ả ọ ười làm mô hình có th s d ngể ử ụ

• T p trung hậ ướng t i gi i quy t các v n đ t n t i trong phát tri n ph n m mớ ả ế ấ ề ồ ạ ể ầ ề

hi n nay.ệ

• Đ n gi n nh t có th trong khi v n mô hình đơ ả ấ ể ẫ ược ph n l n các ng d ng.ầ ớ ứ ụ

• Nâng cao tính tái s d ng các thành ph n c a m t h th ng ph n m mử ụ ầ ủ ộ ệ ố ầ ề

• UML là m t ngôn ng di n t , UML không ph i là m t quy trình ộ ữ ễ ả ả ộ

Thu t ng “Unified” đây có m t ý nghĩa quan tr ng, nó nói lên các nguyên t c c aậ ữ ở ộ ọ ắ ủ UML:

• Th ng nh t phố ấ ương th c, ký hi u, thu t ngứ ệ ậ ữ

• G n k t gi a các chu trình phát tri nắ ế ữ ể

• Không ph thu c vào lĩnh v c ng d ngụ ộ ự ứ ụ

• Không ph thu c vào ngôn ng l p trình và môi trụ ộ ữ ậ ường th c hi nự ệ

• Không ph thu c vào quy trình phát tri nụ ộ ể

• G n k t ch t ch các khái ni m n i t i c a h th ng.ắ ế ặ ẽ ệ ộ ạ ủ ệ ố

II.3 Đ c tr ng c a UML ặ ư ủ

Hi n nay, UML là m t ngôn ng đã đệ ộ ữ ược OMG chu n hóa và đẩ ược đ c t rõ ràng T tặ ả ấ

c các mô hình, s đ c a UML đ u theo hả ơ ồ ủ ề ướng đ i tố ượng

• Mô hình Use-case và mô hình ho t đ ng mô t các yêu c u và các lu ng côngạ ộ ả ầ ồ

vi c trong h th ng.ệ ệ ố

• Các mô hình c u trúc h n h p (composite structure diagrams) mô t s h p tácấ ỗ ợ ả ự ợcũng nh các đ c đi m v cài đ t.ư ặ ể ề ặ

Trang 16

• Mô hình tri n khai (deployment diagrams) mô t vi c tri n khai ph n m m trênể ả ệ ể ầ ề

m t môi trộ ường xác đ nh.ị

III.1 Các thành ph n c a UML ầ ủ

Xét trên khía c nh ngôn ng di n t , UML có đ y đ các mô hình và s đ đ thạ ữ ễ ả ầ ủ ơ ồ ể ể

hi n h u hêt các khía c nh c a h th ng ph n m m Các thành ph n c a ngôn ng UML baoệ ầ ạ ủ ệ ố ầ ề ầ ủ ữ

g m:ồ

• Các Views (các hướng nhìn): Các view th hi n các cách nhìn khác nhau t i hể ệ ớ ệ

th ng M t h th ng không th ch đố ộ ệ ố ể ỉ ược mô t b i m t s đ Nhi u hả ở ộ ơ ồ ề ướ ngnhìn khác nhau cho ta nhi u s đ mô t đ y đ v h th ng Các hề ơ ồ ả ầ ủ ề ệ ố ướng nhìncũng liên k t ngôn ng mô hình v i các quy trình đế ữ ớ ược ch n cho vi c phát tri nọ ệ ể

h th ng.ệ ố

• Các Diagrams (các s đ ): Các s đ bao g m các ph n t hình v dùng đ môơ ồ ơ ồ ồ ầ ử ẽ ể

t nôi dung c a các View UML 2.0 bao g m 13 lo i s đ khác nhau.ả ủ ồ ạ ơ ồ

• Các Model Elements (các ph n t mô hình): Các khái ni m đầ ử ệ ượ ử ục s d ng trongcác s đ và các ph n t c a s đ di n t các khái ni m ph bi n c a côngơ ồ ầ ử ủ ơ ồ ễ ả ệ ổ ế ủngh hệ ướng đ i tố ượng nh class, object, message (thông đi p) và m i quan hư ệ ố ệ

gi a chúng bao g m quan h dependence, inheritance và aggregation M t ph nữ ồ ệ ộ ầ

t mô hình có th đử ể ượ ử ục s d ng trong nhi u s đ nh ng chúng luôn có cùng ýề ơ ồ ưnghĩa và ký hi u gi ng nhau.ệ ố

16

Trang 17

• Cỏc General Mechanisms (cỏc đ c t chung m r ng): Mụ t cỏc thụng tin chỳặ ả ở ộ ả

thớch, ng nghĩa c a cỏc ph n t mụ hỡnh, thu t ng ữ ủ ầ ử ậ ữ

III.2 Cỏc h ướ ng nhỡn (view)

Use-case view: Đõy là hướng nhỡn v m t ch c năng c a h th ng đề ặ ứ ủ ệ ố ược th c hi n b iự ệ ở

cỏc tỏc nhõn bờn ngoài

ud Primary Use Cases                                                                                                       

Khách hàng

Đ ăng ký khách hàng

Gửi thông tin phản hồi

Xem chi tiết sản phẩm

Cập nhật giỏ hàng

Cập nhật thông tin mặt hàng

Quản lý danh mục hàng hóa

Trả lời khách hàng

Theo dõi

đơn hàng

Cỏc nguyờn t c cho vi c xõy d ng use-case view là:ắ ệ ự

• Cỏc use-case được hỡnh thành trờn c s nhỡn t bờn ngoài vào trong h th ngơ ở ừ ệ ố

(out-> in)

• Cỏc use-case ph i đ y đ , chỳng đả ầ ủ ượ ổc t ng h p theo phợ ương phỏp đi t t i đaừ ố

đ n t i thi u (ban đ u m r ng t i đa cỏc use-case cú th sau đú thu h p l iế ố ể ầ ở ộ ố ể ẹ ạ theo nhu c u khỏch hàng).ầ

• Cỏc use-case c n cú tớnh đ c l p tầ ộ ậ ương đ i đ d t ch c nhúm làm vi c và cúố ể ễ ổ ứ ệ

tớnh tỏi s d ng cao.ử ụBờn c nh s đ , ngạ ơ ồ ười làm mụ hỡnh cú th s d ng mụ t b ng văn b n chi ti t choể ử ụ ả ằ ả ế

m i use-case (text detail) M i mụ t c n đ m b o cỏc thụng tin sau:ỗ ỗ ả ầ ả ả

17

Trang 18

Use-case: Đòi ti n b i thề ồ ường

Ph m vi: ạ Công ty B o hi m PCMả ể

Actor chính: Người đòi b i thồ ường

Dòng chính

1 Người đòi b i thồ ường g i đ n yêu c u v i các d li u b ng ch ng v tai n nử ơ ầ ớ ữ ệ ằ ứ ề ạ

2 Công ty b o hi m xác nh n ngả ể ậ ười vi t đ n có quy n l i b o hi m h p lế ơ ề ợ ả ể ợ ệ

3 Công ty b o hi m phân công cho m t đ i lý xác minh trả ể ộ ạ ường h p nàyợ

4 Đ i lý đ i chi u t t c các chi ti t trong đ n theo chính sách b o hi m c aạ ố ế ấ ả ế ơ ả ể ủ công ty

5 Công ty b o hi m tr ti n b o hi mả ể ả ề ả ể

Dòng phụ

1a B ng ch ng tai n n không đ y đằ ứ ạ ầ ủ

1a1 Công ty b o hi m yêu c u d li u thi uả ể ầ ữ ệ ế

1a2 Người đòi b i thồ ường g i l i các d li u thi uử ạ ữ ệ ế

2a Người đòi b i thồ ường không có chính sách b o hi m h p lả ể ợ ệ

2a1 Công ty b o hi m t ch i yêu c u, nh c nh , ghi l i và k t thúc x lý v vi cả ể ừ ố ầ ắ ở ạ ế ử ụ ệ3a Không có đ i lý nào r nh r iạ ả ỗ

3a1 (Công ty b o hi m s làm gì trong trả ể ẽ ường h p này???)ợ

4a V tai n n vi ph m chính sách b o hi m c b nụ ạ ạ ả ể ơ ả

4a1 Công ty b o hi m t ch i yêu c u, nh c nh , ghi l i và k t thúc x lý v vi cả ể ừ ố ầ ắ ở ạ ế ử ụ ệ4b V tai n n ch vi ph m chính sách b o hi m nhụ ạ ỉ ạ ả ể ỏ

4b1 Công ty b o hi m đi u đình v i ngả ể ề ớ ười đòi b o hi m và đ ng ý tr b o hi mả ể ồ ả ả ể

Trong trường h p các use-case quá ph c t p và ch a đợ ứ ạ ư ược mô t rõ ràng, chúng có thả ể

được tác ra thành các use-case nh h n theo hai d ng:ỏ ơ ạ

• Include: use-case m i đớ ược tách ra và được bao g m trong use-case chính m tồ ộ cách vô đi u ki nề ệ

18

Trang 19

uc Use Case Model

Use Case Principal

Use Case Include

«include»

• Extend: use-case m i x y ra khi m t đi u ki n x y ra trong use-case chính ớ ả ộ ề ệ ả

uc Use Case Model

Use Case Principal

Use Case Extend

là m t s s đ quan tr ng thộ ố ơ ồ ọ ường đượ ử ục s d ng

Các c u trúc tĩnh (static structure):ấ C u trúc tĩnh đấ ược mô hình b ng UML chính là cácằclass diagrams Đây là s mô hình các khái ni m trong ng d ng, các đ c đi m n i t i cũngự ệ ứ ụ ặ ể ộ ạ

nh m i quan h gi a chúng.ư ố ệ ữ

Trang 20

+ getItem() : StockItem + getQuantity() : int

property set

+ setItem(StockItem) : void + setQuantity(int) : void

property set

+ setDate(Date) : void + setDeliveryInstructions(String) : void + setLineItem(LineItem) : void + setOrderNumber(String) : void + setStatus(OrderStatus) : void

+ getAuthor() : string + getCatalogNumber() : string + getCostPrice() : number + getListPrice() : number + getTitle() : string

property set

+ setAuthor(string) : void + setCatalogNumber(string) : void + setCostPrice(number) : void + setListPrice(number) : void + setTitle(string) : void

Transaction

- date: Date

- orderNumber: String

+ loadAccountHistory() : void + loadOpenOrders() : void

property get

+ getAccount() : Account + getDate() : Date + getLineItem() : LineItem + getOrderNumber() : String

property set

+ setAccount(Account) : void + setDate(Date) : void + setLineItem(LineItem) : void + setOrderNumber(String) : void

-history -account

-status

-item

-basket -account

Trang 21

Đây là mô hình mô t vi c chuy n đ i tr ng thái c a đ i tả ệ ể ổ ạ ủ ố ượng trong quá trình thamgia các ho t đ ng nghi p v c a h th ng Tr ng thái c a đ i tạ ộ ệ ụ ủ ệ ố ạ ủ ố ượng b thay đ i b i m t hànhị ổ ở ộ

vi nào đó

S đ hành đ ng (activity diagrams):ơ ồ ộ Đây là s đ mô t lu ng nghi p v trong hơ ồ ả ồ ệ ụ ệ

th ng.ố

Trang 22

S đ tơ ồ ương tác (interaction diagram): Đây là s đ mô t s tơ ồ ả ự ương tác gi a các đ iữ ố

tượng theo trình t th i gian (còn g i là sequence diagram) Các s đ sequence có th đự ờ ọ ơ ồ ể ượ c

mô t m c h th ng (Sequence System – ch có user tả ở ứ ệ ố ỉ ương tác v i h th ng) ho c m c chiớ ệ ố ặ ứ

ti t (Sequence Detail – Các đ i tế ố ượng và thông đi p gi a chúng đã đệ ữ ược đ nh hìnhị ):

22

Trang 23

Các class trong h th ng đệ ố ược chia thành ba lo i tách bi t: M (Model) – V (View) – Cạ ệ

(Control) Các class V ch u trách nhi m hi n th giao di n tị ệ ể ị ệ ương tác v i ngớ ườ ử ụi s d ng, các

class M l u tr d li u đư ữ ữ ệ ược mô hình hóa t thông tin đ i từ ố ượng qu n lý trong khi các class Cả

là n i đi u khi n vi c d li u t M đơ ề ể ệ ữ ệ ừ ược đ a t i giao di n V nh th nào ho c x lý các yêuư ớ ệ ư ế ặ ử

Chon xem san pham theo hang

Trang 24

III.3 ng d ng UML trong quy trình làm ph n m m Ứ ụ ầ ề

Nh đã trình bày trên, UML ch thu n túy là m t ngôn ng mô hình Các công ty ph nư ở ỉ ầ ộ ữ ầ

m m khác nhau tuy đ u ng d ng UML nh ng có th s d ng các quy trình phát tri n khácề ề ứ ụ ư ể ử ụ ểnhau

24

Trang 25

S đ trên cho th y m t trình t s d ng các mô hình UML đ xây d ng m t ngơ ồ ấ ộ ự ử ụ ể ự ộ ứ

d ng Xu t phát t ý tụ ấ ừ ưởng ban đ u thu n túy mang tính nghi p v , các bầ ầ ệ ụ ước ti p theo c nế ầ làm song song là xây d ng mô hình use-case và v phác th o giao di n chự ẽ ả ệ ương trình Ti p theoếxây d ng mô hình sequence system vì thông qua giao di n ta đã bi t user tự ệ ế ương tác v i systemớ

nh th nào Sau đó xây d ng mô hình class m c phác th o, s đ tr ng thái và s đ hànhư ế ự ở ứ ả ơ ồ ạ ơ ồ

đ ng Đ n đây ta đã bi t user tộ ế ế ương tác v i c th đ i tớ ụ ể ố ượng nào c a system và các thôngủ

đi p gi a các đ i tệ ữ ố ượng t mô hình class Đây là c s đ xây d ng sequence detail và hoànừ ơ ở ể ự

ch nh mô hình class v i các quan h đ y đ ỉ ớ ệ ầ ủ

Theo quan đi m v phân tích thi t k b ng UML thì vi c l p trình rõ ràng không chể ề ế ế ằ ệ ậ ỉ

b t đ u khi cài đ t các class và các sequence detail b ng m t ngôn ng l p trình mà th c tắ ầ ặ ằ ộ ữ ậ ự ế chúng ta đã l p trình ngay t khi xây d ng mô hình use-case và vi t text detail cho nó Nh v yậ ừ ự ế ư ậ

vi c l p trình cài đ t ch đệ ậ ặ ỉ ược ti n hành sau khi cac mô hình đã hoàn t t Trong quá trình xâyế ấ

d ng các mô hình c n liên t c ti p xúc v i khách hàng đ đ m b o tính chính xác c a môự ầ ụ ế ớ ể ả ả ủhình M t khi các mô hình và tài li u đ c t đã hoàn ch nh, vi c coding th c s ch chi mộ ệ ặ ả ỉ ệ ự ự ỉ ế kho ng 20% t ng s th i gian.ả ổ ố ờ

Sau đây là m t s công c giúp s d ng UML trong phát tri n h th ng ph n m m:ộ ố ụ ử ụ ể ệ ố ầ ề

Trang 26

IV Quy trình Rational Unified Process (RUP) phát tri n ph n m m d a trên UML ể ầ ề ự

IV.1 Gi i thi u v RUP ớ ệ ề

Trong s các quy trình hi n nay, RUP đố ệ ược phát tri n b i công ty Rational Softwareể ở

đượ ử ục s d ng khá ph bi n ổ ế

L ch s :ị ử RUP là s ph i h p gi a cách ti p c n công ngh hự ố ợ ữ ế ậ ệ ướng đ i tố ượng c aủ Rational trong nh ng năm 1980s và 1990s v i công ngh x lý đ i tữ ớ ệ ử ố ượng c a Ival Jarcobson.ủ

Phiên b n m i nh t c a RUP là version 7.0 phát hành 2005 ả ớ ấ ủ

Đ ng c phát tri n RUP là tìm ra nguyên nhân c a các l i ph n m m và tìm cách kh cộ ơ ể ủ ỗ ầ ề ắ

ph c chúng thông qua m t quy trình.ụ ộ

IV.2 Các nguyên t c chính c a RUP: ắ ủ

1- Tuân th ti n trình (Adapt the process)ủ ế

2- Cân b ng các u tiên c a stakeholder (Balance stackeholder priorities) Stakeholder làằ ư ủ

nh ng ngữ ườ ưi đ a ra nh ng ý ki n có nh hữ ế ả ưởng l n t i t tớ ớ ư ưởng thi t k h th ng.ế ế ệ ố

3- C ng tác gi a các nhóm (Collaborate across teams)ộ ữ

4- Th hi n k t qu theo quy trình l p (Demonstrate value iteratively) K t thúc m iể ệ ế ả ặ ế ỗ quy trình c n theo dõi k t qu và ki m tra ch t ch ầ ế ả ể ặ ẽ

5- Nâng cao m c đ tr u tứ ộ ừ ượng (Elevate the level of abstraction)

6- T p trung theo dõi ch t lậ ấ ượng liên t c (Focus continuously on quality)ụ

IV.3 Vòng đ i c a ph n m m theo quy trình RUP ờ ủ ầ ề

Trong m t vòng đ i c a ph n m m, có 4 pha: Inception, Elaboration, Construction vàộ ờ ủ ầ ềTransition

Bi u đ trên cho bi t trình t các pha và lể ồ ế ự ượng tài nguyên s d ng cho m i pha ử ụ ỗ

• Inception: Đây là giai đo n chu n b , ti p xúc v i khách hàng đ n m b t ýạ ẩ ị ế ớ ể ắ ắ

tưởng và thu th p yêu c u, chu n b nhân l c, v t t k thu t.ậ ầ ẩ ị ự ậ ư ỹ ậ

• Elaboration: Sau khi đã thu th p đậ ược yêu c u thì đây là pha thi t k phác th oầ ế ế ả

s d ng các s đ UML đ mô hình hóa các yêu c u, các quy trình nghi p vử ụ ơ ồ ể ầ ệ ụ

Trang 27

• Transition: Pha chuy n giao cho khách hàng.ể

M t bi u đ khác chi ti t h n cho ta th y các các giai đo n phát tri n độ ể ồ ế ơ ấ ạ ể ược ti n hànhếkhi nào và m c đ s d ng tài nguyên c a chúng trong các pha theo các nguyên t c chung ứ ộ ử ụ ủ ắ

Các giai đo n công vi c c a RUPạ ệ ủ bao g m:ồ

• Mô hình hóa nghi p v (business modeling): mô t c u trúc và quy trình nghi pệ ụ ả ấ ệ

v ụ

• Xác đ nh yêu c u (requirement): mô t nghi p v b ng phị ầ ả ệ ụ ằ ương pháp “tình

hu ng s d ng” (use case base method)ố ử ụ

• Phân tích và thi t k (analysis & design): mô t ki n trúc h th ng thông quaế ế ả ế ệ ốcác s đ phân tích thi t k ơ ồ ế ế

• L p trình (Implement): th c hi n các vi c xây d ng chậ ự ệ ệ ự ương trình b ng ngônằ

ng l p trình.ữ ậ

• Th nghi m (Test): mô t các tình hu ng và k ch b n th nghi m, ti n hành thử ệ ả ố ị ả ử ệ ế ử nghi m h th ng ph n m m.ệ ệ ố ầ ề

• Tri n khai (Deployment): đ a h th ng ph n m m vào s d ng.ể ư ệ ố ầ ề ử ụ

• Qu n tr c u hình và qu n tr thay đ i (Configuration & Change Management):ả ị ấ ả ị ổ

ki m soát các thay đ i và duy trì s h p nh t c a các thành ph n d án.ể ổ ự ợ ấ ủ ầ ự

• Qu n tr d án: qu n lý toàn b quá trình làm vi c c a d án.ả ị ự ả ộ ệ ủ ự

• Đ m b o môi trả ả ường: đ m b o các h t ng c n thi t đ có th phát tri n đả ả ạ ầ ầ ế ể ể ể ượ c

h th ng ệ ố

Trang 28

IV.4 Các công c c a RUP ụ ủ

Đ áp d ng để ụ ược quy trình phát tri n h th ng ph n m m c a Rational thì yêu c uể ệ ố ầ ề ủ ầ không th thi u là h th ng các ph n m m công c h tr Hãng Rational đã xây d ng m t hể ế ệ ố ầ ề ụ ỗ ợ ự ộ ệ

th ng công c nh v y, mà tiêu bi u và thố ụ ư ậ ể ường dùng nh t là:ấ

• Ph n m m Rational Requisite Pro: cho phép phân tích các yêu c u, xây d ng kầ ề ầ ự ế

1 Xây d ng mô hình use-case cho h th ng qu n lý vi c mự ệ ố ả ệ ượn và tr sách t i thả ạ ư

vi n Hãy ti t text detail và xây d ng mô hình sequence system cho các use-case : “Mệ ế ự ượn sách”

và “Tr sách”.ả

2 Hãy mô t m t quy trình ng d ng UML trong phát tri n h th ng ph n m m.ả ộ ứ ụ ể ệ ố ầ ề

28

Trang 29

Đ tài 2 Nh p môn Java ề ậ

I.1 Tìm hi u mã ngu n m t ch ể ồ ộ ươ ng trình đ n gi n ơ ả

1 /* Day la chuong trinh vi du*/

2 public class Vidu

Dòng 1: Dòng chú thích trong m t chộ ương trình Java Trong khi l p trình, ta c n chú ýậ ầ

vi t các dòng chú thích đ mô t v mã ngu n Đi u này r t quan tr ng khi chế ể ả ề ồ ề ấ ọ ương trình l nớ

và g p l i, các dòng chú thích giúp ta nhanh chóng nh n ra vai trò và ý nghĩa c a t ng đo nặ ỗ ậ ủ ừ ạ code

Các chú thích trong chương trình Java được đ t trong c p /* và */ khi c n chú thíchặ ặ ầnhi u dòng ho c đ sau c p // khi ch chú thích m t dòng Tuy nhiên các c p /* và */ hay đề ặ ể ặ ỉ ộ ặ ượ cdùng h n vì các đo n chú thích này s đơ ạ ẽ ượ ự ộc t đ ng đ a vào tài li u khi ta dùng công cư ệ ụ javadoc đ sinh tài li u cho mã ngu n.ể ệ ồ

Dòng 2: Khai báo m t l p có tên Vidu ộ ớ

Dòng 3 Cùng v i dòng 8 t o thành m t c p {} dùng đ đánh d u vi c m và đóng choớ ạ ộ ặ ể ấ ệ ở

m t kh i l nh, trong trộ ố ệ ường h p này, t t c các l nh n m trong c p này đ u thu c ph m viợ ấ ả ệ ằ ặ ề ộ ạ

c a l p Vidu.ủ ớ

Dòng 4: Khai báo hàm main Trong Java, m i chọ ương trình n u c n th c thi đ u b tế ầ ự ề ắ

đ u t hàm main Trình thông d ch s tìm hàm main làm đi m kh i phát cho m t ng d ngầ ừ ị ẽ ể ở ộ ứ ụ Java

Dòng 5 và 7 cũng là đánh d u m và đóng cho m t kh i l nh thu c hàm main.ấ ở ộ ố ệ ộ

Dòng 6: Câu l nh in ra màn hình dòng ch “Hello, World!” Các l nh trong Java luônệ ữ ệ

được k t thúc b i d u ;.ế ở ấ

I.2 Th c hi n ch ự ệ ươ ng trình Java.

Đ th c hi n chể ự ệ ương trình Java trong ví d trên, ta th c hi n theo các bụ ự ệ ước sau:

1 Dùng m t trình so n th o b t kỳ ho c m t IDE Java thì càng t t đ so n chộ ạ ả ấ ặ ộ ố ể ạ ươ ngtrình

2 Ghi file v a so n v i tên Vidu.java ừ ạ ớ Ở đây, tên file ph i b t bu c là Vidu gi ng nhả ắ ộ ố ư tên l p trong chớ ương trình Ph n m r ng cũng b t bu c là java đ trình biên d ch Java bi tầ ở ộ ắ ộ ể ị ế đây là file ch a mã ngu n Java Gi s ghi vào th m c c:\JavaSample ứ ồ ả ử ư ụ

3 G i c a s Command Line c a Windows: T Menu Start, ch n Run và gõ vào l nhọ ử ổ ủ ừ ọ ệ

Trang 30

I.3 M t s chú ý khi l p trình Java ộ ố ậ

• Java phân bi t ch vi t hoa và vi t thệ ữ ế ế ường

• Hàm main ph i n m trong file g i th c hi nả ằ ọ ự ệ

• Tên khai báo ph i trùng v i tên t p “Vidu.java”ả ớ ệ

• Hàm main trong Java luôn luôn là static

• Trong Java t t c hàm và th t c đ u ph i đấ ả ủ ụ ề ả ược đ t trong m t l p c th ặ ộ ớ ụ ể

• Không được khai báo phương th c, hàm hay th t c bên ngoài l p.ứ ủ ụ ớ

• S d ng phử ụ ương th c (method) đ thay th cho hàm và th t c.ứ ể ế ủ ụ

I.4 C u trúc m t ch ấ ộ ươ ng trình Java

/*Khai bao goi*/

package <tên gói>;

/*Khai bao thu vien*/

import <tên gói th vi n>;ư ệ

/*Khai bao lop chua ham main*/

public class <tên l p>ớ

Trang 31

Các thành ph n trong m t chầ ộ ương trình Java g m có:ồ

1 Khai báo gói:

Cú pháp: package <tên gói>

Khai báo này là không b t bu c v i m t chắ ộ ớ ộ ương trình Java Trong trường h p ngợ ứ

d ng g m nhi u class và c n t ch c các class vào các gói riêng thì ta c n khai báo gói Trongụ ồ ề ầ ổ ứ ầ

chương trình trên, class Vidu sau khi biên d ch s đị ẽ ược đ t trong gói my.java Tên c a gói cóặ ủ

ch a các d u “.” ch s bao g m, đây gói “java” n m trong gói “my” và class Vidu n m trongứ ấ ỉ ự ồ ở ằ ằgói “java” Khi m t chộ ương trình Java khác mu n truy c p t i l p Vidu, nó c n truy c p theoố ậ ớ ớ ầ ậ

đường d n gói “my.java.Vidu”.ẫ

Th c ra, ý nghĩa quan tr ng c a gói là vi c t ch c m t cách logic các l p vào trongự ọ ủ ệ ổ ứ ộ ớcác domain riêng đ ngể ười phát tri n ng d ng d dàng truy c p Trong hàng ngàn class để ứ ụ ễ ậ ượ cJava h tr trong các gói th vi n, chúng đ u đỗ ợ ư ệ ề ược nhóm l i theo ch c năng và m c đích sạ ứ ụ ử

d ng v i tên gói có tính ch t g i ý N u không làm nh v y, chúng ta s r t khó khăn đ tìmụ ớ ấ ợ ế ư ậ ẽ ấ ể

ra m t class đ s d ng.ộ ể ử ụ

2 Nh p th vi n.ậ ư ệ

Cú pháp: import <tên th vi n>ư ệ

N u có khai báo này, khi s d ng các class n m trong gói theo <tên th vi n> ta khôngế ử ụ ằ ư ệ

c n vi t đ y đ tên gói mà ch c n vi t tên class Java dùng ký t “*” đ ng ý vi c nh p t tầ ế ầ ủ ỉ ầ ế ừ ể ụ ệ ậ ấ

c các class trong <tên th vi n> Ví d : ả ư ệ ụ

import my.java.Vidu; // Nh p duy nh t class Vidu trong gói my.javaậ ấ

import my.java.*; // Nh p t t c các class có trong gói my.java, t t nhiên là bao g mậ ấ ả ấ ồ

c class Vidu ả

Sau đây là m t chộ ương trình ví d s d ng import:ụ ử ụ

import java.util.Date; //Khai báo th vi nư ệ

/*Chương trình in ra ngày tháng hi n hành*/ệ

public class Application {

public static void main(String[] args) {

Date date = new Date(); //t o bi n đ i tạ ế ố ượng thu c class Dateộ

System.out.println(“Hôm nay "+date);

4 Khai báo hàm main: Không ph i t t c các class trong Java đ u ch a hàm main Chả ấ ả ề ứ ỉ

có class được g i th c thi đ u tiên m i c n ch a hàm main ọ ự ầ ớ ầ ứ

5 Khai báo các l p khác: Thông thớ ường 1 file chương trình Java chúng ta ch khai báo 1ỉclass Tuy nhiên khi class đó quá ph c t p chúng ta có th tách ra thành các class khác.ứ ạ ể

Trong s 5 ph n trên, t t c các class đ u có ph n 3, các ph n còn l i có th có ho cố ầ ấ ả ề ầ ầ ạ ể ặ không tùy theo nhu c u.ầ

II.1 Các ki u d li u s nguyên ể ữ ệ ố

Java có 4 ki u s nguyên:ể ố

Trang 32

int 4 bytes T –2,147,483,648 đ n 2,147,483, 647 ừ ế

short 2 bytes T –32,768 đ n 32,767ừ ế

long 8 bytes T –9,223,372,036,854,775,808ừ

đ n9,223,372,036,854,775,807ếbyte 1 byte T –128 đ n 127ừ ế

II.2 Các ki u s th c ể ố ự

Java có 2 ki u s th c d u ch m đ ng:ể ố ự ấ ấ ộ

float 4 bytes X p x ±3.40282347E+38F ấ ỉ

double 8 bytes X p x ±1.79769313486231570E+308 ấ ỉ

M t bi n ộ ế char s có m t giá tr là ẽ ộ ị m t ký tộ ự Unicode

II.4 Ki u logic (boolean) ể

Là ki u d li u ch có hai giá tr true và false dùng đ xác đ nh k t qu m t đi u ki n.ể ữ ệ ỉ ị ể ị ế ả ộ ề ệChú ý: ki u ể boolean không được th hi n là 0 và 1.ể ệ

II.5 Ki u chu i ể ỗ

Java xem chu i là m t đ i tỗ ộ ố ượng

Bi n đ i tế ố ượng chu i thỗ ường được khai báo t l p String n m trong góiừ ớ ằ

Trang 33

III Khai báo bi n và h ng trong Java ế ằ

III.1 Quy t c đ t tên bi n ắ ặ ế

Khi khai báo các bi n trong chế ương trình Java, ta c n chú ý tuân th các đi m sau:ầ ủ ể

• Ch b t đ u b ng m t ký t (ch ), m t d u g ch dỉ ắ ầ ằ ộ ự ữ ộ ấ ạ ưới (_) hay m t d u dollardộ ấ($)

• Không có kho ng tr ng gi a tên.ả ố ữ

• Sau ký t đ u, có th dùng các ký t (ch ), ký t s , d u dollard, d u g chự ầ ể ự ữ ự ố ấ ấ ạ

dưới

• Không trùng v i các t khoá.ớ ừ

III.2 Khai báo bi n ế

Các bi n trong Java r i vào hai trế ơ ường h p:ợ

• Toán h c: Các bi n có ki u nguyên th y c a Java đ u thu c d ng này Sau khiọ ế ể ủ ủ ề ộ ạkhai báo, bi n đế ược c p phát m t vùng nh c đ nh tùy theo kích thấ ộ ớ ố ị ước c aủ

ki u d li u c a bi n đó.ể ữ ệ ủ ế

• Đ a ch : Các bi n đ i tị ỉ ế ố ượng đượ ư ở ạc l u d ng này Bi n ch l u giá tr đ a chế ỉ ư ị ị ỉ

đ u c a m t vùng nh đầ ủ ộ ớ ượ ấc c p phát cho đ i tố ượng

Ví d khai báo cho t ng ki u bi n toán h c:ụ ừ ể ế ọ

String strHello; //khai báo m t chu iộ ỗ

AudioClip music; // ví d l p c a AudioClipụ ớ ủ

boolean bQuit = true;

String strHello = “Hello everybody”;

đây c n chú ý r ng khi kh i t o giá tr cho các ki u s nên xác đ nh rõ ki u d li u

c a giá tr ủ ị

Trang 34

M t bi n m ng độ ế ả ược khai báo theo hai cách:

• S d ng c p ngo c vuông đ t sau tên bi n.ử ụ ặ ặ ặ ế

• S d ng c p ngo c vuông đ t sau ki u d li u.ử ụ ặ ặ ặ ể ữ ệ

Ví d :ụ

int [] intArray; ho c int intArray[]; đ u cho ta m t m ng s nguyên có tên la intArray.ặ ề ộ ả ốThông thường ta dùng ki u khai báo th nh t đ có th khai báo nhi u bi n m ngể ứ ấ ể ể ề ế ả cùng ki u d li u:ể ữ ệ

int [] intArray1, intArray2, intArray3;

Đ nh v m ng ị ị ả

Sau khi khai báo, b n thân m ng ch a xác đ nh hay ch a đả ả ư ị ư ược đ nh v vì ch a đị ị ư ượ c

c p phát vùng nh Do đó, m ng c n đấ ớ ả ầ ượ ấc c p phát vùng nh trớ ước khi s d ng ử ụ

Dùng t khoá new đ đ nh v cho m t m ng trong vùng nh , ví d :ừ ể ị ị ộ ả ớ ụ

int IntArray[] = new int[100];//t o m ng 100ptạ ả

char [] charArray = {‘a’, ‘b’, ‘c’};

IntArray[] = new int[] {1, 2, 3, 4, 5};

Truy c p các ph n t c a m ngậ ầ ử ủ ả

Các ph n t trong m t m ng luôn đầ ử ộ ả ược đánh s b t đ u t s 0 Ki u d li u c a chố ắ ầ ừ ố ể ữ ệ ủ ỉ

s là ki u int Tuy nhiên n u dùng ki u char thì Java s t đ ng chuy n sang mã ASCII tố ể ế ể ẽ ự ộ ể ươ ng

ng Ví d b[‘a’] t ng ng v i b[97]

Ph n t đ u tiên là ph n t th 0, và ph n t cu i cùng c a m t m ng có n ph n t làầ ử ầ ầ ử ứ ầ ử ố ủ ộ ả ầ ử n-1 Các ph n t c a m ng đầ ử ủ ả ược truy c p m t cách tr c ti p b ng ch s c a nó.ậ ộ ự ế ằ ỉ ố ủ

Trang 35

Ví d :ụ

int intList[] = new int[10]; //t o m ng 10ptạ ảintList[0] = 99; //Ph n t th 0 (đ u tiên) có giá tr là 99.ầ ử ứ ầ ịfor (sort i=1; i<10; i++)

Khai báo m ng 2 chi u: ả ề

<ki u ph n t >ể ầ ử [][] <tên m ng> = {<danh sách ph n t >};ả ầ ử

Ví d : int[][] b = {ụ {1,2},{3,4}};

Đây là khai báo và kh i t o giá tr cho m t m ng 2 chi u kích thở ạ ị ộ ạ ề ước 2 x 2 {1,2} là các

ph n t c a hàng 1; {3,4} là các ph n t trên hàng th 2.ầ ử ủ ầ ử ứ

Ho c ta có th khai báo rõ s hàng và s c t c a m ng:ặ ể ố ố ộ ủ ả

int b[][] = new int[ 3 ][ 4 ];

Th m chí ta có th khai báo m t m ng 3 chi u ho c h n.ậ ể ộ ả ề ặ ơ

int b[][][] = {{{1,2},{3,4}},{{5,6},{7,8}}};

Ta được b[0][0][0] =1; b[0][0][1]=2;b[1][1][1]=8;b[0][1][0]=3;

III.4 H ng s (literal) ằ ố

Là m t giá tr không đ i độ ị ổ ược s d ng trong chử ụ ương trình H ng s đằ ố ược bi u di nể ễ

nh chính nó ch không là m t giá tr c a bi n hay m t k t qu c a bi u th c Giá tr c aư ứ ộ ị ủ ế ộ ế ả ủ ể ứ ị ủ

h ng s không th b thay đ i.ằ ố ể ị ổ

Ví d : Pi = 3.1415.ụ

Tên c a h ng s đủ ằ ố ược đ t tên nh tên bi n Cách khai báo h ng cũng tặ ư ế ằ ương t nhự ư

bi n nh ng có dùng thêm t khóa final:ế ư ừ

<ph m vi> final <ki u d li u c a h ng> <tên h ng> = <giá tr > ạ ể ữ ệ ủ ằ ằ ị

Ví d : public final String mauda ="vang";ụ

Tương t nh h ng s nguyên, đ ch rõ h ng là float ta thêm vĩ ng “ f ” hay “F”,ự ư ằ ố ể ỉ ằ ữ

h ng là double ta thêm “d” hay “D”.ằ

H ng Boolean: ằ

M t h ng s ki u boolean có giá tr là ộ ằ ố ể ị true ho c ặ false Trong Java, các giá tr 0 và 1ịkhông được dùng thay th cho false và true nh trong C ho c C++.ế ư ặ

H ng ký t : ằ ự

Trang 36

Là m t ký t đ n gi n hay m t chu i ESCAPE, h ng ký t độ ự ơ ả ộ ỗ ằ ự ược đ t trong hai d uặ ấ ngo c đ n ‘’ Các chu i ESCAPE:ặ ơ ỗ

M t h ng chu i ký t có th có 0 ký t (h ng chu i r ng) hay nhi u ký t ộ ằ ỗ ự ể ự ằ ỗ ỗ ề ự

Ví d : “A String”, “” //chu i r ng, “dong 1 \t\n dong 2”.ụ ỗ ỗ

III.5 Ph m vi ho t đ ng c a h ng và bi n: ạ ạ ộ ủ ằ ế

Kh i l nh Block 1 ch a 2 kh i l nh con Block 2, Block 3.ố ệ ứ ố ệ

Bi n hay h ng s ch có ý nghĩa trong ph m vi kh i l nh mà nó đế ằ ẽ ỉ ạ ố ệ ược khai báo

{

Block 3

}

Trang 37

x += c ng k t h p phép gánộ ế ợ x+=y tương đương x=x+y

-= tr k t h p phép gánừ ế ợ x-=y tương đương x=x-y

*= nhân k t h p phép gánế ợ x*=y tương đương x=x*y

/= chia k t h p phép gánế ợ x/=y tương đương x=x/y

& phép và trên bit

! Toán t logic NOTử

&& Toán t logic ANDử

• Bi u th c logic ch cho ra k t qu là các giá tr ể ứ ỉ ế ả ị true hay false.

Khi s d ng câu l nh gán k t qu c a m t bi u th c cho m t bi n, ta c n chú ý t iử ụ ệ ế ả ủ ộ ể ứ ộ ế ầ ớ

v n đ đ ng nh t ki u d li u gi a hai v đ tránh m t thông tin Ví d :ấ ề ồ ấ ể ữ ệ ữ ế ể ấ ụ

Double delta = 0.0d; //khai báo m t bi n s th c có tên deltaộ ế ố ự

delta = 1/ 100; // Gán cho delta k t qu c a phép chia 1 cho 100.ế ả ủ

Trong tình hu ng này, ta không thu đố ược delta = 0.01 nh mong đ i mà là delta =0 Lýư ợ

do là các s 1 và 100 đ u đố ề ược hi u là các s nguyên và k t qu c a phép chia để ố ế ả ủ ượ ự ộ c t đ nglàm tròn thành m t giá tr nguyên trộ ị ước khi gán cho delta Đ kh c ph c tình tr ng này, ta c nể ắ ụ ạ ầ xác đ nh rõ các s 1 và 100 là các s double.ị ố ố

delta = 1d/100d;

Trang 38

public class dkIfThen {

public static void main(String[] args) {

Ví d :ụ

public class dkIfThen {

public static void main(String[] args) {

Trang 39

switch <bi u th c>{ể ứ

case <giá tr 1>: <kh i l nh 1>; break;ị ố ệcase <giá tr 2>: <kh i l nh 2>; break;ị ố ệ

case <giá tr n>: <kh i l nh n>; break;ị ố ệdefault: <kh i l nh default>; break;ố ệ}

M t s chú ý khi s d ng l nh switch-case:ộ ố ử ụ ệ

Các giá tr : <giá tr 1>, <giá tr 2>,…<giá tr n> ph i là các h ng s ị ị ị ị ả ằ ố

N u không s d ng l nh break m i khi k t thúc các kh i l nh thì sau khi th c hi nế ử ụ ệ ỗ ế ố ệ ự ệ xong kh i l nh, các l nh ti p theo s đố ệ ệ ế ẽ ược th c hi n.ự ệ

B t đ u v i giá tr <kh i t o> c a bi n đ m, <kh i l nh> đắ ầ ớ ị ở ạ ủ ế ế ố ệ ược th c hi n Sau m iự ệ ỗ

l n th c hi n xong <kh i l nh>, bi n đ m thay đ i giá tr m t lầ ự ệ ố ệ ế ế ổ ị ộ ượng b ng <bằ ước nh y> vàả

<bi u th c ki m tra> để ứ ể ược tính l i N u bi u th c ki m tra là true thì l i th c hi n kh i l nh,ạ ế ể ứ ể ạ ự ệ ố ệcòn n u là false, vòng l p ch m d t.ế ặ ấ ứ

Trang 40

public class vdFor {

public static void main(String[] args) {

[các câu l nh; ]ệ

Kh i l nh ố ệ được th c hi n khi <bt boolean> còn có giá tr true ự ệ ị

Chú ý: trong kh i l nh ph i có câu l nh có tác d ng nh hố ệ ả ệ ụ ả ưởng t i k t qu <btớ ế ảboolean> đ vòng l p có th d ng.ể ặ ể ừ

L u ư đồ ự th c hi n:ệ

40

Bt boolean

Các câu l nhệ

Câu l nh ti p ệ ếtheo

false

true

Ngày đăng: 16/08/2012, 14:00

TỪ KHÓA LIÊN QUAN

w