Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
1,01 MB
Nội dung
Trang 5 Chng 1: CÁCKHÁ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 Trang 11 - Mi ng dng c lp phi có duy nht mt phng thc main (m bt u ca ng dng) - Mi n v biên dch có nhiu nht mt lp c khai báo là public, nu nh trong n v biên dch có lp public thì tên ca n v biên dch phi trùng vi tên ca lp public (ging ht nhau c ký t hoa ln ký t thng) - Bên trong thân ca mi lp ta khai báo các thuc tính, phng thc ca lp ó, Java là ngôn ng hng i tng, do vy mã lnh phi nm trong lp nào ó. Mi lnh u c kt thúc bng du chm phy “;”. - Trong ngôn ng Java, lp là mt n v mu có cha d liu và mã lnh liên quan n - mt thc th nào ó. Khi xây dng mt lp, thc cht bn ang to ra mt mt kiu d liu. Kiu d liu mi này c s dng xác nh các bin mà ta thng gi là “i ng”. i tng là các th hin (instance) ca lp. Tt c các i tng u thuc v mt lp có chung c tính và hành vi. Mi lp xác nh mt thc th, trong khi ó mi i tng là mt th hin thc s. - Khi bankhai báo mt lp, bn cn xác nh d liu và các phng thc ca lp ó. V c bn mt lp c khai báo nh sau: //Nhp khu các th vin import th_vin; //Xây dng các lp public class clsMain{ public static void main(String args[]) { //m bt u ca chng trình } } class lp1 { } class lp2 { } t n v biên dch là mt tp tin .java Trang 12 Cú pháp: class classname { var_datatype variablename; . <met_datatype> methodname (parameter_list){ .} } Trong ó: class - T khoá xác nh lp classname - Tên ca lp var_datatype - kiu d liu ca bin variablename - Tên ca bin met_datatype - Kiu d liu tr v ca phng thc methodname - Tên ca phng thc parameter_list – Các tham sc ca phng thc - Bn còn có thnh ngha mt lp bên trong mt lp khác. ây là lp xp lng nhau, các th hin (instance) ca lp này tn ti bên trong th hin ca mt lp che ph chúng. Nó chi phi vic truy nhp n các thành phn ca lp bao ph chúng. Có hai loi lp trong ó là lp trong tnh “static” và lp trong không tnh “non static” + Lp trong tnh (static) Lp trong tnh c nh ngha vi t khoá “static”. Lp trong tnh có th truy nhp vào các thành phn tnh ca lp ph nó. + Lp trong không tnh (non static) Lp bên trong (không phi là lp trong tnh) có th truy nhp tt c các thành phn ca lp bao nó, song không th ngc li. V. Chng trình JAVA u tiên có th biên dch và chy các chng trình java ta phi cài - JRE (Java Runtime Enviroment) môi trng thc thi ca java, nó bao gm: JVM (Java Virtual Machine) máy o java vì các chng trình java c thông dch và chy trên máy o java và tp các th vin cn thit chy các ng dng java. - B công c biên dch và thông dch JDK ca Sun Microsystem Sau khi cài t JDK (gi s th mc cài t là C:\JDK1.4) ta s nhn c mt cu trúc th mc nh sau: - biên dch mt chng trình java sang mã byte code ta dùng lnh C:\JDK1.4\BIN\javac TênTp.java - thông dch và chy chng trình ta s dng lnh Trang 13 C:\JDK1.4\BIN\java TênTp biên dch và chy chng trình Java n gin ta nên thit t hai bin môi trng “paht” và “classpath” nh sau: -i vi dòng WinNT: + R-Click vào My Computerà chn Propertiesà chn AdvancedàEnviroment Variables + Trong phn System variables chn new thêm bin môi trng mi, trong hp thoi hin ra gõ “classpath” vào ô Variable Name và “.;C:\jdk1.4\lib\tools.jar;C:\jdk1.4\lib\dt.jar;C:\jdk1.4\jre\lib\rt.jar” trong ô variable value (chú ý không gõ du “ vào, mc ích cho d nhìn mà thôi) + Cng trong phn System variables tìm n phn path trong danh sáchàchn edit sa li giá tr hin có, trong ô value ta thêm vào cui “;C:\jdk1.4\bin” Công vic t các bin môi trng ã xong, thy c tác dng ca các bin môi tng ta cn phi khi ng li máy -i vi dòng Win9X: M tp C:\Autoexec.bat sau ó thêm vào hai dòng sau: +classpath=.;C:\jdk1.4\lib\tools.jar;C:\jdk1.4\lib\dt.jar;C:\jdk1.4\jre\lib\rt.jar + path=…;c:\jdk1.4\bin Khi ng li máy thy c tác dng ca các bin môi trng này Ví du tiên: chng trình Hello World (chng trình khi chy s in ra màn hình li chào Hello World) Các bc: Trang 14 - M mt chng trình son tho vn bn h tr asciii, nh notepad, wordpad, EditPlus… và gõ vào các dòng sau: public class HelloWorld { public static void main(String[] args){ System.out.println("Hello World"); } } - Ghi li vi cái tên C:\HelloWorld.java (chú ý tên tp phi trùng vi tên lp, k c ch hoa ch thng, phn m rng là java) - M ca s DOS Prompt + Chuyn vào th mc C:\ + Gõ lnh javac HelloWorld.java biên dch chng trình, nu vic biên dch thành công (chng trình không có li cú pháp) thì ta s thu c tp HelloWorld.class trong cùng th mc, nu trong chng trình còn li cú pháp thì trong bc này ta s nhn c mt thông báo li và lúc này tp HelloWorld.class cng không c to ra + Gõ lnh java HelloWorld (chú ý không gõ phn m rng) chy chng trình HelloWorld. Sau khi thông dch và chy ta nhn c VI. Chú thích trong chng trình Trong java ta có 3 cách ghi chú thích Cách 1: s dng cp /* và */ ý ngha ca cp chú thích này ging nh ca C, C++ Cách 2: s dng cp // ý ngha ca cp chú thích này ging nh ca C, C++ Cách 3: s dng cp /** và */, ây là kiu chú thích tài liu (không có trong C/C++), nó dùng to ra tài liu chú thích cho chng trình. Vi cách th nht và cách ba ta có th vit chú thích trên nhiu dòng, vi cách chú thích hai ta ch có th chú thích trên mt dòng. Chú ý: Trong java ta có tht chú thích âu?, câu tr li là: âu có tht c mt du cách thì ó có tht chú thích. . 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. 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