- Chương 1: Các khái niệm cơ bản
- Chương 2: Lập trình hướng đối tượng
- Chương 3: Xử lý ngoại lệ
- Chương 4: Lập trình đa tuyến
- Chương 5: Nhập xuất (Input/ output)
- Chương 6: Lập trình đồ họa AWT
- Chương 7: Lập trình Cơ sở dữ liệu
- Chương 8: Lập trình Socket
- Chương 9: Java mail
- Chương 10: Lập trình phân tán với JAVA RMI ( REMOTE METHOD INVOKE)
- Chương 11: Java JSP (Java Servlet)
- Chương 12: EJB (ENTERPRISE JAVA BEANS)
249 trang |
Chia sẻ: diunt88 | Lượt xem: 3011 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng Java, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Trang 1
Tr•êng ®¹i häc s• ph¹m kü thuËt h•ng yªn
khoa c«ng nghÖ th«ng tin
---------------ooo------------------
§Ò c•¬ng bµi gi¶ng Java
Nhóm biên soҥn: 1. Hoàng Trӑng ThӃ
2. NguyӉn Duy Tân
Trang 2
0ӨC LӨC
Chѭѫng 1: CÁC KHÁI NIӊM CѪ BҦN.................................................................. 5
BÀI 1. LÀM QUEN VӞI JAVA................................................................................... 5
I. Lӏch sӱ java ........................................................................................................... 5
II. Java em là ai ......................................................................................................... 5
II. Mӝt sӕÿһc trѭng cӫa java ..................................................................................... 5
III. Các kiӇu ӭng dөng Java........................................................................................ 7
IV. Máy ҧo Java (JVM-Java Virtual Machine) .......................................................... 7
BÀI 2 NӄN TҦNG CӪA JAVA ................................................................................ 9
I. Tұp ký tӵ dùng trong java ...................................................................................... 9
II. Tӯ khoá cӫa Java .................................................................................................. 9
III. Ĉӏnh danh (tên) ................................................................................................. 10
IV. Cҩu trúc mӝt chѭѫng trình java ......................................................................... 10
V. Chѭѫng trình JAVA ÿҫu tiên .............................................................................. 12
VI. Chú thích trong chѭѫng trình ............................................................................ 14
VII. KiӇu dӳ liӋu ..................................................................................................... 15
VII. Mӝt sӕ phép toán trên kiӇu dӳ liӋu nguyên thuӹ ............................................... 17
IX. Toán tӱ chuyӇn kiӇu .......................................................................................... 23
X. Các hàm toán hӑc ............................................................................................... 24
XI. Các phép toán trên kiӇu kí tӵ ............................................................................. 26
BÀI 3. ĈIӄU KHIӆN LUӖNG CHѬѪNG TRÌNH .................................................... 27
I. Cҩu trúc rӁ nhánh ................................................................................................. 27
II. Cҩu trúc lһp while và do-while ........................................................................... 30
III. Cҩu trúc for ....................................................................................................... 32
IV. LӋnh break và continue ..................................................................................... 34
Chѭѫng 2: LҰP TRÌNH HѬӞNG ĈӔI TѬӦNG ......................................................... 37
BÀI 1. ĈӎNH NGHƬA LӞP ....................................................................................... 38
I. Khai báo lӟp ........................................................................................................ 38
II. Chi tiӃt vӅ khai báo mӝt phѭѫng thӭc ................................................................. 40
III. Tӯ khoá this ...................................................................................................... 43
IV. Tӯ khoá super ................................................................................................... 43
V. Sӱ dөng lӟp ........................................................................................................ 44
VI. ĈiӅu khiӇn viӋc truy cұp ÿӃn các thành viên cӫa mӝt lӟp .................................. 44
BÀI 2. KHӢI ĈҪU VÀ DӐN DҼP ............................................................................ 47
I. Phѭѫng thӭc tҥo dӵng (constructor) ..................................................................... 47
II. Khӕi khӣi ÿҫu vô danh và khӕi khӣi ÿҫu tƭnh ...................................................... 49
III. Dӑn dҽp: kӃt thúc và thu rác .............................................................................. 51
BÀI 3. CÁC THÀNH PHҪN TƬNH ........................................................................... 52
I. Thuӝc tính tƭnh .................................................................................................... 52
II. Phѭѫng thӭc tƭnh ................................................................................................ 52
BÀI 4. NҤP CHӖNG PHѬѪNG THӬC .................................................................. 53
I. Khái niӋm vӅ phѭѫng thӭc bӝi tҧi ........................................................................ 53
Trang 3
II. Yêu cҫu cӫa các phѭѫng thӭc bӝi tҧi ................................................................... 53
BÀI 5. Kӂ THӮA (INHERITANCE) ........................................................................ 54
I. Lӟp cѫ sӣ và lӟp dүn xuҩt .................................................................................... 54
II. Cách xây dӵng lӟp dүn xuҩt ................................................................................ 54
III. Thӯa kӃ các thuӝc tính ...................................................................................... 54
IV. Thӯa kӃ phѭѫng thӭc ........................................................................................ 54
V. Khӣi ÿҫu lӟp cѫ sӣ ............................................................................................. 54
VI. Ghi ÿè phѭѫng thӭc ( Override ) ....................................................................... 56
VI. Thành phҫn protected ........................................................................................ 56
VII. Tӯ khoá final ................................................................................................... 56
BÀI 6. LӞP CѪ SӢ TRӮU TѬӦNG ......................................................................... 61
BÀI 7. ĈA HÌNH THÁI ............................................................................................ 62
BÀI 8. GIAO DIӊN, LӞP TRONG, GÓI ................................................................... 63
I. Giao diӋn ............................................................................................................. 63
II. Lӟp trong ............................................................................................................ 65
Bài 9. MҦNG, XÂU KÝ TӴ, TҰP HӦP ................................................................... 67
I. Mҧng ................................................................................................................... 67
II. Xâu ký tӵ ............................................................................................................ 70
III. Lӟp StringTokenizer ......................................................................................... 75
IV. Mӝt sӕ lӟp cѫ bҧn cӫa Java ............................................................................... 77
V. Các lӟp tұp hӧp .................................................................................................. 83
Chѭѫng 3: XӰ LÝ NGOҤI Lӊ ............................................................................ 92
I. Mөc ÿích cӫa viӋc xӱ lý ngoҥi lӋ .......................................................................... 92
II. Mô hình sӱ lý ngoҥi lӋ cӫa java .......................................................................... 92
III. Ĉһc tҧ ngoҥi lӋ ................................................................................................... 93
III. Ném ra ngoҥi lӋ ................................................................................................. 93
IV. Bҳt ngoҥi lӋ ....................................................................................................... 93
V. Khӕi ‘finally’ ...................................................................................................... 95
VI. Mӝt sӕ lӟp ngoҥi lӋ chuҭn cӫa Java ................................................................... 96
Chѭѫng 4: LҰP TRÌNH ĈA TUYӂN ........................................................................ 97
I. Các kiӃn thӭc liên quan ........................................................................................ 97
II. Lұp trình ÿa tuyӃn trong Java .............................................................................. 98
Chѭѫng 5: NHҰP XUҨT (Input/Output) ............................................................... 104
I. Lӟp luӗng .......................................................................................................... 105
II. Lӟp File ............................................................................................................ 113
Chѭѫng 6: LҰP TRÌNH ĈӖ HOҤ AWT ................................................................ 120
I. Giӟi thiӋu vӅ hӋ thӕng ÿӗ hoҥ cӫa Java .............................................................. 120
II. Trình quҧn lý hiӇn thӏ trong Java ...................................................................... 124
III. Xӱ lý sӵ kiӋn trong Java .................................................................................. 125
Chѭѫng 7 LҰP TRÌNH CѪ SӢ DӲ LIӊU .............................................................. 143
I. Tәng quan 143
II. Các kӇu trình ÿiӅu khiӇn JDBC......................................................................... 143
Trang 4
III. Các lӟp trong JDBC API dùng ÿӇ truy cұp CSDL ........................................... 146
IV. KӃt nӕi CSDL vӟi JDBC ................................................................................. 147
V. Tѭѫng tác vӟi CSDL ........................................................................................ 152
VI. Quҧn lý giao dӏch ............................................................................................ 160
Chѭѫng 8: LҰP TRÌNH SOCKET .............................................................................. 164
I. Các kiӃn thӭc liên quan ...................................................................................... 164
II. Khҧo sát mӝt sӕ lӟp trong gói java.net .............................................................. 164
2. Lӟp URL và URI .............................................................................................. 171
3. Lӟp Socket........................................................................................................ 176
4. Lӟp ServerSocket.............................................................................................. 182
5. Lӟp DatagramSocket ......................................................................................... 185
6. Lӟp DatagramPacket ......................................................................................... 185
III. TCP Socket ..................................................................................................... 185
Chѭѫng 9: JAVA MAIL .............................................................................................. 205
I. Các khái niӋm MAIL ......................................................................................... 205
II. Gӱi mail vӟi thѭ viӋn có sҹn cӫa java ............................................................... 206
III. Giӟi thiӋu java mail API .................................................................................. 207
III. Gӱi mail .......................................................................................................... 212
IV. Nhұn mail ....................................................................................................... 215
V. Xoá mail ........................................................................................................... 221
Chѭѫng 10: LҰP TRÌNH PHÂN TÁN VӞI ................................................................. 222
JAVA RMI ( REMOTE METHOD INVOKE)............................................................. 222
I. RMI và lұp trình phân tán ÿӕi tѭӧng .................................................................. 222
II. Gӑi phѭѫng thӭc tӯ xa và các vҩn ÿӅ phát sinh ................................................. 223
III. Vai trò cӫa các lӟp trung gian .......................................................................... 223
IV. Cài ÿһt ÿӕi tѭӧng phân tán .............................................................................. 224
Chѭѫng 11: JAVA JSP (JAVA SERVLET) ................................................................. 233
Chѭѫng 12: EJB (ENTERPRISE JAVA BEANS) ........................................................ 234
I. Tәng quan vӅ JavaBean ..................................................................................... 234
II. Xây dӵng thành phҫn JavaBean ........................................................................ 234
III. Tìm hiӇu Instrospector ..................................................................................... 247
IV. Ĉóng gói JavaBean ......................................................................................... 249
Trang 5
Chѭѫng 1: CÁC KHÁI NIӊM CѪ BҦN
BÀI 1. LÀM QUEN VӞI JAVA
I. Lӏch sӱ java
Java là mӝt ngôn ngӳ lұp trình ÿѭӧc Sun Microsystems giӟi thiӋu vào tháng 6 năm
1995. Tӯÿó, nó ÿã trӣ thành mӝt công cө lұp trình cӫa các lұp trình viên chuyên nghiӋp.
Java ÿѭӧc xây dӵng trên nӅn tҧng cӫa C và C++. Do vұy nó sӱ dөng các cú pháp cӫa C và
các ÿһc trѭng hѭӟng ÿӕi tѭӧng cӫa C++.
Ban ÿҫu Java ÿѭӧc thiӃt kӃÿӇ làm ngôn ngӳ viӃt chѭѫng trình cho các sҧn phҭm
ÿiӋn tӱ dân dөng nhѭÿҫu video, tivi, ÿLӋn thoҥi, máy nhҳn tin.. . Tuy nhiên vӟi sӵ mãnh
mӁ cӫa Java ÿã khiӃn nó nәi tiӃng ÿӃn mӭc vѭӧt ra ngoài sӵ tѭӣng tѭӧng cӫa các nhà thiӃt
kӃ ra nó.
Java khӣi thuӹ tên là Oak- là cây sӗi mӑc ӣ phía sau văn phòng cӫa nhà thiӃt kӃ
chính ông Jame Gosling, sau này ông thҩy rҵng ÿã có ngôn ngӳ lұp trình tên Oak rӗi, do
vұy nhóm thiӃt kӃ quyӃt ÿӏnh ÿәi tên, “Java” là cái tên ÿѭӧc chӑn, Java là tên cӫa mӝt
quán cafe mà nhóm thiӃt kӃ java hay ÿӃn ÿó uӕng.
II. Java em là ai
Java là ngôn ngӳ lұp trình hѭӟng ÿӕi tѭӧng, do vұy không thӇ dùng Java ÿӇ viӃt
mӝt chѭѫng trình hѭӟng chӭc năng. Java có thӇ giҧi quyӃt hҫu hӃt các công viӋc mà các
ngôn ngӳ khác có thӇ làm ÿѭӧc.
Java là ngôn ngӳ vӯa biên dӏch vӯa thông dӏch. Ĉҫu tiên mã nguӗn ÿѭӧc biên dӏch
bҵng công cө JAVAC ÿӇ chuyӇn thành dҥng ByteCode. Sau ÿó ÿѭӧc thӵc thi trên tӯng
loҥi máy cө thӇ nhӡ chѭѫng trình thông dӏch JAVA. Mөc tiêu cӫa các nhà thiӃt kӃ Java là
cho phép ngѭӡi lұp trình viӃt chѭѫng trình mӝt lҫn nhѭng có thӇ chҥy trên bҩt cӭ phҫn
cӭng cө thӇ, thӃ nên khҭu hiӋu cӫa các nhà thiӃt kӃ Java là “Write One, Run Any Where”.
Ngày nay, Java ÿѭӧc sӱ dөng rӝng rãi ÿӇ viӃt chѭѫng trình chҥy trên Internet. Nó là
ngôn ngӳ lұp trình hѭӟng ÿӕi tѭӧng ÿӝc lұp thiӃt bӏ, không phө thuӝc vào hӋÿLӅu hành.
Java không chӍ dùng ÿӇ viӃt các ӭng dөng chҥy ÿѫn lҿ hay trong mҥng mà còn ÿӇ xây
dӵng các trình ÿiӅu khiӇn thiӃt bӏ cho ÿLӋn thoҥi di ÿӝng, PDA, …
II. Mӝt sӕÿһc trѭng cӫa java
1Ĉ˯n gi̫n
Nhӳng ngѭӡi thiӃt kӃ mong muӕn phát triӇn mӝt ngôn ngӳ dӉ hӑc và quen thuӝc
vӟi ÿa sӕ ngѭӡi lұp trình. Java tӵa nhѭ C++, nhѭng ÿã lѭӧc bӓÿi các ÿһc trѭng phӭc tҥp,
không cҫn thiӃt cӫa C và C++ nhѭ: thao tác con trӓ, thao tác ÿӏnh nghƭa chӗng toán tӱ
(operator overloading),… Java không sӱ dөng lӋnh “goto” cNJng nhѭ file header (.h). Cҩu
trúc “struct” và “union” cNJng ÿѭӧc loҥi bӓ khӓi Java. Nên có ngѭӡi bҧo Java là “C++--“,
ngө ý bҧo java là C++ nhѭng ÿã bӓÿi nhӳng thӭ phӭc tҥp, không cҫn thiӃt.
2. H˱ͣng ÿ͙i t˱ͫng
Có thӇ nói java là ngôn ngӳ lұp trình hoàn toàn hѭӟng ÿӕi tѭӧng, tҩt cҧc trong java
ÿӅu là sӵ vұt, ÿâu ÿâu cNJng là sӵ vұt.
3. Ĉ͡c l̵p vͣi h͏ n͉n
Mөc tiêu chính cӫa các nhà thiӃt kӃ java là ÿӝc lұp vӟi hӋ nӅn hay còn gӑi là ÿӝc
lұp phҫn cӭng và hӋÿLӅu hành. Ĉây là khҧ năng mӝt chѭѫng trình ÿѭӧc viӃt tҥi mӝt máy
nhѭng có thӇ chҥy ÿѭӧc bҩt kǤÿâu
Trang 6
Tính ÿӝc lұp vӟi phҫn cӭng ÿѭӧc hiӇu theo nghƭa mӝt chѭѫng trình Java nӃu chҥy
ÿúng trên phҫn cӭng cӫa mӝt hӑ máy nào ÿó thì nó cNJng chҥy ÿúng trên tҩt cҧ các hӑ máy
khác. Mӝt chѭѫng trình chӍ chҥy ÿúng trên mӝt sӕ hӑ máy cө thӇÿѭӧc gӑi là phө thuӝc
vào phҫn cӭng.
Tính ÿӝc lұp vӟi hӋÿLӅu hành ÿѭӧc hiӇu theo nghƭa mӝt chѭѫng trình Java có thӇ
chҥy ÿѭӧc trên tҩt cҧ các hӋÿLӅu hành. Mӝt chѭѫng trình chӍ chҥy ÿѭӧc trên mӝt sӕ hӋ
ÿiӅu hành ÿѭӧc gӑi là phө thuӝc vào hӋÿLӅu hành.
Các chѭѫng trình viӃt bҵng java có thӇ chҥy trên hҫu hӃt các hӋ nӅn mà không cҫn
phҧi thay ÿәi gì, ÿiӅu này ÿã ÿѭӧc nhӳng ngѭӡi lұp trình ÿһt cho nó mӝt khҭu hiӋu µvi͇t
m͡t l̯n, ch̩y m͕i n˯L¶, ÿiӅu này là không thӇ có vӟi các ngôn ngӳ lұp trình khác.
Ĉӕi vӟi các chѭѫng trình viӃt bҵng C, C++ hoһc mӝt ngôn ngӳ nào khác, trình biên
dӏch sӁ chuyӇn tұp lӋnh thành mã máy (machine code), hay lӋnh cӫa bӝ vi xӱ lý. Nhӳng
lӋnh này phө thuӝc vào CPU hiӋn tҥi trên máy bҥn. Nên khi muӕn chҥy trên loҥi CPU
khác, chúng ta phҧi biên dӏch lҥi chѭѫng trình.
4. M̩nh mͅ
Java là ngôn ngӳ yêu cҫu chһt chӁ vӅ kiӇu dӳ liӋu, viӋc ép kiӇu tӵÿӝng bӯa bãi cӫa
C, C++ nay ÿѭӧc hҥn chӃ trong Java, ÿLӅu này làm chѭѫng trình rõ ràng, sáng sӫa, ít lӛi
Kѫn.Java kiӇm tra lúc biên dӏch và cҧ trong thӡi gian thông dӏch vì vұy Java loҥi bӓ mӝt
mӝt sӕ loҥi lӛi lұp trình nhҩt ÿӏnh.Java không sӱ dөng con trӓ và các phép toán con trӓ.
Java kiӇm tra tҩt cҧ các truy nhұp ÿӃn mҧng, chuӛi khi thӵc thi ÿӇÿҧm bҧo rҵng các truy
nhұp ÿó không ra ngoài giӟi hҥn kích thѭӟc.
Trong các môi trѭӡng lұp trình truyӅn thӕng, lұp trình viên phҧi tӵ mình cҩp phát
bӝ nhӟ. Trѭӟc khi chѭѫng trình kӃt thúc thì phҧi tӵ giҧi phóng bӝ nhӟÿã cҩp. Vҩn ÿӅ nҧy
sinh khi lұp trình viên quên giҧi phóng bӝ nhӟÿã xin cҩp trѭӟc ÿó. Trong chѭѫng trình
Java, lұp trình viên không phҧi bұn tâm ÿӃn viӋc cҩp phát bӝ nhӟ. Qúa trình cҩp phát, giҧi
phóng ÿѭӧc thӵc hiӋn tӵÿӝng, nhӡ dӏch vө thu nhһt nhӳng ÿӕi tѭӧng không còn sӱ dөng
nӳa (garbage collection).
&ѫ chӃ bүy lӛi cӫa Java giúp ÿѫn giҧn hóa qúa trình xӱ lý lӛi và hӗi phөc sau lӛi.
5. H͟ trͫ l̵p trình ÿa tuy͇n
Ĉây là tính năng cho phép viӃt mӝt chѭѫng trình có nhiӅu ÿRҥn mã lӋnh ÿѭӧc chҥy
song song vӟi nhau. Vӟi java ta có thӇ viӃt các chѭѫng trình có khҧ năng chҥy song song
mӝt cách dӉ dàng, hѫn thӃ nӳa viӋc ÿӗng bӝ tài nguyên dùng chung trong Java cNJng rҩt
ÿѫng giҧn. ĈLӅu này là không thӇ có ÿӕi vӟi mӝt sӕ ngôn ngӳ lұp trình khác nhѭ C/C++,
pascal …
6. Phân tán
Java hӛ trӧÿҫy ÿӫ các mô hình tính toán phân tán: mô hình client/server, gӑi thӫ
tөc tӯ xa…
7. H͟ trͫ internet
Mөc tiêu quan trӑng cӫa các nhà thiӃt kӃ java là tҥo ÿLӅu kiӋn cho các nhà phát triӇn
ӭng dөng có thӇ viӃt các chѭѫng trình ӭng dөng internet và web mӝt cách dӉ dàng, vӟi
java ta có thӇ viӃt các chѭѫng trình sӱ dөng các giao thӭc TCP, UDP mӝt cách dӉ dàng, vӅ
lұp trình web phía máy khách java có công nghӋ java applet, vӅ lұp trình web phía máy
khách java có công nghӋ servlet/JSP, vӅ lұp trình phân tán java có công nghӋ RMI,
CORBA, EJB, Web Service.
Trang 7
8. Thông d͓ch
Các chѭѫng trình java cҫn ÿѭӧc thông dӏch trѭӟc khi chҥy, mӝt chѭѫng trình java
ÿѭӧc biên dӏch thành mã byte code mã ÿӝc lұp vӟi hӋ nӅn, chѭѫng trình thông dӏch java sӁ
ánh xҥ mã byte code này lên mӛi nӅn cө thӇ, ÿLӅu này khiӃn java chұm chҥp ÿi phҫn nào.
III. Các kiӇu ӭng dөng Java
Vӟi Java ta có thӇ xây dӵng các kiӇu ӭng dөng sau:
1. Ͱng dͭng Applets
Applet là chѭѫng trình Java ÿѭӧc tҥo ra ÿӇ sӱ dөng trên Internet thông qua các trình
duyӋt hӛ trӧ Java nhѭ IE hay Netscape. Applet ÿѭӧc nhúng bên trong trang Web. Khi
trang Web hiӇn thӏ trong trình duyӋt, Applet sӁÿѭӧc tҧi vӅ và thӵc thi tҥi trình duyӋt.
2. Ͱng dͭng dòng l͏nh (console)
Các chѭѫng trình n