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

Các khái niệm cơ bản

32 375 0
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

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, 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 ã 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 th gii quyt hu ht các công vic mà các ngôn ng khá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 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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 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” cng nh file header (.h). Cu trúc “struct” và “union” cng c loi b khi Java. Nên 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 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 cng 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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 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ó cng 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u hành c hiu theo ngha mt chng trình Java th chy c trên tt c các h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u hành. Các chng trình vit bng java 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, iu này là không th 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, u này làm chng trình rõ ràng, sáng sa, ít li 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 nhiu n mã lnh c chy song song vi nhau. Vi java ta th vit các chng trình 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 cng rt ng gin. u này là không th 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 u kin cho các nhà phát trin ng dng 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 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ông ngh java applet, v lp trình web phía máy khách java công ngh servlet/JSP, v lp trình phân tán java 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, 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 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ày chy t du nhc lnh và 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. 3. ng dng  ha ây là các 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. 4. JSP/Servlet Java thích hp  phát trin ng dng nhiu lp. Applet là chng trình  ha chy trên trình duyt ti máy trm.  các ng dng Web, máy trm gi yêu cu ti máy ch. Máy ch x lý và gi kt qu tr li máy trm. Các Java API chy trên máy ch chu trách nhim x lý ti máy ch và tr li các yêu cu ca máy trm. Các Java API chy trên máy ch này m rng kh nng ca các ng dng Java API chun. Các ng dng trên máy ch này c gi là các JSP/Servlet. hoc Applet ti máy ch. X lý Form ca HTML là cách s dng n gin nht ca JSP/Servlet. Chúng còn thc dùng  x lý d liu, thc thi các giao dch và thng c thc thi thông qua máy ch Web. 5. ng dng c s d liu Các ng dng này s dng JDBC API  kt ni ti c s d liu. Chúng th là Applet hay ng dng, nhng Applet b gii hn bi tính bo mt. 6. ng dng mng Java là mt ngôn ng rt thích hp cho vic xây dng các ng dng mng. Vi th vin Socket bn th lp trình vi hai giao thc: UDP và TCP. 7. ng dng nhiu tng Vi Java bn th xây dng phân tán nhiu tng vi nhiu h tr khác nhau nh: RMI, CORBA, EJB, Web Service 8. ng dng cho các thit b di ng Hin nay phn ln các 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 th xây dng các ng dng chy trên các thit b di ng này. ây là mt kiu ng dng khá hp dãn, bi vì các thit b di ng này ngày càng ph bin và nhu cu các ng dng chy trên ó, c bit là các 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 là mt phn mm mô phng mt máy tính tht (máy tính o). Nó tp hp các lnh logic  xác nh các hot ng ca máy tính và mt hu hành o. Ngi ta th xem nó nh mt máy tính tht (máy tính phn cng o, hu hành Trang 8 o). Nó thit lp các 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 các lnh ca máy o mà không ph thuc vào phn cng và hu hành 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ng trì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” 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. Khi JVM thc thi mã, mt thanh ghi cc b tên “Program Counter” c s dng. Thanh ghi này tr ti lnh ang thc hin. Khi cn thit, th thay i ni dung thanh ghi i hng thc thi ca chng trình. Trong trng hp thông thng thì tng lnh mt ni tip nhau sc thc thi. Mt khái nim thông dng khác trong Java là trình biên dch “Just In Time-JIT”. Các trình duyt thông dng nh Netscape hay IE u JIT bên trong  tng tc  thc thi chng trình Java. Mc ích chính ca JIT là chuyn tp lnh bytecode thành mã máy c th cho tng loi CPU. Các lnh này sc lu tr và s dng mi khi gi n. Trang 9 BÀI 2 NN TNG CA JAVA I. Tp ký t dùng trong 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 trên mt tp hp ch cái (hay còn gi là bng ch cái), các kí tc nhóm li theo mt cách nào ó  to thành các t, các t li c nhóm li thành các câu (trong ngôn ng lp trình gi là câu lnh), mt chng trình máy tính tính là mt tp các câu lnh c b trí theo mt trt t mà ngi vit ra chúng sp t Ngôn ng java c c xây dng trên bng ch cái unicode, do vy ta th dùng các kí t unicode t tên cho các nh danh. II. T khoá ca Java Mi ngôn ng lp trình mt tp các t khoá, 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 các t khoá, nh s dng nó t tên bin, hàm Sau ây là mt s t khoá thng gp: T khóa Mô t abstract S dng  khai báo lp, phng thc tru tng boolean Kiu d liu logic break c s dng  kt thúc vòng lp hoc cu trúc switch byte kiu d liu s nguyên case c s dng trong ln switch cast Cha c s dng ( dành cho tng lai) catch c s dng trong x lý ngoi l char kiu d liu ký t class Dùng  khai báo lp const Cha c dùng continue c dùng trong vòng lp  bt u mt vòng lp mi default c s dng trong lnh switch do c dùng trong vòng lp u kin sau double kiu d liu s thc else kh nng la chn th hai trong câu lnh if extends ch rng mt lp c k tha t mt lp khác false Gía tr logic final Dùng  khai báo hng s, phng thc không th ghi è, hoc lp không th k tha finally phn cui ca khi x lý ngoi l float kiu s thc for Câu lnh lp goto Cha c dùng if Câu lnh la chn implements ch rng mt lp trin khai t mt giao din import Khai báo s dng th vin instanceof kim tra mt i tng phi là mt th hin ca lp hay không interface s dng  khai báo giao din long kiu s nguyên native Khai báo phng thc c vit bng ngông ng biên dch C++ new to mt i tng mi Trang 10 null mt i tng không tn ti package Dùng  khai báo mt gói private c t truy xut protected c t truy xut public c t truy xut return Quay t phng thc v ch gi nó short kiu s nguyên static Dùng  khai báo bin, thuc tính tnh super Truy xut n lp cha switch lnh la chn synchronized mt phng thc c quyn truy xut trên mt i tng this Ám ch chính lp ó throw Ném ra ngoi l throws Khai báo phng thc ném ra ngoi l true Giá tr logic try s dng  bt ngoi l void Dùng  khai báo mt phng thc không tr v giá tr while Dùng trong cu trúc lp III. nh danh (tên) Tên dùng  xác nh duy nht mt i lng trong chng trình. Trong java tên c t theo quy tc sau: - Không trùng vi t khoá - 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, các kí t toán hc nh +, -, *,/, % - Không trùng vi mt nh danh khác trong cùng mt phm vi Chú ý: - Tên nên t sao cho th mô tc i tng trong thc t - Ging nh C/C++, java phân bit ch hoa ch thng - Trong java ta tht tên vi  dài tu ý - Ta th s dng các kí t ting vit t tên Quy c v t tên trong java Ta nên t tên bin, hng, lp, phng thc sao cho ngha ca chúng rõ ràng, d hiu, khoa hc và mang tính c l quc t. Do java phân bit ch hoa, ch thng nên ta phi cn thn và chú ý. Sau ây là quy c t tên trong java (chú ý ây ch là quy c do vy không bt buc phi tuân theo quy c này): - i vi bin và phng thc thì tên bao gi cng bt u bng ký t thng, nu tên nhiu t thì ghép li thì: ghép tt c cá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 trong tên, ví d area, radius, readInteger… -i vi tên lp, giao din ta vit hoa các kí tu tiên ca mi t trong 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 thì 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 n v biên dch là mt tp tin 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 11 - Mi ng dng c lp phi duy nht mt phng thc main (m bt u ca ng dng) - Mi n v biên dch nhiu nht mt lp c khai báo là public, nu nh trong n v biên dch lp public thì tên ca n v biên dch phi trùng vi tên ca lp public (ging ht nhau c ký t hoa ln ký t thng) - Bên trong thân ca mi lp ta khai báo các thuc tính, phng thc ca lp ó, Java là ngôn ng hng i tng, do vy mã lnh phi nm trong lp nào ó. Mi lnh u c kt thúc bng du chm phy “;”. - Trong ngôn ng Java, lp là mt n v mu cha d liu và mã lnh liên quan n - mt thc th nào ó. Khi xây dng mt lp, thc cht bn ang to ra mt mt kiu d liu. Kiu d liu mi này c s dng  xác nh các bin mà ta thng gi là “i ng”. i tng là các th hin (instance) ca lp. Tt c các i tng u thuc v mt lp chung c tính và hành vi. Mi lp xác nh mt thc th, trong khi ó mi i tng là mt th hin thc s. - Khi ban khai báo mt lp, bn cn xác nh d liu và các phng thc ca lp ó. V c bn mt lp c khai báo nh sau: //Nhp khu các th vin import th_vin; //Xây dng các lp public class clsMain{  public static void main(String args[]) { //m bt u ca chng trình }  } class lp1 {  } class lp2 {  } t n v biên dch là mt tp tin .java Trang 12 Cú pháp: class classname { var_datatype variablename; . <met_datatype> methodname (parameter_list){ .} } Trong ó: class - T khoá xác nh lp classname - Tên ca lp var_datatype - kiu d liu ca bin variablename - Tên ca bin met_datatype - Kiu d liu tr v ca phng thc methodname - Tên ca phng thc parameter_list – Các tham sc ca phng thc - Bn còn thnh ngha mt lp bên trong mt lp khác. ây là lp xp lng nhau, các th hin (instance) ca lp này tn ti bên trong th hin ca mt lp che ph chúng. Nó chi phi vic truy nhp n các thành phn ca lp bao ph chúng. hai loi lp trong ó là lp trong tnh “static” và lp trong không tnh “non static” + Lp trong tnh (static) Lp trong tnh c nh ngha vi t khoá “static”. Lp trong tnh th truy nhp vào các thành phn tnh ca lp ph nó. + Lp trong không tnh (non static) Lp bên trong (không phi là lp trong tnh) th truy nhp tt c các thành phn ca lp bao nó, song không th ngc li. V. Chng trình JAVA u tiên  th biên dch và chy các chng trình java ta phi cài - JRE (Java Runtime Enviroment) môi trng thc thi ca java, nó bao gm: JVM (Java Virtual Machine) máy o java vì các chng trình java c thông dch và chy trên máy o java và tp các th vin cn thit  chy các ng dng java. - B công c biên dch và thông dch JDK ca Sun Microsystem Sau khi cài t JDK (gi s th mc cài t là C:\JDK1.4) ta s nhn c mt cu trúc th mc nh sau: - biên dch mt chng trình java sang mã byte code ta dùng lnh C:\JDK1.4\BIN\javac TênTp.java - thông dch và chy chng trình ta s dng lnh Trang 13 C:\JDK1.4\BIN\java TênTp  biên dch và chy chng trình Java n gin ta nên thit t hai bin môi trng “paht” và “classpath” nh sau: -i vi dòng WinNT: + R-Click vào My Computerà chn Propertiesà chn AdvancedàEnviroment Variables + Trong phn System variables chn new  thêm bin môi trng mi, trong hp thoi hin 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õ du “ vào, mc ích  cho d nhìn mà thôi) + Cng trong phn System variables tìm n phn path trong danh sáchàchn edit  sa li giá tr hin có, trong ô value ta thêm vào cui “;C:\jdk1.4\bin” Công vic t các bin môi trng ã xong,  thy c tác dng ca các bin môi tng ta cn phi khi ng li máy -i vi dòng Win9X: M tp 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 Khi ng li máy  thy c tác dng ca các bin môi trng này Ví du tiên: chng trình Hello World (chng trình khi chy s in ra màn hình li chào Hello World) Các bc: Trang 14 - M mt chng trình son tho vn bn 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 li vi cái tên C:\HelloWorld.java (chú ý tên tp phi trùng vi tên lp, k c ch hoa ch thng, phn m rng là java) - M ca s DOS Prompt + Chuyn vào th mc C:\ + Gõ lnh javac HelloWorld.java  biên dch chng trình, nu vic biên dch thành công (chng trình không li cú pháp) thì ta s thu c tp HelloWorld.class trong cùng th mc, nu trong chng trình còn li cú pháp thì trong bc này ta s nhn c mt thông báo li và lúc này tp HelloWorld.class cng không c to ra + Gõ lnh java HelloWorld (chú ý không gõ phn m rng)  chy chng trình HelloWorld. Sau khi thông dch và chy ta nhn c VI. Chú thích trong chng trình Trong java ta 3 cách  ghi chú thích Cách 1: s dng cp /* và */ ý ngha ca cp chú thích này ging nh ca C, C++ Cách 2: s dng cp // ý ngha ca cp chú thích này ging nh ca C, C++ Cách 3: s dng cp /** và */, ây là kiu chú thích tài liu (không trong C/C++), nó dùng  to ra tài liu chú thích cho chng trình. Vi cách th nht và cách ba ta th vit chú thích trên nhiu dòng, vi cách chú thích hai ta ch th chú thích trên mt dòng. Chú ý: Trong java ta tht chú thích âu?, câu tr li là: âu tht c mt du cách thì ó tht chú thích. . 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. 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

Ngày đăng: 29/09/2013, 09:20

Xem thêm: Các khái niệm cơ bản

HÌNH ẢNH LIÊN QUAN

Ví du tiên: ch ng trình HelloWorld (ch ng trình khi ch ys in ra màn hình li chào Hello World) - Các khái niệm cơ bản
du tiên: ch ng trình HelloWorld (ch ng trình khi ch ys in ra màn hình li chào Hello World) (Trang 9)

TỪ KHÓA LIÊN QUAN

w