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,24 MB
Nội dung
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 giảng Java Nhúm biờn so n: Hoàng Tr ng Th Nguy n Duy Tân Trang CL C Ch ng 1: CÁC KHÁI NI M C B N BÀI LÀM QUEN V I JAVA I L ch s java II Java em II M t s c tr ng c a java III Các ki u ng d ng Java IV Máy o Java (JVM-Java Virtual Machine) BÀI N N T NG C A JAVA I T p ký t dùng java II T khoá c a Java 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 ch ng trình 14 VII Ki u d li u 15 VII M t s phép toá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 tốn ki u kí t 26 BÀI 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 do-while 30 III C u trúc for 32 IV L nh break continue 34 Ch ng 2: L P TRÌNH H NG IT NG 37 BÀI 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 n vi c truy c p n thành viên c a m t l p 44 BÀI 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 kh i kh i u t nh 49 III D n d p: k t thúc thu rác 51 BÀI 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 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 II Yêu c u c a ph ng th c b i t i 53 BÀI K TH A (INHERITANCE) 54 I L p c s 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 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 L P C S TR U T NG 61 BÀI A HÌNH THÁI 62 BÀI GIAO DI N, L P TRONG, GÓI 63 I Giao di n 63 II L p 65 Bài 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 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 n 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 Java 124 III X lý s ki n Java 125 Ch ng L P TRÌNH C S D LI U 143 I T ng quan 143 II Các k u trình i u n JDBC 143 Trang III Các l p 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 gói java.net 164 L p URL URI 171 L p Socket 176 L p ServerSocket 182 L p DatagramSocket 185 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 l p trình phân tán i t ng 222 II G i ph ng th c t xa v n phát sinh 223 III Vai trò c a 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 Ch ng 1: CÁC KHÁI NI M C B N BÀI LÀM QUEN V I JAVA I L ch s java Java m t ngơn ng l p trình c Sun Microsystems gi i thi u vào tháng n m 1995 T ó, ã tr thành m t cơng c l p trình c a l p trình viên chuyên nghi p Java c xây d ng n n t ng c a C C++ Do v y s d ng cú pháp c a 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 s n ph m i n t dân d ng nh u video, tivi, n tho i, máy nh n tin Tuy nhiên v i s mãnh m c a Java ã n n i ti ng n m c v t s t ng t ng c a nhà thi t k Java kh i thu tên Oak- s i m c phía sau v n phịng c a nhà thi t k ông Jame Gosling, sau ông th y r ng ã có ngơn ng l p trình tên Oak r i, v y nhóm thi t k quy t nh i tên, “Java” tên c ch n, Java tên c a m t quán cafe mà nhóm thi t k java hay n ó u ng II Java em Java ngôn ng l p trình h ng i t ng, 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ông vi c mà ngơn ng khác có th làm c Java 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 t ng lo i máy c th nh ch ng trình thơng d ch JAVA M c tiêu c a nhà thi t k Java 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 b t c ph n c ng c th , th nên kh u hi u c a nhà thi t k Java “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 Internet Nó 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 u hành Java không ch dùng vi t ng d ng ch y n l hay m ng mà xây d ng trình i u n thi t b cho n tho i di ng, PDA, … II M t s c tr ng c a java 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 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 tr ng ph c t p, không c n thi t c a C C++ nh : thao tác tr , thao tác nh ngh a ch ng toán t (operator overloading),… Java không s d ng l nh “goto” c ng nh file header (.h) C u trúc “struct” “union” c ng c lo i b kh i Java Nên có ng i b o Java “C++ “, ng ý b o java C++ nh ng ã b i nh ng th ph c t p, không c n thi t H ng i t ng Có th nói java ngơn ng l p trình hồn tồn h ng i t ng, t t c c java u s v t, âu âu c ng s v t c l p v i h n n M c tiêu c a nhà thi t k java c l p v i h n n hay g i c l p ph n c ng h u hành ây 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 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 ph n c ng c a m t h máy ó c ng ch y úng t t c h máy khác M t ch ng trình ch ch y úng m t s h máy c th c g i ph thu c vào ph n c ng Tính c l p v i h u hành c hi u theo ngh a m t ch ng trình Java có th ch y c t t c h u hành M t ch ng trình ch ch y c m t s h i u hành c g i ph thu c vào h u hành Các ch ng trình vi t b ng java có th ch y h u h t h n n mà không c n ph i thay i gì, i u ã c nh ng ng i l p trình t cho m t kh u hi u vi t m t l n, ch y m i n , i u không th có v i ngơn ng l p trình khác i v i ch ng trình vi t b ng C, C++ ho c m t ngôn ng 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 ph thu c vào CPU hi n t i máy b n Nên mu n ch y lo i CPU khác, ph i biên d ch l i ch ng trình M nh m Java 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++ c h n ch Java, u làm ch ng trình rõ ràng, sáng s a, l i n.Java ki m tra lúc biên d ch c th i gian thông d ch 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 tr phép toán tr Java ki m tra t t c truy nh p n m ng, chu i th c thi m b o r ng truy nh p ó khơng ngồi gi i h n kích th c Trong mơi tr ng l p trình truy n th ng, l p trình viên ph i t c p phát b nh Tr c ch ng trình k t thúc ph i t gi i phóng b nh ã c p V n n y sinh l p trình viên qn 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 h i ph c sau l i H tr l p trình a n ây tính n ng cho phép vi t m t ch ng trình có nhi u n mã l nh c ch y song song v i V i java ta có th vi t 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 Java c ng r t ng gi n u khơng th có i v i m t s ngơn ng l p trình khác nh C/C++, pascal … Phân tán Java h tr y mơ hình tính tốn phân tán: mơ hình client/server, g i th t c t xa… H tr internet M c tiêu quan tr ng c a nhà thi t k java t o u ki n cho nhà phát tri n ng d ng có th vi t ch ng trình ng d ng internet web m t cách d dàng, v i java ta có th vi t ch ng trình s d ng 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 Thông d ch Các ch ng trình java c n c thơng d ch tr c 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 lên m i n n c th , u n java ch m ch p i ph n III Các ki u ng d ng Java V i Java ta có th xây d ng ki u ng d ng sau: ng d ng Applets Applet ch ng trình Java c t o s d ng Internet thông qua trình t h tr Java nh IE hay Netscape Applet c nhúng bên trang Web Khi trang Web hi n th trình t, Applet s c t i v th c thi t i trình t ng d ng dòng l nh (console) Các ch ng trình ch y t d u nh c l nh không s d ng giao di n h a Các thông tin nh p xu t c th hi n t i d u nh c l nh ng d ng h a ây ch ng trình Java ch y c l p cho phép ng i dùng t ng tác qua giao di n h a JSP/Servlet Java thích h p phát tri n ng d ng nhi u l p Applet ch ng trình h a ch y trình t t i máy tr m ng d ng Web, máy tr m g i yêu c u t i máy ch Máy ch x lý g i k t qu tr l i máy tr m Các Java API ch y máy ch ch u trách nhi m x lý t i máy ch tr l i yêu c u c a máy tr m Các Java API ch y máy ch m r ng kh n ng c a ng d ng Java API chu n Các ng d ng máy ch c g i JSP/Servlet ho c Applet t i máy ch X lý Form c a HTML cách s d ng n gi n nh t c a JSP/Servlet Chúng cịn có th c dùng x lý d li u, th c thi giao d ch th ng c th c thi thông qua máy ch Web ng d ng c s d li u Các ng d ng s d ng JDBC API k t n i t i c s d li u Chúng có th Applet hay ng d ng, nh ng Applet b gi i h n b i tính b o m t ng d ng m ng Java m t ngơn ng r t thích h p cho vi c xây d ng ng d ng m ng V i th vi n Socket b n có th l p trình v i hai giao th c: UDP TCP ng d ng nhi u t ng V i Java b n có th xây d ng phân tán nhi u t ng v i nhi u h tr khác nh : RMI, CORBA, EJB, Web Service ng d ng cho thi t b di ng Hi n ph n l n thi t b di ng nh : i n tho i di ng, máy tr giúp cá nhân… u h tr Java Th nên b n có th xây d ng ng d ng ch y thi t b di ng ây m t ki u ng d ng h p dãn, b i thi t b di ng ngày ph bi n nhu c u có ng d ng ch y ó, c bi t ng d ng mang tính ch t gi i trí nh game IV Máy o Java (JVM-Java Virtual Machine) Máy o m t ph n m m mơ ph ng m t máy tính th t (máy tính o) Nó có t p h p l nh logic xác nh ho t ng c a máy tính có m t h u hành o Ng i ta có th xem nh m t máy tính th t (máy tính có ph n c ng o, h u hành Trang o) Nó thi t l p l p tr u t ng cho: Ph n c ng bên d i, h u hành, mã ã biên d ch Trình biên d ch chuy n mã ngu n thành t p l nh c a máy o mà không ph thu c vào ph n c ng h u hành c th Trình thơng d ch m i máy s chuy n t p l nh thành ch ng trình th c thi Máy o t o m t môi tr ng bên th c thi l nh b ng cách: Ø N p file class Ø Qu n lý b nh Ø D n “rác” 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 thông tin sau: Ø Các “Frame” ch a tr ng thái c a 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 Khi JVM th c thi mã, m t ghi c c b có tên “Program Counter” c s d ng Thanh ghi tr t i l nh ang th c hi n Khi c n thi t, có th thay i n i dung ghi i h ng th c thi c a ch ng trình Trong tr ng h p thơng th ng t ng l nh m t n i ti p s c th c thi M t khái ni m thơng d ng khác Java trình biên d ch “Just In Time-JIT” Các trình t thơng d ng nh Netscape hay IE u có JIT bên t ng t c th c thi ch ng trình Java M c ích c a JIT chuy n t p l nh bytecode thành mã máy c th cho t ng lo i CPU Các l nh s c l u tr s d ng m i g i n Trang BÀI N N T NG C A JAVA I T p ký t dùng java M i ngơn ng nói chung, ngơn ng l p trình nói riêng u ph i xây d ng m t t p h p ch (hay g i b ng ch cái), kí t c nhóm l i theo m t cách ó t o thành t , t l i c nhóm l i thành câu (trong ngơn ng l p trình g i câu l nh), m t ch ng trình máy tính tính m t t p câu l nh c b trí theo m t tr t t mà ng i vi t chúng s p t Ngôn ng java c c xây d ng b ng ch unicode, v y ta có th dùng kí t unicode t tên cho nh danh II T khố c a Java M i ngơn ng l p trình có m t t p t khố, ng i l p trình ph i s d ng t khoá theo úng ngh a mà ng i thi t k ngôn ng ã ra, ta không th nh ngh a l i ngh a c a t khố, nh s d ng t tên bi n, hàm Sau ây m t s t khố th ng g p: T khóa Mơ t S d ng khai báo l p, ph ng th c tr u t ng abstract Ki u d li u logic boolean c s d ng k t thúc vòng l p ho c c u trúc switch break ki u d li u s nguyên byte c s d ng l n switch case Ch a c s d ng ( dành cho t ng lai) cast c s d ng x lý ngo i l catch ki u d li u ký t char Dùng khai báo l p class Ch a c dùng const c dùng vòng l p b t u m t vòng l p m i continue c s d ng l nh switch default c dùng vòng l p u ki n sau ki u d li u s th c double kh n ng l a ch n th hai câu l nh if else ch r ng m t l p c k th a t m t l p khác extends Gía tr logic false Dùng khai báo h ng s , ph ng th c không th ghi è, ho c l p không final th k th a finally ph n cu i c a kh i x lý ngo i l ki u s th c float Câu l nh l p for Ch a c dùng goto Câu l nh l a ch n if ch r ng m t l p tri n khai t m t giao di n implements Khai báo s d ng th vi n import ki m tra m t i t ng có ph i m t th hi n c a l p hay không instanceof s d ng khai báo giao di n interface ki u s nguyên long Khai báo ph ng th c c vi t b ng ngông ng biên d ch C++ native t o m t i t ng m i new Trang null package private protected public return short static super switch synchronized this throw throws true try void while m t i t ng không t n t i Dùng khai báo m t gói c t truy xu t c t truy xu t c t truy xu t Quay t ph ng th c v ch g i ki u s nguyên Dùng khai báo bi n, thu c tính t nh Truy xu t n l p cha l nh l a ch n m t ph ng th c c quy n truy xu t m t i t ng Ám ch l p ó Ném ngo i l Khai báo ph ng th c ném ngo i l Giá tr logic s d ng b t ngo i l Dùng khai báo m t ph ng th c không tr v giá tr Dùng c u trúc l p III nh danh (tên) Tên dùng xác nh nh t m t i l ng ch ng trình Trong java tên c t theo quy t c sau: - Khơng trùng v i t khố - Khơng b t u b ng m t s , tên ph i b t u b ng kí t ho c b t u b ng kí $,_ - Khơng ch a d u cách, kí t tốn h c nh +, -, *,/, % - Không trùng v i m t nh danh khác m t ph m vi Chú ý: - Tên nên t cho có th mô t c i t ng th c t - Gi ng nh C/C++, java có phân bi t ch hoa ch th ng - Trong java ta có th t tên v i dài tu ý - Ta có th s d ng kí t ti ng vi t t tên Quy c v t tên java Ta nên t tên bi n, h ng, l p, ph ng th c cho ngh a c a chúng rõ ràng, d hi u, khoa h c mang tính c l qu c t Do java có phân bi t ch hoa, ch th ng nên ta ph i c n th n ý Sau ây quy c t tên java (chú ý ây ch quy c v y không b t bu c ph i tuân theo quy c này): i v i bi n ph ng th c tên bao gi c ng b t u b ng ký t th ng, n u tên có nhi u t ghép l i thì: ghép t t c t thành m t, ghi t u tiên ch th ng, vi t hoa kí t u tiên c a m i t theo sau tên, ví d area, radius, readInteger… i v i tên l p, giao di n ta vi t hoa kí t u tiên c a m i t tên, ví d l p WhileTest, Circle - Tên h ng bao gi c ng vi t hoa, n u tên g m nhi u t chúng c n i v i hau b i kí t gh ch d i ‘_’, ví d PI, MAX_VALUE IV C u trúc m t ch ng trình java - M i ng d ng Java bao g m m t ho c nhi u n v biên d ch (m i m t t p tin có ph n m r ng Java) - M i n v biên d ch bao g m m t ho c nhi u l p Trang 10 n v biên d ch