Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Tài liệu Java tổng hợp
PREMIUM
Số trang
249
Kích thước
2.2 MB
Định dạng
PDF
Lượt xem
1386

Tài liệu Java tổng hợp

Nội dung xem thử

Mô tả chi tiết

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à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 có 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 có 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 có 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 có 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 có 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á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ó có tұp

hӧp các lӋnh logic ÿӇ xác ÿӏnh các hoҥt ÿӝng cӫa máy tính và có mӝt hӋÿLӅu hành ҧo.

Ngѭӡi ta có thӇ xem nó nhѭ mӝt máy tính thұt (máy tính có phҫn cӭng ҧo, hӋÿLӅ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ӋÿLӅ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ӋÿLӅ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ӝ có 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, có 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 có 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 có 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 có 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 ÿLӅ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 có 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 có thӇ mô tҧÿѭӧc ÿӕi tѭӧng trong 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 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 có 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ӡ cNJng bҳt ÿҫu bҵng ký tӵ thѭӡng, nӃu tên

có 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ӡ cNJng 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 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 11

- Mӛi ӭng dөng ÿӝc lұp phҧi có duy nhҩt mӝt phѭѫng thӭc main (ÿLӇm bҳt ÿҫu cӫa ӭng

dөng)

- Mӛi ÿѫn vӏ biên dӏch có nhiӅu nhҩt mӝt lӟp ÿѭӧc khai báo là public, nӃu nhѭ trong

ÿѫn vӏ biên dӏch có 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 có 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

Wѭӧ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 có 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[])

{

//ÿLʀm bɬt ÿɤu cͧa chɉɇng trình

}

«

}

class l͛p1

{

«

}

class l͛p2

{

«

}

0͙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 có 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. Có 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 có 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) có 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

ĈӇ có 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)

+ CNJng 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

tUѭӡ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 có 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 cNJng 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 có 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 có 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 có thӇ viӃt chú thích trên nhiӅu dòng, vӟi cách chú thích

hai ta chӍ có thӇ chú thích trên mӝt dòng.

Chú ý: Trong java ta có thӇÿһt chú thích ӣÿâu?, câu trҧ lӡi là: ӣÿâu có thӇÿһt ÿѭӧc mӝt

dҩu cách thì ӣÿó có thӇÿһt chú thích.

Trang 15

VII. KiӇu dӳ liӋu

1. Các ki͋u dͷ li͏u nguyên thuͽ

Tӯ khoá Mô tҧ Kích cӥ Tӕi thiӇu Tӕi ÿa Lӟp bao

(kiӇu sӕ nguyên)

byte sӕ nguyên mӝt byte 8 bit -128 127 Byte

short sӕ nguyên ngҳn 16 bit -2

15 2

15

-1 Short

int sӕ nguyên 32 bit -2

31 2

31

-1 Integer

long sӕ nguyên dài 64 bit -2

63

-2

63

-1 Long

(kiӇu sӕ thӵc)

float kiӇu thӵc vӟi ÿӝ chính

xác ÿѫn

32 bit IEEE754 IEEE75

4

Float

double Double-precision

floating point

64 bit IEEE754 IEEE75

4

Double

(kiӇu khác)

char kiӇu kí tӵ 16 bit Unicode 0 Unicode

2

16

-1

Character

boolean kiӇu logic true hoһc false - - Boolean

void - - - - Void

Ĉһc ÿLӇm cӫa các biӃn có kiӇu nguyên thӫy là vùng nhӟ cӫa chúng ÿѭӧc cҩp phát ӣ phҫn

stack. Do vұy viӋc truy xuҩt vào mӝt biӃn kiӇu nguyên thӫy rҩt nhanh.

2. Ki͋u tham chi͇u

Trong Java có 3 kiӇu dӳ liӋu tham chiӃu

KiӇu dӳ liӋu Mô tҧ

Mҧng (Array) Tұp hӧp các dӳ liӋu cùng kiӇu.

Lӟp (Class) Là sӵ cài ÿһt mô tҧ vӅ mӝt ÿӕi tѭӧng trong bài toán.

Giao diӋn

(Interface)

Là mӝt lӟp thuҫn trӯu tѭӧng ÿѭӧc tҥo ra cho phép cài ÿһt

ÿa thӯa kӃ trong Java.

Ĉһc ÿLӇm cӫa các biӃn kiӇu tham chiӃu là nó chӭa ÿӏa chӍ cӫa ÿӕi tѭӧng mà nó trӓ

ÿӃn.

.ʀu nguyên thuͷ

kiɾu logic boolean Kiʀu s͑

Kiʀu s͑ thͱc

Kiʀu kí tͱ

Kiʀu s͑

boolean char byte short int long float doubl

e

Tải ngay đi em, còn do dự, trời tối mất!