Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 249 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
249
Dung lượng
2,22 MB
Nội dung
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 son: 1. Hong Trng Th 2. Nguyn Duy Tõn Trang 2 C LC Chng 1: CÁC KHÁI NIM C BN 5 BÀI 1. LÀM QUEN VI JAVA 5 I. Lch s java 5 II. Java em là ai 5 II. Mt sc trng ca java 5 III. Các kiu ng dng Java 7 IV. Máy o Java (JVM-Java Virtual Machine) 7 BÀI 2 NN TNG CA JAVA 9 I. Tp ký t dùng trong java 9 II. T khoá ca Java 9 III. nh danh (tên) 10 IV. Cu trúc mt chng trình java 10 V. Chng trình JAVA u tiên 12 VI. Chú thích trong chng trình 14 VII. Kiu d liu 15 VII. Mt s phép toán trên kiu d liu nguyên thu 17 IX. Toán t chuyn kiu 23 X. Các hàm toán hc 24 XI. Các phép toán trên kiu kí t 26 BÀI 3. IU KHIN LUNG CHNG TRÌNH 27 I. Cu trúc r nhánh 27 II. Cu trúc lp while và do-while 30 III. Cu trúc for 32 IV. Lnh break và continue 34 Chng 2: LP TRÌNH HNG I TNG 37 BÀI 1. NH NGHA LP 38 I. Khai báo lp 38 II. Chi tit v khai báo mt phng thc 40 III. T khoá this 43 IV. T khoá super 43 V. S dng lp 44 VI. iu khin vic truy cp n các thành viên ca mt lp 44 BÀI 2. KHI U VÀ DN DP 47 I. Phng thc to dng (constructor) 47 II. Khi khi u vô danh và khi khi u tnh 49 III. Dn dp: kt thúc và thu rác 51 BÀI 3. CÁC THÀNH PHN TNH 52 I. Thuc tính tnh 52 II. Phng thc tnh 52 BÀI 4. NP CHNG PHNG THC 53 I. Khái nim v phng thc bi ti 53 Trang 3 II. Yêu cu ca các phng thc bi ti 53 BÀI 5. K THA (INHERITANCE) 54 I. Lp c s và lp dn xut 54 II. Cách xây dng lp dn xut 54 III. Tha k các thuc tính 54 IV. Tha k phng thc 54 V. Khi u lp c s 54 VI. Ghi è phng thc ( Override ) 56 VI. Thành phn protected 56 VII. T khoá final 56 BÀI 6. LP C S TRU TNG 61 BÀI 7. A HÌNH THÁI 62 BÀI 8. GIAO DIN, LP TRONG, GÓI 63 I. Giao din 63 II. Lp trong 65 Bài 9. MNG, XÂU KÝ T, TP HP 67 I. Mng 67 II. Xâu ký t 70 III. Lp StringTokenizer 75 IV. Mt s lp c bn ca Java 77 V. Các lp tp hp 83 Chng 3: X LÝ NGOI L 92 I. Mc ích ca vic x lý ngoi l 92 II. Mô hình s lý ngoi l ca java 92 III. c t ngoi l 93 III. Ném ra ngoi l 93 IV. Bt ngoi l 93 V. Khi ‘finally’ 95 VI. Mt s lp ngoi l chun ca Java 96 Chng 4: LP TRÌNH A TUYN 97 I. Các kin thc liên quan 97 II. Lp trình a tuyn trong Java 98 Chng 5: NHP XUT (Input/Output) 104 I. Lp lung 105 II. Lp File 113 Chng 6: LP TRÌNH HO AWT 120 I. Gii thiu v h thng ho ca Java 120 II. Trình qun lý hin th trong Java 124 III. X lý s kin trong Java 125 Chng 7 LP TRÌNH C S D LIU 143 I. Tng quan 143 II. Các ku trình iu khin JDBC 143 Trang 4 III. Các lp trong JDBC API dùng truy cp CSDL 146 IV. Kt ni CSDL vi JDBC 147 V. Tng tác vi CSDL 152 VI. Qun lý giao dch 160 Chng 8: LP TRÌNH SOCKET 164 I. Các kin thc liên quan 164 II. Kho sát mt s lp trong gói java.net 164 2. Lp URL và URI 171 3. Lp Socket 176 4. Lp ServerSocket 182 5. Lp DatagramSocket 185 6. Lp DatagramPacket 185 III. TCP Socket 185 Chng 9: JAVA MAIL 205 I. Các khái nim MAIL 205 II. Gi mail vi th vin có sn ca java 206 III. Gii thiu java mail API 207 III. Gi mail 212 IV. Nhn mail 215 V. Xoá mail 221 Chng 10: LP TRÌNH PHÂN TÁN VI 222 JAVA RMI ( REMOTE METHOD INVOKE) 222 I. RMI và lp trình phân tán i tng 222 II. Gi phng thc t xa và các vn phát sinh 223 III. Vai trò ca các lp trung gian 223 IV. Cài t i tng phân tán 224 Chng 11: JAVA JSP (JAVA SERVLET) 233 Chng 12: EJB (ENTERPRISE JAVA BEANS) 234 I. Tng quan v JavaBean 234 II. Xây dng thành phn JavaBean 234 III. Tìm hiu Instrospector 247 IV. óng gói JavaBean 249 Trang 5 Chng 1: CÁC KHÁI NIM C BN BÀI 1. LÀM QUEN VI JAVA I. Lch s java Java là mt ngôn ng lp trình c Sun Microsystems gii thiu vào tháng 6 nm 1995. Tó, nó ã tr thành mt công c lp trình ca các lp trình viên chuyên nghip. Java c xây dng trên nn tng ca C và C++. Do vy nó s dng các cú pháp ca C và các c trng hng i tng ca C++. Ban u Java c thit k làm ngôn ng vit chng trình cho các sn phm in t dân dng nhu video, tivi, n thoi, máy nhn tin . Tuy nhiên vi s mãnh m ca Java ã khin nó ni ting n mc vt ra ngoài s tng tng ca các nhà thit k ra nó. Java khi thu tên là Oak- là cây si mc phía sau vn phòng ca nhà thit k chính ông Jame Gosling, sau này ông thy rng ã có ngôn ng lp trình tên Oak ri, do vy nhóm thit k quyt nh i tên, “Java” là cái tên c chn, Java là tên ca mt quán cafe mà nhóm thit k java hay n ó ung. II. Java em là ai Java là ngôn ng lp trình hng i tng, do vy không th dùng Java vit mt chng trình hng chc nng. Java có th gii quyt hu ht các công vic mà các ngôn ng khác có th làm c. Java là ngôn ng va biên dch va thông dch. u tiên mã ngun c biên dch bng công c JAVAC chuyn thành dng ByteCode. Sau ó c thc thi trên tng loi máy c th nh chng trình thông dch JAVA. Mc tiêu ca các nhà thit k Java là cho phép ngi lp trình vit chng trình mt ln nhng có th chy trên bt c phn cng c th, th nên khu hiu ca các nhà thit k Java là “Write One, Run Any Where”. Ngày nay, Java c s dng rng rãi vit chng trình chy trên Internet. Nó là ngôn ng lp trình hng i tng c lp thit b, không ph thuc vào hu hành. Java không ch dùng vit các ng dng chy n l hay trong mng mà còn xây dng các trình iu khin thit b cho n thoi di ng, PDA, … II. Mt sc trng ca java 1n gin Nhng ngi thit k mong mun phát trin mt ngôn ng d hc và quen thuc vi a s ngi lp trình. Java ta nh C++, nhng ã lc bi các c trng phc tp, không cn thit ca C và C++ nh: thao tác con tr, thao tác nh ngha chng toán t (operator overloading),… Java không s dng lnh “goto” cng nh file header (.h). Cu trúc “struct” và “union” cng c loi b khi Java. Nên có ngi bo Java là “C++ “, ng ý bo java là C++ nhng ã bi nhng th phc tp, không cn thit. 2. Hng i tng Có th nói java là ngôn ng lp trình hoàn toàn hng i tng, tt cc trong java u là s vt, âu âu cng là s vt. 3. c lp vi h nn Mc tiêu chính ca các nhà thit k java là c lp vi h nn hay còn gi là c lp phn cng và hu hành. ây là kh nng mt chng trình c vit ti mt máy nhng có th chy c bt kâu Trang 6 Tính c lp vi phn cng c hiu theo ngha mt chng trình Java nu chy úng trên phn cng ca mt h máy nào ó thì nó cng chy úng trên tt c các h máy khác. Mt chng trình ch chy úng trên mt s h máy c thc gi là ph thuc vào phn cng. Tính c lp vi hu hành c hiu theo ngha mt chng trình Java có th chy c trên tt c các hu hành. Mt chng trình ch chy c trên mt s h iu hành c gi là ph thuc vào hu hành. Các chng trình vit bng java có th chy trên hu ht các h nn mà không cn phi thay i gì, iu này ã c nhng ngi lp trình t cho nó mt khu hiu vit mt ln, chy mi n, iu này là không th có vi các ngôn ng lp trình khác. i vi các chng trình vit bng C, C++ hoc mt ngôn ng nào khác, trình biên dch s chuyn tp lnh thành mã máy (machine code), hay lnh ca b vi x lý. Nhng lnh này ph thuc vào CPU hin ti trên máy bn. Nên khi mun chy trên loi CPU khác, chúng ta phi biên dch li chng trình. 4. Mnh m Java là ngôn ng yêu cu cht ch v kiu d liu, vic ép kiu tng ba bãi ca C, C++ nay c hn ch trong Java, u này làm chng trình rõ ràng, sáng sa, ít li n.Java kim tra lúc biên dch và c trong thi gian thông dch vì vy Java loi b mt mt s loi li lp trình nht nh.Java không s dng con tr và các phép toán con tr. Java kim tra tt c các truy nhp n mng, chui khi thc thi m bo rng các truy nhp ó không ra ngoài gii hn kích thc. Trong các môi trng lp trình truyn thng, lp trình viên phi t mình cp phát b nh. Trc khi chng trình kt thúc thì phi t gii phóng b nhã cp. Vn ny sinh khi lp trình viên quên gii phóng b nhã xin cp trc ó. Trong chng trình Java, lp trình viên không phi bn tâm n vic cp phát b nh. Qúa trình cp phát, gii phóng c thc hin tng, nh dch v thu nht nhng i tng không còn s dng na (garbage collection). ch by li ca Java giúp n gin hóa qúa trình x lý li và hi phc sau li. 5. H tr lp trình a tuyn ây là tính nng cho phép vit mt chng trình có nhiu n mã lnh c chy song song vi nhau. Vi java ta có th vit các chng trình có kh nng chy song song mt cách d dàng, hn th na vic ng b tài nguyên dùng chung trong Java cng rt ng gin. u này là không th có i vi mt s ngôn ng lp trình khác nh C/C++, pascal … 6. Phân tán Java h try các mô hình tính toán phân tán: mô hình client/server, gi th tc t xa… 7. H tr internet Mc tiêu quan trng ca các nhà thit k java là to u kin cho các nhà phát trin ng dng có th vit các chng trình ng dng internet và web mt cách d dàng, vi java ta có th vit các chng trình s dng các giao thc TCP, UDP mt cách d dàng, v lp trình web phía máy khách java có công ngh java applet, v lp trình web phía máy khách java có công ngh servlet/JSP, v lp trình phân tán java có công ngh RMI, CORBA, EJB, Web Service. Trang 7 8. Thông dch Các chng trình java cn c thông dch trc khi chy, mt chng trình java c biên dch thành mã byte code mã c lp vi h nn, chng trình thông dch java s ánh x mã byte code này lên mi nn c th, u này khin java chm chp i phn nào. III. Các kiu ng dng Java Vi Java ta có th xây dng các kiu ng dng sau: 1. ng dng Applets Applet là chng trình Java c to ra s dng trên Internet thông qua các trình duyt h tr Java nh IE hay Netscape. Applet c nhúng bên trong trang Web. Khi trang Web hin th trong trình duyt, Applet sc ti v và thc thi ti trình duyt. 2. ng dng dòng lnh (console) Các chng trình này chy t du nhc lnh và không s dng giao din ha. Các thông tin nhp xut c th hin ti du nhc lnh. 3. ng dng ha ây là các chng trình Java chy c lp cho phép ngi dùng tng tác qua giao din ha. 4. JSP/Servlet Java thích hp phát trin ng dng nhiu lp. Applet là chng trình ha chy trên trình duyt ti máy trm. các ng dng Web, máy trm gi yêu cu ti máy ch. Máy ch x lý và gi kt qu tr li máy trm. Các Java API chy trên máy ch chu trách nhim x lý ti máy ch và tr li các yêu cu ca máy trm. Các Java API chy trên máy ch này m rng kh nng ca các ng dng Java API chun. Các ng dng trên máy ch này c gi là các JSP/Servlet. hoc Applet ti máy ch. X lý Form ca HTML là cách s dng n gin nht ca JSP/Servlet. Chúng còn có thc dùng x lý d liu, thc thi các giao dch và thng c thc thi thông qua máy ch Web. 5. ng dng c s d liu Các ng dng này s dng JDBC API kt ni ti c s d liu. Chúng có th là Applet hay ng dng, nhng Applet b gii hn bi tính bo mt. 6. ng dng mng Java là mt ngôn ng rt thích hp cho vic xây dng các ng dng mng. Vi th vin Socket bn có th lp trình vi hai giao thc: UDP và TCP. 7. ng dng nhiu tng Vi Java bn có th xây dng phân tán nhiu tng vi nhiu h tr khác nhau nh: RMI, CORBA, EJB, Web Service 8. ng dng cho các thit b di ng Hin nay phn ln các thit b di ng nh: in thoi di ng, máy tr giúp cá nhân… u h tr Java. Th nên bn có th xây dng các ng dng chy trên các thit b di ng này. ây là mt kiu ng dng khá hp dãn, bi vì các thit b di ng này ngày càng ph bin và nhu cu có các ng dng chy trên ó, c bit là các ng dng mang tính cht gii trí nh game IV. Máy o Java (JVM-Java Virtual Machine) Máy o là mt phn mm mô phng mt máy tính tht (máy tính o). Nó có tp hp các lnh logic xác nh các hot ng ca máy tính và có mt hu hành o. Ngi ta có th xem nó nh mt máy tính tht (máy tính có phn cng o, hu hành Trang 8 o). Nó thit lp các lp tru tng cho: Phn cng bên di, hu hành, mã ã biên dch. Trình biên dch chuyn mã ngun thành tp các lnh ca máy o mà không ph thuc vào phn cng và hu hành c th. Trình thông dch trên mi máy s chuyn tp lnh này thành chng trình thc thi. Máy o to ra mt môi trng bên trong thc thi các lnh bng cách: Ø Np các file .class Ø Qun lý b nh Ø Dn “rác” Vic không nht quán ca phn cng làm cho máy o phi s dng ngn xp lu tr các thông tin sau: Ø Các “Frame” cha các trng thái ca các phng thc. Ø Các toán hng ca mã bytecode. Ø Các tham s truyn cho phng thc. Ø Các bin cc b. Khi JVM thc thi mã, mt thanh ghi cc b có tên “Program Counter” c s dng. Thanh ghi này tr ti lnh ang thc hin. Khi cn thit, có th thay i ni dung thanh ghi i hng thc thi ca chng trình. Trong trng hp thông thng thì tng lnh mt ni tip nhau sc thc thi. Mt khái nim thông dng khác trong Java là trình biên dch “Just In Time-JIT”. Các trình duyt thông dng nh Netscape hay IE u có JIT bên trong tng tc thc thi chng trình Java. Mc ích chính ca JIT là chuyn tp lnh bytecode thành mã máy c th cho tng loi CPU. Các lnh này sc lu tr và s dng mi khi gi n. Trang 9 BÀI 2 NN TNG CA JAVA I. Tp ký t dùng trong java Mi ngôn ng nói chung, ngôn ng lp trình nói riêng u phi xây dng trên mt tp hp ch cái (hay còn gi là bng ch cái), các kí tc nhóm li theo mt cách nào ó to thành các t, các t li c nhóm li thành các câu (trong ngôn ng lp trình gi là câu lnh), mt chng trình máy tính tính là mt tp các câu lnh c b trí theo mt trt t mà ngi vit ra chúng sp t Ngôn ng java c c xây dng trên bng ch cái unicode, do vy ta có th dùng các kí t unicode t tên cho các nh danh. II. T khoá ca Java Mi ngôn ng lp trình có mt tp các t khoá, ngi lp trình phi s dng t khoá theo úng ngha mà ngi thit k ngôn ngã ra, ta không thnh ngha li ngha ca các t khoá, nh s dng nó t tên bin, hàm Sau ây là mt s t khoá thng gp: T khóa Mô t abstract S dng khai báo lp, phng thc tru tng boolean Kiu d liu logic break c s dng kt thúc vòng lp hoc cu trúc switch byte kiu d liu s nguyên case c s dng trong ln switch cast Cha c s dng ( dành cho tng lai) catch c s dng trong x lý ngoi l char kiu d liu ký t class Dùng khai báo lp const Cha c dùng continue c dùng trong vòng lp bt u mt vòng lp mi default c s dng trong lnh switch do c dùng trong vòng lp u kin sau double kiu d liu s thc else kh nng la chn th hai trong câu lnh if extends ch rng mt lp c k tha t mt lp khác false Gía tr logic final Dùng khai báo hng s, phng thc không th ghi è, hoc lp không th k tha finally phn cui ca khi x lý ngoi l float kiu s thc for Câu lnh lp goto Cha c dùng if Câu lnh la chn implements ch rng mt lp trin khai t mt giao din import Khai báo s dng th vin instanceof kim tra mt i tng có phi là mt th hin ca lp hay không interface s dng khai báo giao din long kiu s nguyên native Khai báo phng thc c vit bng ngông ng biên dch C++ new to mt i tng mi Trang 10 null mt i tng không tn ti package Dùng khai báo mt gói private c t truy xut protected c t truy xut public c t truy xut return Quay t phng thc v ch gi nó short kiu s nguyên static Dùng khai báo bin, thuc tính tnh super Truy xut n lp cha switch lnh la chn synchronized mt phng thc c quyn truy xut trên mt i tng this Ám ch chính lp ó throw Ném ra ngoi l throws Khai báo phng thc ném ra ngoi l true Giá tr logic try s dng bt ngoi l void Dùng khai báo mt phng thc không tr v giá tr while Dùng trong cu trúc lp III. nh danh (tên) Tên dùng xác nh duy nht mt i lng trong chng trình. Trong java tên c t theo quy tc sau: - Không trùng vi t khoá - Không bt u bng mt s, tên phi bt u bng kí t hoc bt u bng kí $,_ - Không cha du cách, các kí t toán hc nh +, -, *,/, % - Không trùng vi mt nh danh khác trong cùng mt phm vi Chú ý: - Tên nên t sao cho có th mô tc i tng trong thc t - Ging nh C/C++, java có phân bit ch hoa ch thng - Trong java ta có tht tên vi dài tu ý - Ta có th s dng các kí t ting vit t tên Quy c v t tên trong java Ta nên t tên bin, hng, lp, phng thc sao cho ngha ca chúng rõ ràng, d hiu, khoa hc và mang tính c l quc t. Do java có phân bit ch hoa, ch thng nên ta phi cn thn và chú ý. Sau ây là quy c t tên trong java (chú ý ây ch là quy c do vy không bt buc phi tuân theo quy c này): - i vi bin và phng thc thì tên bao gi cng bt u bng ký t thng, nu tên có nhiu t thì ghép li thì: ghép tt c các t thành mt, ghi tu tiên ch thng, vit hoa kí tu tiên ca mi t theo sau trong tên, ví d area, radius, readInteger… -i vi tên lp, giao din ta vit hoa các kí tu tiên ca mi t trong tên, ví d lp WhileTest, Circle - Tên hng bao gi cng vit hoa, nu tên gm nhiu t thì chúng c ni vi hau bi kí t ghch di ‘_’, ví d PI, MAX_VALUE IV. Cu trúc mt chng trình java - Mi ng dng Java bao gm mt hoc nhiu n v biên dch (mi n v biên dch là mt tp tin có phn m rng Java) - Mi n v biên dch bao gm mt hoc nhiu lp [...]... = op1 * op2 op1 = op1/ op2 op1 = op1 % op2 Trang 22 ng &= |= ^= = >>>= op1 &= op2 op1 |= op2 op1 ^= op2 op1 = op2 op1 >>>= op2 op1 = op1 & op2 op1 = op1 | op2 op1 = op1 ^ op2 op1 = op1 > op2 op1 = op1 >>> op2 8 Th t u tiờn c a cỏc phộp toỏn Th t u tiờn c a cỏc phộp toỏn xỏc nh trỡnh t tớnh toỏn giỏ tr c a m t bi u th c, java cú nh ng quy t c riờng xỏc nh trỡnh... op2 0 1 0 1 Result 0 1 1 1 Vớ d : 1101// 13 & 1100// 12 -1100// 12 1101// 13 | 1100// 12 -1101// 13 1101// 13 ^ 1100// 12 -0001// 1 ! 10101=01010 7 Toỏn t gỏn t t Gi ng nh C/C++ java c ng cú toỏn t gỏn, ta túm t t cỏc toỏn t gỏn qua b ng sau: Phộp gỏn += -= *= /= %= S d ng op1 += op2 op1 -= op2 op1 *= op2 op1/ = op2 op1 %= op2 ng op1 = op1 + op2 op1 = op1 - op2 op1 = op1 * op2 op1 = op1/ op2... op2 op1 * op2 op1/ op2 op1 % op2 Mụ t C ng op1 v iop2 Tr op1 cho op2 Nhõn op1 v i op2 chia op1 cho op2 Tớnh ph n d c a phộp chia op1 cho op2 3 Toỏn t t ng, gi m Gi ng nh ngụn ng C/C++, java c ng cú phộp toỏn t ng, gi m, ta cú th mụ t túm t t qua cỏc b ng sau: Phộp toỏn S d ng Phộp toỏn > >= < op2 op1 >= op2 op1 < op2 op1 > op1 >> op2 c n b ng cỏc bớt 0 D ch chuy n op1 sang trỏi op2 bit(gi nguyờn d u c a op1), > op1>>> op2 D ch chuy n op1 sang ph i op2 bit, op2 bit Sau õy l hỡnh minh ho phộp toỏn d ch bớt Trang 20 Vớ d : 13>>1=6 vỡ 13=110 12 do v y khi d ch ph i m t bit ta s c 11 02= 6 5 long -> float -> double 9 .2 Chuy n i ki u t ng minh chuy n i ki u m t cỏch t ng minh ta s d ng cỳ phỏp sau: (type) bi u_th c; khi g p cõu l nh ny java s tớnh toỏn giỏ tr c a bi u th c sau ú chuy n i ki u giỏ tr c a bi u th c thnh ki u type Vớ d : (int) 2. 5 * 2 = 4 (int) 2. 5 * 2. 5 = 5 (int) (2. 5 * 2. 5)... toỏn quan h bao gi c ng cho k t qu boolean, phộp toỏn quan h s so sỏnh 2 giỏ tr , nú xỏc nh m i quan h gi a chỳng, vớ d ! = s tr v true n u 2 toỏn h ng l khỏc nhau Ta túm t t cỏc phộp toỏn qua b ng sau: Nh n v giỏ tr true khi op1 l n h n op2 op1 l n h n ho c b ng op2 op1 nh h n op2 op1 nh h n ho c b ng op2 op1 b ng op2 op1 khỏc op2 Vớ d : S d ng cỏc phộp toỏn quan h public class RelationalDemo { public . mail API 20 7 III. Gi mail 21 2 IV. Nhn mail 21 5 V. Xoá mail 22 1 Chng 10: LP TRÌNH PHÂN TÁN VI 22 2 JAVA RMI ( REMOTE METHOD INVOKE) 22 2 I. RMI và lp trình phân tán i tng 22 2 II. Gi. sinh 22 3 III. Vai trò ca các lp trung gian 22 3 IV. Cài t i tng phân tán 22 4 Chng 11: JAVA JSP (JAVA SERVLET) 23 3 Chng 12: EJB (ENTERPRISE JAVA BEANS) 23 4 I. Tng quan v JavaBean 23 4 II > op2 op1 ln hn op2 >= op1 >= op2 op1 ln hn hoc bng op2 < op1 < op2 op1 nh hn op2 <= op1 <= op2 op1 nh hn hoc bng op2 == op1 == op2 op1 bng op2 != op1! = op2 op1