java - co java mail

249
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

Upload: trung-hieu

Post on 26-Dec-2015

164 views

Category:

Documents


0 download

TRANSCRIPT

  • Trang 1

    Tr-ng i hc s- phm k thut h-ng ynkhoa cng ngh thng tin---------------ooo------------------

    c-ng bi ging JavaNhm bin so?n: 1. Hong Tr?ng Th?

    2. Nguy?n Duy Tn

  • Trang 2

    ??C L?CCh??ng 1: CC KHI NI?M C? B?N.................................................................. 5

    BI 1. LM QUEN V?I JAVA................................................................................... 5I. L?ch s? java ........................................................................................................... 5II. Java em l ai ......................................................................................................... 5II. M?t s????c tr?ng c?a java ..................................................................................... 5III. Cc ki?u ?ng d?ng Java........................................................................................ 7IV. My ?o Java (JVM-Java Virtual Machine) .......................................................... 7

    BI 2 N?N T?NG C?A JAVA ................................................................................ 9I. T?p k t? dng trong java ...................................................................................... 9II. T? kho c?a Java .................................................................................................. 9III. ??nh danh (tn) ................................................................................................. 10IV. C?u trc m?t ch??ng trnh java ......................................................................... 10V. Ch??ng trnh JAVA ??u tin .............................................................................. 12VI. Ch thch trong ch??ng trnh ............................................................................ 14VII. Ki?u d? li?u ..................................................................................................... 15VII. M?t s? php ton trn ki?u d? li?u nguyn thu? ............................................... 17IX. Ton t? chuy?n ki?u .......................................................................................... 23X. Cc hm ton h?c ............................................................................................... 24XI. Cc php ton trn ki?u k t? ............................................................................. 26

    BI 3. ?I?U KHI?N LU?NG CH??NG TRNH .................................................... 27I. C?u trc r? nhnh ................................................................................................. 27II. C?u trc l?p while v do-while ........................................................................... 30III. C?u trc for ....................................................................................................... 32IV. L?nh break v continue ..................................................................................... 34

    Ch??ng 2: L?P TRNH H??NG ??I T??NG ......................................................... 37BI 1. ??NH NGH?A L?P ....................................................................................... 38

    I. Khai bo l?p ........................................................................................................ 38II. Chi ti?t v? khai bo m?t ph??ng th?c ................................................................. 40III. T? kho this ...................................................................................................... 43IV. T? kho super ................................................................................................... 43V. S? d?ng l?p ........................................................................................................ 44VI. ?i?u khi?n vi?c truy c?p ??n cc thnh vin c?a m?t l?p .................................. 44

    BI 2. KH?I ??U V D?N D?P ............................................................................ 47I. Ph??ng th?c t?o d?ng (constructor) ..................................................................... 47II. Kh?i kh?i ??u v danh v kh?i kh?i ??u t?nh ...................................................... 49III. D?n d?p: k?t thc v thu rc .............................................................................. 51

    BI 3. CC THNH PH?N T?NH ........................................................................... 52I. Thu?c tnh t?nh .................................................................................................... 52II. Ph??ng th?c t?nh ................................................................................................ 52

    BI 4. N?P CH?NG PH??NG TH?C .................................................................. 53I. Khi ni?m v? ph??ng th?c b?i t?i ........................................................................ 53

  • Trang 3

    II. Yu c?u c?a cc ph??ng th?c b?i t?i ................................................................... 53BI 5. K? TH?A (INHERITANCE) ........................................................................ 54

    I. L?p c? s? v l?p d?n xu?t .................................................................................... 54II. Cch xy d?ng l?p d?n xu?t ................................................................................ 54III. Th?a k? cc thu?c tnh ...................................................................................... 54IV. Th?a k? ph??ng th?c ........................................................................................ 54V. Kh?i ??u l?p c? s? ............................................................................................. 54VI. Ghi ? ph??ng th?c ( Override ) ....................................................................... 56VI. Thnh ph?n protected ........................................................................................ 56VII. T? kho final ................................................................................................... 56

    BI 6. L?P C? S? TR?U T??NG ......................................................................... 61BI 7. ?A HNH THI ............................................................................................ 62BI 8. GIAO DI?N, L?P TRONG, GI ................................................................... 63

    I. Giao di?n ............................................................................................................. 63II. L?p trong ............................................................................................................ 65

    Bi 9. M?NG, XU K T?, T?P H?P ................................................................... 67I. M?ng ................................................................................................................... 67II. Xu k t? ............................................................................................................ 70III. L?p StringTokenizer ......................................................................................... 75IV. M?t s? l?p c? b?n c?a Java ............................................................................... 77V. Cc l?p t?p h?p .................................................................................................. 83

    Ch??ng 3: X? L NGO?I L? ............................................................................ 92I. M?c ?ch c?a vi?c x? l ngo?i l? .......................................................................... 92II. M hnh s? l ngo?i l? c?a java .......................................................................... 92III. ??c t? ngo?i l? ................................................................................................... 93III. Nm ra ngo?i l? ................................................................................................. 93IV. B?t ngo?i l? ....................................................................................................... 93V. Kh?i finally ...................................................................................................... 95VI. M?t s? l?p ngo?i l? chu?n c?a Java ................................................................... 96

    Ch??ng 4: L?P TRNH ?A TUY?N ........................................................................ 97I. Cc ki?n th?c lin quan ........................................................................................ 97II. L?p trnh ?a tuy?n trong Java .............................................................................. 98

    Ch??ng 5: NH?P XU?T (Input/Output) ............................................................... 104I. L?p lu?ng .......................................................................................................... 105II. L?p File ............................................................................................................ 113

    Ch??ng 6: L?P TRNH ?? HO? AWT ................................................................ 120I. Gi?i thi?u v? h? th?ng ?? ho? c?a Java .............................................................. 120II. Trnh qu?n l hi?n th? trong Java ...................................................................... 124III. X? l s? ki?n trong Java .................................................................................. 125

    Ch??ng 7 L?P TRNH C? S? D? LI?U .............................................................. 143I. T?ng quan 143II. Cc k?u trnh ?i?u khi?n JDBC......................................................................... 143

  • Trang 4

    III. Cc l?p trong JDBC API dng ?? truy c?p CSDL ........................................... 146IV. K?t n?i CSDL v?i JDBC ................................................................................. 147V. T??ng tc v?i CSDL ........................................................................................ 152VI. Qu?n l giao d?ch ............................................................................................ 160

    Ch??ng 8: L?P TRNH SOCKET .............................................................................. 164I. Cc ki?n th?c lin quan ...................................................................................... 164II. Kh?o st m?t s? l?p trong gi java.net .............................................................. 1642. L?p URL v URI .............................................................................................. 1713. L?p Socket........................................................................................................ 1764. L?p ServerSocket.............................................................................................. 1825. L?p DatagramSocket ......................................................................................... 1856. L?p DatagramPacket ......................................................................................... 185III. TCP Socket ..................................................................................................... 185

    Ch??ng 9: JAVA MAIL .............................................................................................. 205I. Cc khi ni?m MAIL ......................................................................................... 205II. G?i mail v?i th? vi?n c s?n c?a java ............................................................... 206III. Gi?i thi?u java mail API .................................................................................. 207III. G?i mail .......................................................................................................... 212IV. Nh?n mail ....................................................................................................... 215V. Xo mail ........................................................................................................... 221

    Ch??ng 10: L?P TRNH PHN TN V?I ................................................................. 222JAVA RMI ( REMOTE METHOD INVOKE)............................................................. 222

    I. RMI v l?p trnh phn tn ??i t??ng .................................................................. 222II. G?i ph??ng th?c t? xa v cc v?n ?? pht sinh ................................................. 223III. Vai tr c?a cc l?p trung gian .......................................................................... 223IV. Ci ??t ??i t??ng phn tn .............................................................................. 224

    Ch??ng 11: JAVA JSP (JAVA SERVLET) ................................................................. 233Ch??ng 12: EJB (ENTERPRISE JAVA BEANS) ........................................................ 234

    I. T?ng quan v? JavaBean ..................................................................................... 234II. Xy d?ng thnh ph?n JavaBean ........................................................................ 234III. Tm hi?u Instrospector ..................................................................................... 247IV. ?ng gi JavaBean ......................................................................................... 249

  • Trang 5

    Ch??ng 1: CC KHI NI?M C? B?N

    BI 1. LM QUEN V?I JAVAI. L?ch s? java

    Java l m?t ngn ng? l?p trnh ???c Sun Microsystems gi?i thi?u vo thng 6 n?m1995. T???, n ? tr? thnh m?t cng c? l?p trnh c?a cc l?p trnh vin chuyn nghi?p.Java ???c xy d?ng trn n?n t?ng c?a C v C++. Do v?y n s? d?ng cc c php c?a C vcc ??c tr?ng h??ng ??i t??ng c?a C++.

    Ban ??u Java ???c thi?t k???? lm ngn ng? vi?t ch??ng trnh cho cc s?n ph?m?i?n t? dn d?ng nh????u video, tivi, ???n tho?i, my nh?n tin.. . Tuy nhin v?i s? mnhm? c?a Java ? khi?n n n?i ti?ng ??n m?c v??t ra ngoi s? t??ng t??ng c?a cc nh thi?tk? ra n.

    Java kh?i thu? tn l Oak- l cy s?i m?c ? pha sau v?n phng c?a nh thi?t k?chnh ng Jame Gosling, sau ny ng th?y r?ng ? c ngn ng? l?p trnh tn Oak r?i, dov?y nhm thi?t k? quy?t ??nh ??i tn, Java l ci tn ???c ch?n, Java l tn c?a m?tqun cafe m nhm thi?t k? java hay ??n ? u?ng.II. Java em l ai

    Java l ngn ng? l?p trnh h??ng ??i t??ng, do v?y khng th? dng Java ?? vi?tm?t ch??ng trnh h??ng ch?c n?ng. Java c th? gi?i quy?t h?u h?t cc cng vi?c m ccngn ng? khc c th? lm ???c.

    Java l ngn ng? v?a bin d?ch v?a thng d?ch. ??u tin m ngu?n ???c bin d?chb?ng cng c? JAVAC ?? chuy?n thnh d?ng ByteCode. Sau ? ???c th?c thi trn t?nglo?i my c? th? nh? ch??ng trnh thng d?ch JAVA. M?c tiu c?a cc nh thi?t k? Java lcho php ng??i l?p trnh vi?t ch??ng trnh m?t l?n nh?ng c th? ch?y trn b?t c? ph?nc?ng c? th?, th? nn kh?u hi?u c?a cc nh thi?t k? Java l Write One, Run Any Where.

    Ngy nay, Java ???c s? d?ng r?ng ri ?? vi?t ch??ng trnh ch?y trn Internet. N lngn ng? l?p trnh h??ng ??i t??ng ??c l?p thi?t b?, khng ph? thu?c vo h?????u hnh.Java khng ch? dng ?? vi?t cc ?ng d?ng ch?y ??n l? hay trong m?ng m cn ?? xyd?ng cc trnh ?i?u khi?n thi?t b? cho ???n tho?i di ??ng, PDA, II. M?t s????c tr?ng c?a java1???n gi?n

    Nh?ng ng??i thi?t k? mong mu?n pht tri?n m?t ngn ng? d? h?c v quen thu?cv?i ?a s? ng??i l?p trnh. Java t?a nh? C++, nh?ng ? l??c b???i cc ??c tr?ng ph?c t?p,khng c?n thi?t c?a C v C++ nh?: thao tc con tr?, thao tc ??nh ngh?a ch?ng ton t?(operator overloading), Java khng s? d?ng l?nh goto c?ng nh? file header (.h). C?utrc struct v union c?ng ???c lo?i b? kh?i Java. Nn 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, khng c?n thi?t.2. H??ng ??i t??ng

    C th? ni java l ngn ng? l?p trnh hon ton 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 tiu chnh c?a cc nh thi?t k? java l ??c l?p v?i h? n?n hay cn g?i l ??cl?p ph?n c?ng v h?????u hnh. ?y l kh? n?ng m?t ch??ng trnh ???c vi?t t?i m?t mynh?ng c th? ch?y ???c b?t k???u

  • Trang 6

    Tnh ??c l?p v?i ph?n c?ng ???c hi?u theo ngh?a m?t ch??ng trnh Java n?u ch?y?ng trn ph?n c?ng c?a m?t h? my no ? th n c?ng ch?y ?ng trn t?t c? cc h? mykhc. M?t ch??ng trnh ch? ch?y ?ng trn m?t s? h? my c? th?????c g?i l ph? thu?cvo ph?n c?ng.

    Tnh ??c l?p v?i h?????u hnh ???c hi?u theo ngh?a m?t ch??ng trnh Java c th?ch?y ???c trn t?t c? cc h?????u hnh. M?t ch??ng trnh ch? ch?y ???c trn m?t s? h??i?u hnh ???c g?i l ph? thu?c vo h?????u hnh.

    Cc ch??ng trnh vi?t b?ng java c th? ch?y trn h?u h?t cc h? n?n m khng c?nph?i thay ??i g, ?i?u ny ? ???c nh?ng ng??i l?p trnh ??t cho n m?t kh?u hi?u ?vi?tm?t l?n, ch?y m?i n???, ?i?u ny l khng th? c v?i cc ngn ng? l?p trnh khc.

    ??i v?i cc ch??ng trnh vi?t b?ng C, C++ ho?c m?t ngn ng? no khc, trnh bind?ch s? chuy?n t?p l?nh thnh m my (machine code), hay l?nh c?a b? vi x? l. Nh?ngl?nh ny ph? thu?c vo CPU hi?n t?i trn my b?n. Nn khi mu?n ch?y trn lo?i CPUkhc, chng ta ph?i bin d?ch l?i ch??ng trnh.4. M?nh m?

    Java l ngn ng? yu c?u ch?t ch? v? ki?u d? li?u, vi?c p ki?u t????ng b?a bi c?aC, C++ nay ???c h?n ch? trong Java, ???u ny lm ch??ng trnh r rng, sng s?a, t l?i??n.Java ki?m tra lc bin d?ch v c? trong th?i gian thng d?ch v v?y Java lo?i b? m?tm?t s? lo?i l?i l?p trnh nh?t ??nh.Java khng s? d?ng con tr? v cc php ton con tr?.Java ki?m tra t?t c? cc truy nh?p ??n m?ng, chu?i khi th?c thi ?????m b?o r?ng cc truynh?p ? khng ra ngoi gi?i h?n kch th??c.

    Trong cc mi tr??ng l?p trnh truy?n th?ng, l?p trnh vin ph?i t? mnh c?p phtb? nh?. Tr??c khi ch??ng trnh k?t thc th ph?i t? gi?i phng b? nh??? c?p. V?n ?? n?ysinh khi l?p trnh vin qun gi?i phng b? nh??? xin c?p tr??c ?. Trong ch??ng trnhJava, l?p trnh vin khng ph?i b?n tm ??n vi?c c?p pht b? nh?. Qa trnh c?p pht, gi?iphng ???c th?c hi?n t????ng, nh? d?ch v? thu nh?t nh?ng ??i t??ng khng cn s? d?ngn?a (garbage collection).

    ?? ch? b?y l?i c?a Java gip ??n gi?n ha qa trnh x? l l?i v h?i ph?c sau l?i.5. H? tr? l?p trnh ?a tuy?n

    ?y l tnh n?ng cho php vi?t m?t ch??ng trnh c nhi?u ???n m l?nh ???c ch?ysong song v?i nhau. V?i java ta c th? vi?t cc ch??ng trnh c kh? n?ng ch?y song songm?t cch d? dng, h?n th? n?a vi?c ??ng b? ti nguyn dng chung trong Java c?ng r?t??ng gi?n. ???u ny l khng th? c ??i v?i m?t s? ngn ng? l?p trnh khc nh? C/C++,pascal 6. Phn tn

    Java h? tr????y ?? cc m hnh tnh ton phn tn: m hnh client/server, g?i th?t?c t? xa7. H? tr? internet

    M?c tiu quan tr?ng c?a cc nh thi?t k? java l t?o ???u ki?n cho cc nh pht tri?n?ng d?ng c th? vi?t cc ch??ng trnh ?ng d?ng internet v web m?t cch d? dng, v?ijava ta c th? vi?t cc ch??ng trnh s? d?ng cc giao th?c TCP, UDP m?t cch d? dng, v?l?p trnh web pha my khch java c cng ngh? java applet, v? l?p trnh web pha mykhch java c cng ngh? servlet/JSP, v? l?p trnh phn tn java c cng ngh? RMI,CORBA, EJB, Web Service.

  • Trang 7

    8. Thng d?chCc ch??ng trnh java c?n ???c thng d?ch tr??c khi ch?y, m?t ch??ng trnh java

    ???c bin d?ch thnh m byte code m ??c l?p v?i h? n?n, ch??ng trnh thng d?ch java s?nh x? m byte code ny ln m?i n?n c? th?, ???u ny khi?n java ch?m ch?p ?i ph?n no.III. Cc ki?u ?ng d?ng Java

    V?i Java ta c th? xy d?ng cc ki?u ?ng d?ng sau:1. ?ng d?ng Applets

    Applet l ch??ng trnh Java ???c t?o ra ?? s? d?ng trn Internet thng qua cc trnhduy?t h? tr? Java nh? IE hay Netscape. Applet ???c nhng bn trong trang Web. Khitrang Web hi?n th? trong trnh duy?t, Applet s?????c t?i v? v th?c thi t?i trnh duy?t.2. ?ng d?ng dng l?nh (console)

    Cc ch??ng trnh ny ch?y t? d?u nh?c l?nh v khng s? d?ng giao di?n??? h?a.Cc thng 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 cc ch??ng trnh Java ch?y ??c l?p cho php ng??i dng t??ng tc qua giaodi?n ?? h?a.4. JSP/Servlet

    Java thch h?p ?? pht tri?n ?ng d?ng nhi?u l?p. Applet l ch??ng trnh ?? h?ach?y trn trnh duy?t t?i my tr?m. ? cc ?ng d?ng Web, my tr?m g?i yu c?u t?i mych?. My ch? x? l v g?i k?t qu? tr? l?i my tr?m. Cc Java API ch?y trn my ch? ch?utrch nhi?m x? l t?i my ch? v tr? l?i cc yu c?u c?a my tr?m. Cc Java API ch?y trnmy ch? ny m? r?ng kh? n?ng c?a cc ?ng d?ng Java API chu?n. Cc ?ng d?ng trn mych? ny ???c g?i l cc JSP/Servlet. ho?c Applet t?i my ch?. X? l Form c?a HTML lcch s? d?ng ??n gi?n nh?t c?a JSP/Servlet. Chng cn c th?????c dng ?? x? l d? li?u,th?c thi cc giao d?ch v th??ng ???c th?c thi thng qua my ch? Web.5. ?ng d?ng c? s? d? li?u

    Cc ?ng d?ng ny s? d?ng JDBC API ?? k?t n?i t?i c? s? d? li?u. Chng c th? lApplet hay ?ng d?ng, nh?ng Applet b? gi?i h?n b?i tnh b?o m?t.6. ?ng d?ng m?ng

    Java l m?t ngn ng? r?t thch h?p cho vi?c xy d?ng cc ?ng d?ng m?ng. V?i th?vi?n Socket b?n c th? l?p trnh v?i hai giao th?c: UDP v TCP.7. ?ng d?ng nhi?u t?ng

    V?i Java b?n c th? xy d?ng phn tn nhi?u t?ng v?i nhi?u h? tr? khc nhau nh?:RMI, CORBA, EJB, Web Service8. ?ng d?ng cho cc thi?t b? di ??ng

    Hi?n nay ph?n l?n cc thi?t b? di ??ng nh?: ?i?n tho?i di ??ng, my tr? gip cnhn ??u h? tr? Java. Th? nn b?n c th? xy d?ng cc ?ng d?ng ch?y trn cc thi?t b?di ??ng ny. ?y l m?t ki?u ?ng d?ng kh h?p dn, b?i v cc thi?t b? di ??ng ny ngycng ph? bi?n v nhu c?u c cc ?ng d?ng ch?y trn ?, ??c bi?t l cc ?ng d?ng mangtnh ch?t gi?i tr nh? gameIV. My ?o Java (JVM-Java Virtual Machine)

    My ?o l m?t ph?n m?m m ph?ng m?t my tnh th?t (my tnh ?o). N c t?ph?p cc l?nh logic ?? xc ??nh cc ho?t ??ng c?a my tnh v c m?t h?????u hnh ?o.Ng??i ta c th? xem n nh? m?t my tnh th?t (my tnh c ph?n c?ng ?o, h?????u hnh

  • Trang 8

    ?o). N thi?t l?p cc l?p tr?u t??ng cho: Ph?n c?ng bn d??i, h?????u hnh, m ? bind?ch.

    Trnh bin d?ch chuy?n m ngu?n thnh t?p cc l?nh c?a my ?o m khng ph? thu?cvo ph?n c?ng v h?????u hnh c? th?. Trnh thng d?ch trn m?i my s? chuy?n t?p l?nhny thnh ch??ng trnh th?c thi. My ?o t?o ra m?t mi tr??ng bn trong ?? th?c thi ccl?nh b?ng cch: N?p cc file .class Qu?n l b? nh? D?n rc

    Vi?c khng nh?t qun c?a ph?n c?ng lm cho my ?o ph?i s? d?ng ng?n x?p ?? l?u tr?cc thng tin sau: Cc Frame ch?a cc tr?ng thi c?a cc ph??ng th?c. Cc ton h?ng c?a m bytecode. Cc tham s? truy?n cho ph??ng th?c. Cc bi?n c?c b?.Khi JVM th?c thi m, m?t thanh ghi c?c b? c tn Program Counter ???c s? d?ng.

    Thanh ghi ny tr? t?i l?nh ?ang th?c hi?n. Khi c?n thi?t, c th? thay ??i n?i dung thanhghi ?????i h??ng th?c thi c?a ch??ng trnh. Trong tr??ng h?p thng th??ng th t?ng l?nhm?t n?i ti?p nhau s?????c th?c thi.M?t khi ni?m thng d?ng khc trong Java l trnh bin d?ch Just In Time-JIT. Cctrnh duy?t thng d?ng nh? Netscape hay IE ??u c JIT bn trong ?? t?ng t?c ?? th?c thich??ng trnh Java. M?c ?ch chnh c?a JIT l chuy?n t?p l?nh bytecode thnh m my c?th? cho t?ng lo?i CPU. Cc l?nh ny s?????c l?u tr? v s? d?ng m?i khi g?i ??n.

  • Trang 9

    BI 2 N?N T?NG C?A JAVAI. T?p k t? dng trong java

    M?i ngn ng? ni chung, ngn ng? l?p trnh ni ring ??u ph?i xy d?ng trn m?tt?p h?p ch? ci (hay cn g?i l b?ng ch? ci), cc k t?????c nhm l?i theo m?t cch no? ?? t?o thnh cc t?, cc t? l?i ???c nhm l?i thnh cc cu (trong ngn ng? l?p trnhg?i l cu l?nh), m?t ch??ng trnh my tnh tnh l m?t t?p cc cu l?nh ???c b? tr theom?t tr?t t? m ng??i vi?t ra chng s?p ??t

    Ngn ng? java ???c ???c xy d?ng trn b?ng ch? ci unicode, do v?y ta c th?dng cc k t? unicode ?????t tn cho cc ??nh danh.II. T? kho c?a Java

    M?i ngn ng? l?p trnh c m?t t?p cc t? kho, ng??i l?p trnh ph?i s? d?ng t?kho theo ?ng ngh?a m ng??i thi?t k? ngn ng??? ?? ra, ta khng th????nh ngh?a l?ingh?a c?a cc t? kho, nh? s? d?ng n ?????t tn bi?n, hm..Sau ?y l m?t s? t? kho th??ng g?p:

    T? kha M t?abstract S? d?ng ?? khai bo l?p, ph??ng th?c tr?u t??ngboolean Ki?u d? li?u logicbreak ???c s? d?ng ?? k?t thc vng l?p ho?c c?u trc switchbyte ki?u d? li?u s? nguyncase ???c s? d?ng trong l?n switchcast Ch?a ???c s? d?ng (?? dnh cho t??ng lai)catch ???c s? d?ng trong x? l ngo?i l?char ki?u d? li?u k t?class Dng ?? khai bo l?pconst Ch?a ???c dngcontinue ???c dng trong vng l?p ?? b?t ??u m?t vng l?p m?idefault ???c s? d?ng trong l?nh switchdo ???c dng trong vng l?p ???u ki?n saudouble ki?u d? li?u s? th?celse kh? n?ng l?a ch?n th? hai trong cu l?nh ifextends ch? r?ng m?t l?p ???c k? th?a t? m?t l?p khcfalse Ga tr? logicfinal Dng ?? khai bo h?ng s?, ph??ng th?c khng th? ghi ?, ho?c l?p khng

    th? k? th?afinally ph?n cu?i c?a kh?i x? l ngo?i l?float ki?u s? th?cfor Cu l?nh l?pgoto Ch?a ???c dngif Cu l?nh l?a ch?nimplements ch? r?ng m?t l?p tri?n khai t? m?t giao di?nimport Khai bo s? d?ng th? vi?ninstanceof ki?m tra m?t ??i t??ng c ph?i l m?t th? hi?n c?a l?p hay khnginterface s? d?ng ?? khai bo giao di?nlong ki?u s? nguynnative Khai bo ph??ng th?c ???c vi?t b?ng ngng ng? bin d?ch C++new t?o m?t ??i t??ng m?i

  • Trang 10

    null m?t ??i t??ng khng t?n t?ipackage Dng ?? khai bo m?t giprivate ??c t? truy xu?tprotected ??c t? truy xu?tpublic ??c t? truy xu?treturn Quay t? ph??ng th?c v? ch? g?i nshort ki?u s? nguynstatic Dng ?? khai bo bi?n, thu?c tnh t?nhsuper Truy xu?t ??n l?p chaswitch l?nh l?a ch?nsynchronized m?t ph??ng th?c ??c quy?n truy xu?t trn m?t ??i t??ngthis m ch? chnh l?p ?throw Nm ra ngo?i l?throws Khai bo ph??ng th?c nm ra ngo?i l?true Gi tr? logictry s? d?ng ?? b?t ngo?i l?void Dng ?? khai bo m?t ph??ng th?c khng tr? v? gi tr?while Dng trong c?u trc l?pIII. ??nh danh (tn)

    Tn dng ?? xc ??nh duy nh?t m?t ??i l??ng trong ch??ng trnh. Trong java tn ???c??t theo quy t?c sau:

    - Khng trng v?i t? kho- Khng b?t ??u b?ng m?t s?, tn ph?i b?t ??u b?ng k t? ho?c b?t ??u b?ng k $,_- Khng ch?a d?u cch, cc k t? ton h?c nh? +, -, *,/, %..- Khng trng v?i m?t ??nh danh khc trong cng m?t ph?m vi

    Ch :- Tn nn ??t sao cho c th? m t?????c ??i t??ng trong th?c t?- Gi?ng nh? C/C++, java c phn bi?t ch? hoa ch? th??ng- Trong java ta c th????t tn v?i ?? di tu? - Ta c th? s? d?ng cc k t? ti?ng vi?t ?????t tn

    Quy ??c v? ??t tn trong javaTa nn ??t tn bi?n, h?ng, l?p, ph??ng th?c sao cho ngh?a c?a chng r rng, d? hi?u,

    khoa h?c v mang tnh ??c l? qu?c t?. Do java c phn bi?t ch? hoa, ch? th??ng nn taph?i c?n th?n v ch .

    Sau ?y l quy ??c ??t tn trong java (ch ?y ch? l quy ??c do v?y khng b?t bu?cph?i tun theo quy ??c ny):- ??i v?i bi?n v ph??ng th?c th tn bao gi? c?ng b?t ??u b?ng k t? th??ng, n?u tn

    c nhi?u t? th ghp l?i th: ghp t?t c? cc t? thnh m?t, ghi t????u tin ch? th??ng,vi?t hoa k t????u tin c?a m?i t? theo sau trong tn, v d? area, radius, readInteger

    -???i v?i tn l?p, giao di?n ta vi?t hoa cc k t????u tin c?a m?i t? trong tn, v d? l?pWhileTest, Circle- Tn h?ng bao gi? c?ng vi?t hoa, n?u tn g?m nhi?u t? th chng ???c n?i v?i hau b?i

    k t? gh?ch d??i _, v d? PI, MAX_VALUEIV. C?u trc m?t ch??ng trnh java

    - M?i ?ng d?ng Java bao g?m m?t ho?c nhi?u ??n v? bin d?ch (m?i ??n v? bin d?chl m?t t?p tin c ph?n m? r?ng Java)

    - M?i ??n v? bin 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 (???m b?t ??u c?a ?ngd?ng)

    - M?i ??n v? bin d?ch c nhi?u nh?t m?t l?p ???c khai bo l public, n?u nh? trong??n v? bin d?ch c l?p public th tn c?a ??n v? bin d?ch ph?i trng v?i tn c?a l?ppublic (gi?ng h?t nhau c? k t? hoa l?n k t? th??ng)

    - Bn trong thn c?a m?i l?p ta khai bo cc thu?c tnh, ph??ng th?c c?a l?p ?, Javal ngn ng? h??ng ??i t??ng, do v?y m l?nh ph?i n?m trong l?p no ?. M?i l?nh ??u???c k?t thc b?ng d?u ch?m ph?y ;.

    - Trong ngn ng? Java, l?p l m?t ??n v? m?u c ch?a d? li?u v m l?nh lin quan ??n- m?t th?c th? no ?. Khi xy 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 ny ???c s? d?ng ?? xc ??nh cc bi?n m ta th??ng g?i l ??i???ng. ??i t??ng l cc th? hi?n (instance) c?a l?p. T?t c? cc ??i t??ng ??u thu?c v?m?t l?p c chung ??c tnh v hnh vi. M?i l?p xc ??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 bo m?t l?p, b?n c?n xc ??nh d? li?u v cc ph??ng th?c c?a l?p ?.

    V? c? b?n m?t l?p ???c khai bo nh? sau:

    //Nh?p kh?u cc th? vi?nimport th?_vi?n;//Xy d?ng cc l?ppublic class clsMain{?public static void main(String args[]){//???m b?t ??u c?a ch??ng trnh}?}class l?p1{?}class l?p2{?}

    ??t ??n v? bin d?ch l m?t t?ptin .java

  • Trang 12

    C php:class classname{ var_datatype variablename;........... methodname (parameter_list){...........}............}Trong ?:class - T? kho xc ??nh l?pclassname - Tn c?a l?pvar_datatype - ki?u d? li?u c?a bi?nvariablename - Tn c?a bi?nmet_datatype - Ki?u d? li?u tr? v? c?a ph??ng th?cmethodname - Tn c?a ph??ng th?cparameter_list Cc tham s?????c c?a ph??ng th?c

    - B?n cn c th????nh ngh?a m?t l?p bn trong m?t l?p khc. ?y l l?p x?p l?ng nhau,cc th? hi?n (instance) c?a l?p ny t?n t?i bn trong th? hi?n c?a m?t l?p che ph? chng.N chi ph?i vi?c truy nh?p ??n cc thnh ph?n c?a l?p bao ph? chng. C hai lo?i l?ptrong ? l l?p trong t?nh static v l?p trong khng 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?pvo cc thnh ph?n t?nh c?a l?p ph? n.+ L?p trong khng t?nh (non static)L?p bn trong (khng ph?i l l?p trong t?nh) c th? truy nh?p t?t c? cc thnh ph?n c?al?p bao n, song khng th? ng??c l?i.

    V. Ch??ng trnh JAVA ??u tin?? c th? bin d?ch v ch?y cc ch??ng trnh java ta ph?i ci

    - JRE (Java Runtime Enviroment) mi tr??ng th?c thi c?a java, n bao g?m: JVM (JavaVirtual Machine) my ?o java v cc ch??ng trnh java ???c thng d?ch v ch?y trnmy ?o java v t?p cc th? vi?n c?n thi?t ?? ch?y cc ?ng d?ng java.

    - B? cng c? bin d?ch v thng d?ch JDK c?a Sun MicrosystemSau khi ci ??t JDK (gi? s? th? m?c ci ??t l C:\JDK1.4) ta s? nh?n ???c m?t c?u trcth? m?c nh? sau:

    -??? bin d?ch m?t ch??ng trnh java sang m byte code ta dng l?nhC:\JDK1.4\BIN\javac TnT?p.java

    -??? thng d?ch v ch?y ch??ng trnh ta s? d?ng l?nh

  • Trang 13

    C:\JDK1.4\BIN\java TnT?p?? bin d?ch v ch?y ch??ng trnh Java ??n gi?n ta nn thi?t ??t hai bi?n mi tr??ngpaht v classpath nh? sau:-???i v?i dng WinNT:

    + R-Click vo My Computer ch?n Properties ch?n AdvancedEnviromentVariables

    + Trong ph?n System variables ch?n new ?? thm bi?n mi tr??ng m?i, trong h?ptho?i hi?n ra g classpath vo Variable Name v.;C:\jdk1.4\lib\tools.jar;C:\jdk1.4\lib\dt.jar;C:\jdk1.4\jre\lib\rt.jar trong variablevalue (ch khng g d?u vo, m?c ?ch ?? cho d? nhn m thi)

    + C?ng trong ph?n System variables tm ??n ph?n path trong danh schch?n edit

    ?? s?a l?i gi tr? hi?n c, trong value ta thm vo cu?i ;C:\jdk1.4\binCng vi?c ??t cc bi?n mi tr??ng ? xong, ?? th?y ???c tc d?ng c?a cc bi?n mit???ng ta c?n ph?i kh?i ??ng l?i my

    -???i v?i dng Win9X:M? t?p C:\Autoexec.bat sau ? thm vo hai dng 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\binKh?i ??ng l?i my ?? th?y ???c tc d?ng c?a cc bi?n mi tr??ng ny

    V d????u tin: ch??ng trnh Hello World (ch??ng trnh khi ch?y s? in ra mn hnh l?icho Hello World)Cc b??c:

  • Trang 14

    - M? m?t ch??ng trnh so?n th?o v?n b?n h? tr? asciii, nh? notepad, wordpad,EditPlus v g vo cc dng sau:

    public class HelloWorld {public static void main(String[] args){

    System.out.println("Hello World");}

    }

    - Ghi l?i v?i ci tn C:\HelloWorld.java (ch tn t?p ph?i trng v?i tn l?p, k? c? ch?hoa ch? th??ng, ph?n m? r?ng l java)

    - M? c?a s? DOS Prompt+ Chuy?n vo th? m?c C:\+ G l?nh javac HelloWorld.java ?? bin d?ch ch??ng trnh, n?u vi?c bin d?chthnh cng (ch??ng trnh khng c l?i c php) th ta s? thu ???c t?pHelloWorld.class trong cng th? m?c, n?u trong ch??ng trnh cn l?i c phpth trong b??c ny ta s? nh?n ???c m?t thng bo l?i v lc ny t?p

    HelloWorld.class c?ng khng ???c t?o ra+ G l?nh java HelloWorld (ch khng g ph?n m? r?ng) ?? ch?y ch??ng trnhHelloWorld.

    Sau khi thng d?ch v ch?y ta nh?n ???c

    VI. Ch thch trong ch??ng trnhTrong java ta c 3 cch ?? ghi ch thch

    Cch 1: s? d?ng c?p /* v */ ngh?a c?a c?p ch thch ny gi?ng nh? c?a C, C++Cch 2: s? d?ng c?p // ngh?a c?a c?p ch thch ny gi?ng nh? c?a C, C++Cch 3: s? d?ng c?p /** v */, ?y l ki?u ch thch ti li?u (khng c trong C/C++), ndng ?? t?o ra ti li?u ch thch cho ch??ng trnh.V?i cch th? nh?t v cch ba ta c th? vi?t ch thch trn nhi?u dng, v?i cch ch thchhai ta ch? c th? ch thch trn m?t dng.Ch : Trong java ta c th????t ch thch ???u?, cu tr? l?i l: ???u c th????t ???c m?td?u cch th ??? c th????t ch thch.

  • Trang 15

    VII. Ki?u d? li?u1. Cc ki?u d? li?u nguyn thu?

    T? kho M t? Kch c? T?i thi?u T?i ?a L?p bao(ki?u s? nguyn)

    byte s? nguyn m?t byte 8 bit -128 127 Byteshort s? nguyn ng?n 16 bit -215 215-1 Shortint s? nguyn 32 bit -231 231-1 Integerlong s? nguyn di 64 bit -263 -263-1 Long

    (ki?u s? th?c)float ki?u th?c v?i ?? chnh

    xc ??n32 bit IEEE754 IEEE75

    4Float

    double Double-precisionfloating point

    64 bit IEEE754 IEEE754

    Double

    (ki?u khc)char ki?u k t? 16 bit Unicode 0 Unicode

    216-1Character

    boolean ki?u logic true ho?c false - - Booleanvoid - - - - Void

    ??c ???m c?a cc bi?n c ki?u nguyn th?y l vng nh? c?a chng ???c c?p pht ? ph?nstack. Do v?y vi?c truy xu?t vo m?t bi?n ki?u nguyn th?y r?t nhanh.2. Ki?u tham chi?uTrong 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 cc d? li?u cng ki?u.

    L?p (Class) L s? ci ??t m t? v? m?t ??i t??ng trong bi ton.

    Giao di?n(Interface)

    L m?t l?p thu?n tr?u t??ng ???c t?o ra cho php ci ??t?a th?a k? trong Java.

    ??c ???m c?a cc bi?n ki?u tham chi?u l n ch?a ??a ch? c?a ??i t??ng m n tr???n.

    ??u nguyn 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 double

  • Trang 16

    Vng nh? c?a bi?n tham chi?u ???c c?p pht ? vng nh? stack cn vng nh? c?a??i t??ng ???c c?p pht ? vng nh? heap. Vi?c truy x?t vo vng nh? heap ch?m h?n truyx?t vo vng nh? stack tuy nhin java c c? ch? cho php truy c?p vo vng nh? heap v?it?c ?? x?p x? b?ng t?c ?? truy c?p vo vng nh? stack.VIII. Khai bo bi?n1. Khai bo bi?n

    ???ng t? ngn ng? C/C++, ?? khai bo bi?n trong java ta s? d?ng c php sau:type name [=InitValue];trong ?:- type l ki?u d? li?u cu? bi?n- name l tn c?a bi?n, tn bi?n l m?t xu k t?????c ??t theo quy t?c ??t tn c?a java- InitValue l gi tr? kh?i t?o cho bi?n, ?y l ph?n tu? ch?n, n?u b? qua ph?n ny th gi

    tr? ban ??u c?a bi?n ???c kh?i t?o gi tr? m?c ??nhCh :- N?u c?n khai bo nhi?u bi?n c cng m?t ki?u d? li?u ta c th????t cc khai bo cc bi?ntrn m?t dng, cc bi?n ny ???c phn cch nhau b?i d?u ph?y- Java s? x? l cc bi?n khng ???c kh?i ??u gi tr? nh? sau:

    + ??i v?i thu?c tnh (bi?n ???c khai bo trong ph?m vi c?a l?p) th Java s? t????ngkh?i gn gi tr? cho cc bi?n theo quy t?c sau:

    + gi tr? 0 cho ki?u d? li?u s?+ false cho ki?u logic+ k t? null (m 0) cho k t?+ gi tr? null cho ki?u ??i t??ng

    + ??i v?i cc bi?n c?c b? th bi?n khng ???c kh?i gn gi tr? m?c ??nh, tuy nhinJava s? bo l?i n?u ta s? d?ng m?t bi?n ch?a ???c nh?n gi tr?

    2. Ph?m vi bi?nM?i bi?n ???c khai bo ra c m?t ph?m vi ho?t ??ng, ph?m vi c?a bi?n l n?i m

    bi?n c th?????c truy c?p, ???u ny xc ??nh c? tnh th?y ???c v th?i gian s?ng c?a bi?n.

    Bi?n tham chi?u ??i t??ng

  • Trang 17

    Bi?n ph?m vi l?p l bi?n ???c khai bo bn trong l?p nh?ng bn ngoi cc ph??ngth?c v hm t?o, tuy nhin vi?c khai bo ph?i xu?t hi?n tr??c khi bi?n ???c s? d?ng

    Bi?n ph?m vi c?c b? l bi?n ???c khai bo bn trong m?t kh?i, ph?m vi c?a bi?n tnht?????m bi?n ???c khai bo cho ??n cu?i kh?i m bi?n ???c khai bo

    V d?:{

    int i=1; // ch? c i s?n sng s? d?ng{

    int j=10; // c? i v j ??u s?n sng}// ch? c i s?n sng// j khng s?n sng v n?m ngoi ph?m vi}

    Ch : Ta khng th? lm ?i?u sau cho d n c th? trong C/C++{

    int i=1;{ int i=10;// khng ???c php v ? c m?t bi?n cng tn v?i n }

    }Nh?ng ng??i thi?t k? java cho r?ng ???u ? c th? gy l?n l?n, do v?y h??? quy?t

    ??nh khng cho php che gi?u m?t bi?n ? ph?m vi l?n h?n.Ch : th?i gian s?ng c?a cc ??i t??ng khng tun theo quy lu?t th?i gian s?ng c?a ccbi?n ki?u nguyn thu?.VII. M?t s? php ton trn ki?u d? li?u nguyn thu?1. Php gnC php Bi?n=Bi?uTh?c;

    Php gn ???c th?c hi?n b?ng ton t? =, n c ngh?a l hy tnh ton gi tr? bi?uth?c bn ph?i d?u gn, sau ? ??a gi tr??? vo nh? c tn n?m ? bn tri d?u gnCh :+ Cu l?nh gn g?m m?t d?u =+ Ki?u c?a bi?u th?c bn ph?i d?u gn ph?i t??ng thch v?i ki?u d? li?u c?a bi?n+ Trong java ta c th? th?c hi?n m?t d?y gn nh? sau:

    i = j = 10; // c? i v j ??u c gi tr? 10

  • Trang 18

    2. Ton t? ton h?cNgn ng? java c?ng c cc php ton s? h?c nh? cc ngn ng? khc: + ( php c?ng), - (php tr? ), * ( php nhn ),/ ( php chia ), % ( php ton chia l?y ph?n nguyn)Ta m t? tm t?t cc php ton s? h?c qua b?ng t?ng k?t sau:

    Php ton S? d?ng M t?+ op1 + op2 C?ng op1 v?iop2- op1 - op2 Tr? op1 cho op2* op1 * op2 Nhn op1 v?i op2/ op1/ op2 chia op1 cho op2% op1 % op2 Tnh ph?n d? c?a php chia op1 cho op2

    3. Ton t? t?ng, gi?mGi?ng nh? ngn ng? C/C++, java c?ng c php ton t?ng, gi?m, ta c th? m t?

    tm t?t qua cc b?ng sau:

    Php ton S? d?ng M t?

    ++ op++ ??ng op ln 1 ??n v?, gi tr? c?a op ???c t?ng ln tr??c khi bi?uth?c ch?a n ???c tnh

    ++ ++op ??ng op ln 1 ??n v?, gi tr? c?a op ???c t?ng ln sau khi bi?u th?cch?a n ???c tnh

    -- op-- Gi?m op xu?ng1 ??n v?, gi tr? c?a op ???c gi?m xu?ng tr??c khibi?u th?c ch?a n ???c tnh

    -- --op Gi?m op xu?ng1 ??n v?, gi tr? c?a op ???c gi?m xu?ng sau khibi?u th?c ch?a n ???c tnhCh : n?u ton t? t?ng tr??c, t?ng sau(gi?m tr??c, gi?m sau) ??ng m?t mnh(khngn?m trong bi?u th?c ) th chng ho?t ??ng nh? nhau, chng ch? khc nhau khi chng n?mtrong bi?u th?c4. Php ton quan h?

    Php ton quan h? bao gi? c?ng cho k?t qu? boolean, php ton quan h? s? so snh2 gi tr?, n xc ??nh m?i quan h? gi?a chng, v d?! = s? tr? v? true n?u 2 ton h?ng lkhc nhau.Ta tm t?t cc php ton qua b?ng sau:

    Php ton S? d?ng Nh?n v? gi tr? true khi> op1 > op2 op1 l?n h?n op2>= op1 >= op2 op1 l?n h?n ho?c b?ng op2< op1 < op2 op1 nh? h?n op2

  • Trang 19

    int i = 37;int j = 42;int k = 42;System.out.println("Variable values...");System.out.println(" i = " + i);System.out.println(" j = " + j);System.out.println(" k = " + k); //greater thanSystem.out.println("Greater than...");System.out.println(" i > j = " + (i > j)); // falseSystem.out.println(" j > i = " + (j > i));// trueSystem.out.println(" k > j = " + (k > j));// false, they are equal //greater than or equal toSystem.out.println("Greater than or equal to...");System.out.println(" i >= j = " + (i >= j));// falseSystem.out.println(" j >= i = " + (j >= i));// trueSystem.out.println(" k >= j = " + (k >= j));// true //less thanSystem.out.println("Less than...");System.out.println(" i < j = " + (i < j));// trueSystem.out.println(" j < i = " + (j < i));// falseSystem.out.println(" k < j = " + (k < j));// false //less than or equal toSystem.out.println("Less than or equal to...");System.out.println(" i

  • Trang 20

    i < j = truej < i = falsek < j = falseLess than or equal to...i > op2 D?ch chuy?n op1 sang ph?i op2 bit, op2 bit pha bn ph?i s????c ???n b?ng cc bt 0

    > op1>>> op2 D?ch chuy?n op1 sang ph?i op2 bit, op2 bit

    Sau ?y l hnh minh ho? php ton d?ch bt

  • Trang 21

    V d?:13>>1=6 v 13=11012 do v?y khi d?ch ph?i m?t bit ta s?????c 1102=65

  • Trang 22

    Php ANDop1 op2 Result0 0 00 1 01 0 01 1 1

    Php XORop1 op2 Result0 0 00 1 1

    1 0 11 1 0 op1 op2 Result

    0 0 00 1 11 0 11 1 1

    V d?:1101// 13& 1100// 12------1100// 12

    1101// 13| 1100// 12

    ------1101// 131101// 13^ 1100// 12------0001// 1

    ! 10101=010107. Ton t? gn t?t

    Gi?ng nh? C/C++ java c?ng c ton t? gn, ta tm t?t cc ton t? gn qua b?ngsau:

    Php gn S? d?ng ???ng ???ng+= op1 += op2 op1 = op1 + op2-= op1 -= op2 op1 = op1 - op2*= op1 *= op2 op1 = op1 * op2/= op1/ = op2 op1 = op1/ op2%= op1 %= op2 op1 = op1 % op2

    Php NOTop1 Result0 11 0

  • Trang 23

    &= op1 &= op2 op1 = op1 & op2|= op1 |= op2 op1 = op1 | op2^= op1 ^= op2 op1 = op1 ^ op2> op2>>>= op1 >>>= op2 op1 = op1 >>> op2

    8. Th? t? ?u tin c?a cc php tonTh? t? ?u tin c?a cc php ton xc ??nh trnh t? tnh ton gi tr? c?a m?t bi?u th?c, javac nh?ng quy t?c ring ?? xc ??nh trnh t? tnh ton c?a bi?u th?c, ta ph?i nh? quy t?csau: Cc php ton m?t ngi bao gi? c?ng ???c th?c hi?n tr??c tin Trong m?t bi?u th?c c nhi?u php ton th php ton no c ?? ?u tin cao h?n s????c th?c hi?n tr??c php ton c ?? ?u tin th?p

    Trong m?t bi?u th?c c nhi?u php ton c ?? ?u tin ngang nhau th chng s?????ctnh theo trnh t? t? tri qua ph?i

    Ta c b?ng tm t?t th? t? ?u tin c?a cc php ton trong b?ng sau:

    postfix operators []. (params) expr++ expr--unary operators ++expr --expr +expr -expr ~!creation or cast new (type)exprmultiplicative */ %additive + -shift > >>>relational < > = instanceofequality ==! =Bitwise AND &Bitwise exclusive OR ^Bitwise inclusive OR |Logical AND &&Logical OR ||Conditional ?:Assignment = += -= *=/ = %= &= ^= |= = >>>=

    Trong b?ng trn th? t? ?u tin c?a cc php ton ???c gi?m t? trn xu?ng d??i,trn cng m?t hng th chng c ?? ?u tin ngang nhau. Ton t? d?yKhng gi?ng nh? C/C++, trong java ch? duy nh?t m ta c th????t ton t? d?y l bn trongc?p ngo?c trn c?a c?u trc for( s?????c m t? chi ti?t trong ch??ng sau )IX. Ton t? chuy?n ki?u9.1 Chuy?n ??i ki?u khng t??ng minh

    Vi?c chuy?n ??i ki?u th??ng ???c di?n ra m?t cch t????ng trong tr??ng h?p bi?uth?c g?m nhi?u ton h?ng c ki?u d? li?u khc nhau. ???u ny ?i khi lm cho b?n khng?c nhin v nh?n ???c m?t k?t qu? khng theo mu?n. V d? ta xt ???n trnh sau:

    int two=2, three=3;

  • Trang 24

    float result=1.5 +three/two;k?t qu? nh?n ???c c?a result l 2.5. ?i?u m b?n mong mu?n l 3.0 ch? khng ph?i l 2.5.K?t qu? 2.5 nh?n ???c l do three v two l hai gi tr? nguyn nn k?t qu? c?a php chiathree/two cho ta m?t gi tr? nguyn bng 1 ch? khng ph?i l 1.5. ?? ni r?ng k?t qu? c?aphp chia three/two l m?t gi tr? th?c ch? khng ph?i l m?t gi tr? nguyn th m?t tronghai ton h?ng c?a php chia ny ph?i l m?t s? th?c. Do v?y ta c?n ph?i chuy?n ki?u c?am?t trong hai ton h?ng ny ho?c c? hai thnh s? th?c. ?? nh?n ???c k?t qu???ng trongtr??ng h?p ny b?n c?n vi?t nh? sau:

    float result=1.5 + (float) three/two; ho?cfloat result=1.5 + three/ (float)two; ho?cfloat result=1.5 +(float)three/(float)two;

    L do m ta vi?t nh? trn l n?u trong m?t php ton c s? tham gia c?a nhi?u ton h?ngc ki?u khc nhau th java s? chuy?n ki?u t????ng cho cc ton h?ng m?t cch t????ngtheo quy t?c sau:

    byte -> short -> int -> long -> float -> double9.2. Chuy?n ??i ki?u t??ng minh?? chuy?n ??i ki?u m?t cch t??ng minh ta s? d?ng c php sau:

    (type) bi?u_th?c;khi g?p cu l?nh ny java s? tnh ton 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) = 61+(float)5/2=1+5/(float)2=1+(float)5/(float)2=3.5Ch :

    - Php ton chuy?n ki?u l php ton c ?? ?u tin cao, nn (int)3.5*2(int)(3.4*2)- C?n ch khi chuy?n m?t bi?u th?c ki?u d? li?u c mi?n gi tr? l?n sang m?t ki?u

    c mi?n gi tr? nh? h?n. Trong tr??ng h?p ny c th? b?n s? b? m?t thng tin.X. Cc hm ton h?cCc hm ton h?c nh? sin, cos, sqrt ???c java vi?t s?n trong l?p Math. L?p ny n?m tronggi java.lang (gi m?c ??nh) do v?y b?n khng c?n ph?i thm cu l?nh import ????uch??ng trnh ?? c th? s? d?ng l?p ny. Cc hm ny ???c vi?t l cc ph??ng th?c t?nh dov?y ta khng c?n ph?i t?o ra th? hi?n c?a l?p Math.B?ng sau li?t k m?t s? ph??ng th?c t?nh trong l?p Math:

    Tn ph??ng th?c M t? ngh?a Ki?u tham s? Ki?u tr? v?sin(arg) tnh sin c?a arg arg l m?t bi?u th?c ki?u

    double th? hi?n m?t cungtheo radians

    double

    cos(arg) tnh cos c?a arg arg l m?t bi?u th?c ki?udouble th? hi?n m?t cungtheo radians

    double

    tan(arg) tnh tang c?a arg arg l m?t bi?u th?c ki?udouble th? hi?n m?t cungtheo radians

    double

    asin(arg) tnh sin-1 (arcsin) arg l m?t bi?u th?c ki?u double trong h?

  • Trang 25

    arg double th? hi?n m?t cungtheo radians

    radians

    acos(arg) tnh cos-1(arccosin) c?a arg

    arg l m?t bi?u th?c ki?udouble th? hi?n m?t cungtheo radians

    double trong h?radians

    atan(arg) tnh tan-1(arctang) c?a arg

    arg l m?t bi?u th?c ki?udouble th? hi?n m?t cungtheo radians

    double trong h?radians

    atan2 (arg1,arg2) tnh tan-1(arctang) c?a

    arg1/arg2

    arg1,arg2 l cc bi?u th?cki?u double th? hi?n m?tcung theo radians

    double trong h?radians

    abs(arg) tnh tr? tuy?t ??ic?a arg

    arg l m?t bi?u th?c ki?uint, long, float, ho?c double

    The same type asthe argument

    max (arg1,arg2) Nh?n v? gi tr? l?ntrong hai tham s?

    arg1, arg2 l m?t bi?u th?cki?u int, long, float, ho?cdouble

    Nh?n v? ki?ucng kiu v?itham s?

    min (arg1,arg2) Nh?n v? gi tr?nh? trong hai thams?

    arg1, arg2 l mt biu thckiu int, long, float, hocdouble

    Nh?n v? ki?ucng kiu v?itham s?

    ceil(arg) Nh?n v? gi tr?nguyn nh? h?nho?c b?ng arg

    arg l bi?u th?c ki?u floatho?c double

    double

    floor(arg) Nh?n v? gi tr?nguyn l?n h?nho?c b?ng arg

    arg l bi?u th?c ki?u floatho?c double

    double

    round(arg) Tr? v? gi tr?nguyn g?n argnh?t, gi tr? nychnh l gi tr? c?aarg sau khi ? lmtrn

    arg l bi?u th?c ki?u floatho?c double

    Nh?n v? ki?u intn?u arg kiu float,nh?n v? kiu longn?u arg ki?udouble

    rint(arg) Gi?ng nh?round(arg)

    arg l bi?u th?c ki?u double double

    sqrt(arg) tnh c?n b?c haic?a arg

    arg l bi?u th?c ki?u double double

    pow (arg1,arg2) tnh arg1arg2 C? arg1 v arg2 l cc bi?uth?c ki?u double

    double

    exp(arg) tnh earg arg l bi?u th?c ki?u double doublelog(arg) tnh logarithm? s?

    e c?a argarg l bi?u th?c ki?u double double

    random() Nh?n v? m?t s?gi? ng?u nhinn?m trong kho?n[0, 1)

    Khng c tham s? double

    V d? v? cc hm ton h?c trong l?p Math, b?n hy g ?o?n ch??ng trnh sau v cho ch?yth???? th?y ???c k?t qu? tnh ton c?a cc hm ton h?c.

  • Trang 26

    XI. Cc php ton trn ki?u k t???i v?i ki?u k t? ta c th? th?c hi?n cc php ton s? h?c (nh?: +, -, *,/ ) v cc phpton quan h?.V d?:char kt1=A;char kt2=tk1+a;// kt2 nh?n k t? Bchar kt3=(char)33*2;// kt3 nh?n k t? B(kt1>kt2)= false;(kt2=kt3)= false;

  • Trang 27

    BI 3. ???U KHI?N LU?NG CH??NG TRNHCh??ng trnh l m?t d?y cc l?nh ???c b? tr th?c hi?n theo m?t trnh t? no ?,

    nh?ng ?i khi ta mu?n ???u khi?n lu?ng th?c hi?n c?a ch??ng trnh tu? thu?c vo ?i?uki?n g ?. Ngn ng? l?p trnh java cung c?p m?t s? pht bi?u cho php ta ???u khi?nlu?ng th?c hi?n c?a ch??ng trnh, chng ???c li?t k trong b?ng sau:

    Ki?u l?nh T? khoL?p while, do-while, forQuy?t ??nh if-else, switch-caseX? l l?i try-catch-finally, throwR? nhnh break, continue, label:, return

    I. C?u trc r? nhnh1.1. Pht bi?u ifa) D?ng khuy?tC php

    if (Boolean-expression)statement;

    s? ho?t ??ng c?a c?u trc if thi?u ???c m ta qua s???? sau:

    b) D?ng ??C php

    if (Boolean-expression)statement1;

    elsestatement2;

    s? ho?t ??ng c?a c?u trc if thi?u ???c m ta qua s???? sau:

    ?i?u ki?nstatementT

    F

    ???u ki?nStatement 1?ng sai

    Statement2

  • Trang 28

    1.2. Bi?u th?c ???u ki?nC php:Variable=booleanExpression? true-result-expression:false-result-expression;1.3. c?u trc switcha) D?ng khuy?tC phpswitch (bi?u_th?c) {case gt_1:

    l?nh 1; [ break;]case gt_2:

    l?nh 2; [ break;]case gt_n:

    l?nh n; [ break;]}

    Sau ?y l s???? kh?i m t? s? ho?t ??ng c?a c?u trc r? nhnh switch d?ng thi?u

    bi?u_th?c??ng gt_1 ??nh 1

    bi?u_th?c??ng gt_2

    .....................................................................

    bi?u_th?c??ng gt_n

    No

    Yes

    Yes

    No

    Yes

    No

    break;

    ??nh 2 break;

    ??nh n break;

  • Trang 29

    b) D?ng ??C phpswitch(bi?u_th?c) {case gt_1:

    l?nh 1; [ break;]case gt_2:

    l?nh 2; [ break;]case gt_n:

    l?nh n; [ break;]default:

    l?nh n+1;}

    Sau ?y l s???? kh?i m t? s? ho?t ??ng c?a c?u trc switch d?ng ??

    Ch :- Bi?u_th?c ph?i l m?t bi?u th?c c ki?u char, byte, short, int nh?ng khng th? l ki?ulong, n?u bi?u_th?c c ki?u khc v?i cc ki?u li?t k ? trn th java s????a ra m?t thngbo l?i.- N?u bi?u_th?c b?ng gi tr? c?a gt_i th cc l?nh t? l?nh i cho ??n l?nh n n?u khng cdefault (l?nh n+1 n?u c default) s?????c th?c hi?n.- Cu l?nh break thot ra kh?i c?u trc switch.????? kh?i m t? s? ho?t ??ng c?a c?u trc switch trong tr??ng h?p c l?nh break

    bi?u_th?c??ng gt_1

    ??nh 1

    bi?u_th?c??ng gt_2 ??nh 2

    ...............................................

    ......................

    bi?u_th?c??ng gt_n ??nh n

    No

    Yes

    Yes

    No

    Yes

    No

    ??nh n+1

  • Trang 30

    1.4. Ton t?????u ki?nTon t?????u ki?n l m?t lo?i ton t????c bi?t v n g?m ba thnh ph?n c?u thnh

    bi?u th?c ???u ki?n. hay ni cch khc ton t?????u ki?n l ton t? 3 ngi.C php :Bi?u th?c 1? bi?u th?c 2 : bi?u th?c 3;Trong ?bi?u th?c 1: Bi?u th?c 1 l m?t bi?u th?c logic. T?c l n tr? tr? v? gi tr? True ho?c Falsebi?u th?c 2: Gi tr? tr? v? n?u bi?u th?c 1 nh?n gi True.bi?u th?c 3: Gi tr? tr? v? n?u bi?u th?c 1 nh?n gi tr? FalseCh : Ki?u gi tr? c?a bi?u th?c 2 v bi?u th?c 3 ph?i t??ng thch v?i nhau.V d?: ???n bi?u th?c ???u ki?n sau tr? v? gi tr? a l s? ch?n n?u nh? gi tr? c?a bi?n al s? ch?n, ng??c l?i tr? v? gi tr? a l s? l? n?u nh? gi tr? c?a bi?n a l s? l?.String result=a%2==0 ? ?a l s? ch??? : ?a l s? l??;II. C?u trc l?p while v do-while1. L?p ki?m tra ???u ki?n tr??c

    Ta c th? s? d?ng c?u trc while ?? th?c thi l?p ?i l?p l?i m?t l?nh ho?c m?t kh?il?nh trong khi ???u ki?n ?ngC php:

    while (BooleanExpression) {statement;

    }ta c th? th?y ???c lu?ng th?c hi?n c?a ch??ng trnh thng qua s???? kh?i sau:

    tr??c tin pht bi?u while s? tnh gi tr? c?a bi?u th?c logic, n?u gi tr? c?a bi?u th?c logicl ?ng th cu l?nh trong thn c?a while s?????c th?c hi?n, sau khi th?c hi?n xong n tnhl?i gi tr? c?a bi?u th?c logic, n?u gi tr???ng n l?i ti?p t?c th?c hi?n l?nh trong thnwhile cho ??n khi gi tr? c?a bi?u th?c sai.V d?:

    ?i?u ki?n l?p

    ?ng

    L?nh

    sai

  • Trang 31

    public class WhileDemo {public static void main(String[] args) {String copyFromMe = "Copy this string until you " +"encounter the letter 'g'.";StringBuffer copyToMe = new StringBuffer();int i = 0;char c = copyFromMe.charAt(i);while (c! = 'g')

    { copyToMe.append(c); c = copyFromMe.charAt(++i);

    }System.out.println(copyToMe);}}Ch :

    + Bi?u th?c bn trong c?p ngo?c trn ph?i l m?t bi?u th?c logic ( bi?u th?c tr? v?gi tr? true ho?c false )

    + Bi?u th?c ???u ki?n ph?i n?m trong c?p ngo?c trn+ Sau t? kho while ta ch? c th????t ???c duy nh?t m?t l?nh, do v?y ?? c th? th?c

    hi?n nhi?u tc v? sau while ta ph?i bao chng trong m?t kh?i l?nh+ Bn trong thn c?a vng l?p while ta nn c l?nh lm thay ??i gi tr? c?a bi?u th?c

    logic, n?u khng chng ta s? r?i vo vng l?p v h?n.+ Cu l?nh trong thn c?u trc while c th? khng ???c th?c hi?n l?n no (do bi?u

    th?c lgic ban ??u c gi tr? false )

    2. L?p ki?m tra ???u ki?n sauC php:

    do {statement(s);} while (expression);

    s? ho?t ??ng c?a c?u trc ny ???c th? hi?n qua s???? sau:

    Nhn vo s???? ny ta th?y s? ho?t ??ng c?a n nh? sau:b1. Th?c hi?n l?nhb2. Sau khi th?c hi?n l?nh xong n tnh gi tr? c?a bi?u th?c logic

    ???u ki?n l?p?ng

    L?nh

    sai

  • Trang 32

    b3. N?u bi?u th?c logic??ng n quay tr? l?i b1, n?u sai th b4b4. K?t thc vng l?p v th?c hi?n l?nh sau do-whilev d?:public class DoWhileDemo {public static void main(String[] args) {

    String copyFromMe = "Copy this string until you " +"encounter the letter 'g'.";StringBuffer copyToMe = new StringBuffer();int i = 0;char c = copyFromMe.charAt(i);do {

    copyToMe.append(c);c = copyFromMe.charAt(++i);

    } while (c! = 'g');System.out.println(copyToMe);}}Ch :

    + Bi?u th?c bn trong c?p ngo?c trn ph?i l m?t bi?u th?c logic ( bi?u th?c tr? v?gi tr? true ho?c false )

    + Bi?u th?c ???u ki?n ph?i n?m trong c?p ngo?c trn+ Sau t? kho do ta c th????t ???c nhi?u l?nh+ Bn trong thn c?a vng l?p do-while ta nn c l?nh lm thay ??i gi tr? c?a bi?u

    th?c logic, n?u khng chng ta s? r?i vo vng l?p v h?n.+ Cu l?nh trong thn c?u trc do-while ???c th?c hi?n t nh?t m?t l?n

    III. C?u trc for?y la c?u trc l?p ph? bi?n nh?t trong cc ngn ng? l?p trnh, m n?i dung cu?

    vng l?p c?n ph?i l?p ?i l?p l?i m?t s? l?n bi?t tr??c, c php c?a n nh? sau:

    for (initialization; termination; increment){statement}

    Trong ?:- initialization l gi tr? kh?i t?o tr??c khi vng l?p b?t ??u, n ch?????c th?c hi?n duynh?t m?t ln tr??c khi vng l?p b?t ??u- termination l ?i?u ki?n dng ?? k?t thc qu trnh l?p- increment l cu l?nh dng ??????u khi?n qu trnh l?p- statement l cu l?nh m ta c?n ph?i th?c hi?n l?p ?i l?p l?i.????? kh?i di?n gi?i s? ho?t ??ng c?a c?u trc for sau:

  • Trang 33

    Nh?n xt:+ Thn c?a c?u trc l?p for ta ch? c th????t ???c duy nh?t m?t l?nh, do v?y ?? c

    th? th?c hi?n nhi?u tc v? trong thn for ta ph?i bao chng trong kh?i l?nh+ Thn vng l?p for c th? khng ???c th?c hi?n l?n no+ Cc ph?n initialization, termination, increment c th? khuy?t tuy nhin d?y ph?y

    dnh cho n v?n ph?i c+ S? l?n th?c hi?n initialization=1+ S? l?n th?c hi?n termination = s? l?n l?p +1+ S? l?n th?c hi?n increment = s? l?n l?p+ Ta c th????t m?t vi khai bo bi?n trong ph?n initialization, nh? v d? sau+ Ta c th? m t? c?u trc while thng qua c?u trc for nh? saufor (; Boolean_Expression;) statement;

    V d?: ki?t k ra 128 cc k t? asciii ??u tinpublic class ListCharacters {public static void main(String[] args) { for ( char c = 0; c < 128; c++)

    if (c! = 26 ) // ANSI Clear screen System.out.println( "value: " + (int)c +" character: " + c);}}// /:~

    Ton t? d?y v vng l?p forTrong bi tr??c ta ? nh?c ??n ton t? d?y (ton t? d?y l m?t d?y cc l?nh ??n

    ???c cch nhau b?i d?u ph?y), trong java ch? duy nh?t m ta c th????t ton t? d?y ? lbn trong c?u trc l?p for, ta c th????t ton t? d?y c? trong ph?n initialization l?n ph?nincrement

    V d? v? ton t? d?ypublic class CommaOperator {public static void main(String[] args) {for(int i = 1, j = i + 10; i < 5;i++, j = i * 2) {System.out.println("i= " + i + " j= " + j);}}}

    K?t qu? ch?y ch??ng trnh sau:i= 1 j= 11

    increment

    initialization

    termination

    statement?ng

  • Trang 34

    i= 2 j= 4i= 3 j= 6i= 4 j= 8

    IV. L?nh break v continueBn trong thn c?a cc c?u trc l?p ta c th?????u khi?n lu?ng th?c hi?n b?ng cch

    s? d?ng l?nh break v continue, l?nh break s? ch?m d?t qu trnh l?p m khng th?c hi?nn?t phn cn l?i c?a c?u trc l?p, continue s? ng?ng th?c thi ph?n cn l?i c?a thn vngl?p v chuy?n ???u khi?n v?????m b?t ??u c?a vng l?p, ?? th?c hi?n l?n l?p ti?p theo, vd? sau ch? ra cch s? d?ng break v continue bn trong c?u trc l?p for v while

    public class BreakAndContinue {public static void main(String[] args){

    for(int i = 0; i < 100; i++) {

    if(i == 74) break;// Out of for loopif(i % 9! = 0) continue;// Next iteration

    System.out.println(i); }int i = 0;// An "infinite loop":

    while(true) { i++; int j = i * 27;

    if(j == 1269) break;// Out of loopif(i % 10! = 0) continue;// Top of loop

    System.out.println(i); }}}k?t qu? ch?y ch??ng trnh sau:

    091827364554637210203040

    Bn trong c?u trc l?p for gi tr? c?a i khng th????t ???c gi tr? 100 v pht bi?u break s?k?t thc vng l?p khi i=74Ch : Java khng c l?nh nh?y goto, tuy nhin trong java v?n c m?t vi v?t tch c?al?nh nh?y goto ( kht ti?ng v ???c coi l ngu?n sinh cc l?i ) ? l l?nh break v continue

  • Trang 35

    Nhn c?a vng l?pTrong th?c t? cc vng l?p c th? l?ng vo nhau, m?c ?? l?ng nhau khng h?n ch?,

    th? th cu h?i ??t ra l l?nh break s? thot ra kh?i vng l?p no, cu tr? l?i l n thot rakh?i vng l?p m l?nh break ???c ??t, th? th lm cch no ta c th? cho n thot ra kh?im?t vng l?p tu? no ?, cu tr? l?i l java ? h? tr? cho ta m?t cng c??? l nhn c?avng l?p.Nhn l m?t ci tn sau ? c 2 d?u ch?mV d? LabelName:

    Ch? duy nh?t m nhn c ngh?a ? l ngay tr??c l?nh l?p, ta khng th? c b?t c?m?t l?nh no n?m gi?a nhn v l?nh l?p, ta m t? s? ho?t ??ng, cch s? d?ng nhn c?avng l?p thng qua v d? sau:public class LabeledFor { public static void (String[] args){ int i = 0; outer: // Can't have statements here

    for(; true; ) { // infinite loop inner:// Can't have statements here

    for(; i < 10; i++) { prt("i = " + i);

    if(i == 2) { prt("continue");

    continue; }

    if(i == 3) { prt("break"); i++; // Otherwise i never // gets incremented.

    break; }

    if(i == 7) { prt("continue outer"); i++; // Otherwise i never // gets incremented.

    continue outer; }

    if(i == 8) { prt("break outer");

    break outer; }

    for(int k = 0; k < 5; k++) {if(k == 3) {

    prt("continue inner");continue inner;

    } } }}// Can't break or continue// to labels here

  • Trang 36

    }static void prt(String s) {System.out.println(s);}}

    k?t qu? ch?y c???ng trnh nh? sau:i = 0continue inneri = 1continue inneri = 2continuei = 3breaki = 4continue inneri = 5continue inneri = 6continue inneri = 7continue outeri = 8break outer

  • Trang 37

    Ch??ng 2: L?P TRNH H??NG ??I T??NG

    L?p l khi ni?m tr?ng tm c?a l?p trnh h??ng ??i t??ng, java l ngn ng? l?ptrnh h??ng ??i t??ng, m?t ch??ng trnh java g?m m?t t?p cc ??i t??ng, cc ??i t??ngny ph?i h?p v?i nhau ?? t?o thnh m?t ?ng d?ng hon ch?nh. Cc ??i t??ng ???c m t?qua khi ni?m l?p, l?p l s? m? r?ng khi ni?m RECORD trong pascal, hay struct c?a C,ngoi cc thnh ph?n d? li?u, l?p cn c cc hm ( ph??ng th?c, hnh vi ), ta c th? xeml?p l m?t ki?u d? li?u, v v?y ng??i ta cn g?i l?p l ki?u d? li?u ??i t??ng. Sau khi ??nhngh?a l?p ta c th? t?o ra cc ??i t??ng ( b?ng cch khai bo bi?n ) c?a l?p v?a t?o, do v?yc th? quan ni?m l?p l t?p h?p cc ??i t??ng cng ki?u.

  • Trang 38

    BI 1. ??NH NGH?A L?PI. Khai bo l?p1.1. M?t l?p ???c ??nh ngh?a theo m?u sau:

    [pbulic][final][abstract] class {// khai bo cc thu?c tnh// khai bo cc ph??ng th?c

    }

    sau ?u l v d????n gi?n ??nh ngh?a l?p ng?n x?p:

    T?ng qut: m?t l?p ???c khai bo d?ng sau:

    [public][][ class [extends ] [implements ] {

    }

    Trong ?:1. B?i m?c ??nh m?t l?p ch? c th? s? d?ng b?i m?t l?p khc trong cng m?t gi v?i

    l?p ?, n?u mu?n gi khc c th? s? d?ng l?p ny th l?p ny ph?i ???c khai bo l l?ppublic.

    2. abstract l b? t? cho java bi?t ?y l m?t l?p tr?u t??ng, do v?y ta khng th? t?o ram?t th? hi?n c?a l?p ny

    3. final l b? t? cho java bi?t ?y l m?t l?p khng th? k? th?a

  • Trang 39

    4. class l t? kho cho ch??ng trnh bi?t ta ?ang khai bo m?t l?p, l?p ny c tn lNameOfClass

    5. extends l t? kho cho java bi?t l?p ny ny ???c k? th?a t? l?p super6. implements l t? kho cho java bi?t l?p ny s? tri?n khai giao di?n Interfaces, ?y

    l m?t d?ng t??ng t? nh? k? th?a b?i c?a java.

    Ch :a) Thu?c tnh c?a l?p l m?t bi?n c ki?u d? li?u b?t k?, n c th? l?i l m?t bi?n c

    ki?u l chnh l?p ?b) Khi khai bo cc thnh ph?n c?a l?p (thu?c tnh v ph??ng th?c) c th? dng m?t

    trong cc t? kho private, public, protected??? gi?o h?n s? truy c?p ??n thnh ph?n ?. Ccc thnh ph?n private ch? c th? s? d?ng ???c ? bn trong l?p, ta khng th? truyc?p vo cc thnh ph?n private t? bn ngoi l?p Cc thnh ph?n public c th? truy c?p ???c c? bn trong l?p l?n bn ngoi l?p. Cc thnh ph?n protected ???ng t? nh? cc thnh ph?n private, nh?ng c th? truy c?p???c t? b?t c? l?p con no k? th?a t? n. N?u m?t thnh ph?n c?a l?p khi khai bo m khng s? d?ng m?t trong 3 b? t?protected, private, public th s? truy c?p l b?n b, t?c l thnh ph?n ny c th? truyc?p ???c t? b?t c? l?p no trong cng gi v?i l?p ?.

    c) Cc thu?c tnh nn ?? m?c truy c?p private ??????m b?o tnh d?u kn v lc ? ??bn ngoi ph?m vi c?a l?p c th? truy c?p ???c ??n thnh ph?n private ny ta ph?i t?ora cc ph??ng th?c ph??ng th?c get v set.

    d) Cc ph??ng th?c th??ng khai bo l public, ?? chng c th? truy c?p t? b?t c???u.e) Trong m?t t?p ch??ng trnh (hay cn g?i l m?t ??n v? bin d?ch) ch? c m?t l?p???c khai bo l public, v tn l?p public ny ph?i trng v?i tn c?a t?p k? c? ch?hoa, ch? th??ng

    1.2. Khai bo thu?c tnhTr? l?i l?p Stackpublic class Stack {private Vector items;// a method with same name as a member variablepublic Vector items() {...}}

    Trong l?p Stack trn ta c m?t thu?c tnh ???c ??nh ngh?a nh? sau:private Vector items;

    Vi?c khai bo nh? trn ???c g?i l khai bo thu?c tnh hay cn g?i l bi?n thnh vin l?pT?ng qut vi?c khai bo m?t thu?c tnh ???c vi?t theo m?u sau:

    Trong ?:

  • Trang 40

    accessLevel c th? l m?t trong cc t? public, private, protected ho?c c th? b? tr?ng, ngh?a c?a cc b? t? ny ???c m t??? ph?n trn

    - static l t? kho bo r?ng ?y l m?t thu?c tnh l?p, n l m?t thu?c tnh s? d?ngchung cho c? l?p, n khng l c?a ring m?t ??i t??ng no.

    - transient v volatile ch?a ???c dng - type l m?t ki?u d? li?u no ? name l tn c?a thu?c tnhCh : Ta ph?i phn bi?t ???c vi?c khai bo nh? th? no l khai bo thu?c tnh, khai both? no l khai bo bi?n thng th??ng? Cu tr? l?i l t?t c? cc khai bo bn trong thn c?am?t l?p v bn ngoi t?t c? cc ph??ng th?c v hm t?o th ? l khai bo thu?c tnh, khaibo ? nh?ng ch? khc s? cho ta bi?n.1.3. Khai bo ph??ng th?cTrong l?p Stack trn ta c ph??ng th?c push dng ?????y m?t ??i t??ng vo ??nh ng?nx?p, n ???c ??nh ngh?a nh? sau:

    C?ng gi?ng nh? m?t l?p, m?t ph??ng th?c c?ng g?m c 2 ph?n: ph?n khai bo v ph?nthn- Ph?n khai bo g?m c nh?ng ph?n sau( chi ti?t c?a khai bo ???c m t? sau):

    - Ph?n thn c?a ph??ng th?c g?m cc l?nh ?? m t? hnh vi c?a ph??ng th?c, cc hnh viny ???c vi?t b?ng cc l?nh c?a java.II. Chi ti?t v? khai bo m?t ph??ng th?c1. T?ng qut m?t ph??ng th?c ???c khai bo nh? sau:

    accessLevel //m t? m?c ?? truy c?p ??n ph??ng th?cstatic //?y l ph??ng th?c l?pabstract //?y l ph??ng th?c khng c ci ??tfinal //ph??ng th?c ny khng th? ghi ?native //ph??ng th?c ny????c vi?t trong m?t ngn ng? khcsynchronized //?y l ph??ng th?c ??ng b?returnType //gi tr? tr? v? c?a ph??ng th?cMethodName //tn c?a ph??ng th?cthrowsexception

    //khai bo cc ngo?i l? c th?? ???c nem ra t? ph??ngth?c

    Trong ?:

  • Trang 41

    - accessLevel c th? l m?t trong cc t? kho public, private, protected ho?c b? tr?ng, ngh?a c?a cc b? t? ny ???c m t? trong ph?n khai bo l?p- static l t? kho bo cho java bi?t ?y l m?t ph??ng th?c l?p- abstract t? kho cho bi?t ?y l m?t l?p tr?u t??ng, n khng c ci ??t.- final ?y l t? kho bo cho java bi?t ?y l ph??ng th?c khng th? ghi ? t? l?p con- native??y l t? kho bo cho java bi?t ph??ng th?c ny ???c vi?t b?ng m?t ngn ng?l?p trnh no?? khng ph?i l java ( th??ng ???c vi?t b?ng C/C++)- synchronized??y l m?t ph??ng th?c ??ng b?, n r?t h?u ch khi nhi?u ph??ng th?ccng truy c?p???ng th?i vo ti nguyn mi?n g?ng- returnType l m?t ki?u d? li?u, ?y l ki?u tr? v? c?a ph??ng th?c, khi ph??ng th?ckhng tr? v? d? li?u th ph?i dng t? kho void- MethodName l tn c?a ph??ng th?c, tn c?a ph??ng th?c ???c ??t theo quy t?c ??t tnc?a java- throws l t? kho dng ?? khai bo cc ngo?i l? c th?????c nm ra t? ph??ng th?c,theo sau t? kho ny l danh sch cc ngo?i l? c th?????c ph??ng th?c ny nm ra

    Ch :1) N?u trong l?p c t nh?t m?t ph??ng th?c tr?u t??ng th l?p ? ph?i l l?p tr?u???ng2) khng c thu?c tnh tr?u t??ng3) ta khng th? t?o ??i t??ng c?a l?p tr?u t??ng4) khc v?i ngn ng? C/C++, java b?t bu?c b?n ph?i khai bo gi tr? tr? v? cho ph??ngth?c, n?u ph??ng th?c khng tr? v? d? li?u thi dng t? kho void (trong C/C++ khi takhng khai bo gi tr? tr? v? th m?c ??nh gi tr? tr? v? l int)

    2. Nh?n gi tr? tr? v? t? ph??ng th?cTa khai bo ki?u gi tr? tr? v? t? lc ta khai bo ph??ng th?c, bn trong thn c?a

    ph??ng th?c ta ph?i s? d?ng pht bi?u return value; ?? nh?n v? k?t qu?, n?u hm ???ckhai bo ki?u void th ta ch? s? d?ng pht bi?u return; m?nh ?? return ?i khi cn ???cdng ?? k?t thc m?t ph??ng th?c.3. Truy?n tham s? cho ph??ng th?c

    Khi ta vi?t cc ph??ng th?c, m?t s? ph??ng th?c yu c?u ph?i c m?t s? tham s?,cc tham s? c?a m?t ph??ng th?c ???c khai bo trong l?i khai bo ph??ng th?c, chngph?i ???c khai bo chi ti?t c bao nhiu tham s?, m?i tham s? c?n ph?i cung c?p chochng m?t ci tn v ki?u d? li?u c?a chng.V d?: ta c m?t ph??ng th?c dng ?? tnh t?ng c?a hai s?, ph??ng th?c ny ???c khaibo nh? sau:

    public double tongHaiSo(double a, double b){return (a + b);

    }1. Ki?u tham s?

    Trong java ta c th? truy?n vo ph??ng th?c m?t tham s? c ki?u b?t k?, t? ki?u d?li?u nguyn thu? cho ??n tham chi?u ??i t??ng.2. Tn tham s?

    Khi b?n khai bo m?t tham s???? truy?n vo ph??ng th?c th b?n ph?i cung c?p chon m?t ci tn, tn nay ???c s? d?ng bn trong thn c?a ph??ng th?c ?? tham chi?u ??ntham s?????c truy?n vo.

  • Trang 42

    Ch : Tn c?a tham s? c th? trng v?i tn c?a thu?c tnh, khi ? tn c?a tham s? s?che ?i tn c?a ph??ng th?c, b?i v?y bn trong thn c?a ph??ng th?c m c tham s? ctn trng v?i tn c?a thu?c tnh, th khi nh?c ??n ci tn ? c ngh?a l nh?c ??n tham s?.3. Truy?n tham s? theo tr?

    Khi g?i m?t ph??ng th?c m tham s? c?a ph??ng th?c c ki?u nguyn thu?, th b?nsao gi tr? c?a tham s? th?c s? s?????c chuy?n ??n ph??ng th?c, ?y l ??c tnh truy?ntheo tr? ( pass- by value ), ngh?a l ph??ng th?c khng th? thay ??i gi tr? c?a cc thams? truy?n vo.Ta ki?m tra ???u ny qua v d? sau:public class TestPassByValue {public static void test(int t) { t++; System.out.println("Gia tri c?a t bi?n trong ham sau khi tang len 1 la " + t);}public static void main(String[] args) { int t = 10; System.out.println("Gia tri c?a t tru?c khi g?i ham = " + t); test(t); System.out.println("Gia tri c?a t truoc khi g?i ham = " + t);}}Ta s? nh?n ???c k?t qu? ra nh? sau:Gia tri c?a t truoc khi g?i ham = 10Gia tri c?a t bn trong ham sau khi tang len 1 la 11Gia tri c?a t truoc khi g?i ham = 104. Thn c?a ph??ng th?c

    Trong v d? sau thn c?a ph??ng th?c isEmpty v ph??ng th?c pop????c in ??m vc m?u ??class Stack {static final int STACK_EMPTY = -1;Object[] stackelements;int topelement = STACK_EMPTY;...boolean isEmpty() {if (topelement == STACK_EMPTY)

    return true;else

    return false;}Object pop() {if (topelement == STACK_EMPTY)

    return null;else { return stackelements[topelement--]; }}V d?: Xy d?ng l?p manimport java.lang.*;import java.io.*;import java.util.*;public class Man

  • Trang 43

    {protected String ten; int namsinh;public Man(String name,int birthday){

    ten=name;namsinh=birthday;}

    public int tuoi() {Calendar now=Calendar.getInstance();

    return (now.get(Calendar.YEAR) - namsinh); }public void hienthi() {System.out.println("Ho va ten:"+ten); System.out.println("Ho va ten:"+tuoi()); }public void HienThiNgay() { Calendar now=Calendar.getInstance(); System.out.println("Ngay hien tai=" +now.get(Calendar.DATE)); System.out.println("Thang hien tai=" +now.get(Calendar.MONTH)); System.out.println("Nam hien tai=" +now.get(Calendar.YEAR)); System.out.println("Gio hien tai=" +now.get(Calendar.HOUR)); System.out.println("Phut hien tai=" +now.get(Calendar.SECOND));

    }

    III. T? kho thisThng th??ng bn trong thn c?a m?t ph??ng th?c ta c th? tham chi?u ??n cc

    thu?c tnh c?a ??i t??ng ?, tuy nhin trong m?t s? tnh hu?ng ??c bi?t nh? tn c?a thams? trng v?i tn c?a thu?c tnh, lc ? ?? ch? cc thnh vin c?a ??i t??ng ? ta dng t?kho this, t? kho this dng ?? ch????i t??ng ny.V d? sau ch? ra cho ta th?y trong tnh hu?ng ny b?t bu?c ph?i dng t? kho this v tntham s? c?a ph??ng th?c t?o d?ng l?i trng v?i tn c?a thu?c tnh

    class HSBColor {int hue, saturation, brightness;HSBColor (int hue, int saturation, int brightness) {this.hue = hue;this.saturation = saturation;this.brightness = brightness;}IV. T? kho super

    Khi m?t l?p ???c k? th?a t? l?p cha trong c? l?p cha v l?p con ??u c m?tph??ng th?c trng tn nhau, th? th lm th? no c th? g?i ph??ng th?c trng tn ? c?al?p cha, java cung c?p cho ta t? kho super dng ?? ch????i t??ng c?a l?p chaTa xt v d? sau

    class ASillyClass{ boolean aVariable;

    void aMethod() {aVariable = true;

    }}

  • Trang 44

    class ASillierClass extends ASillyClass{ boolean aVariable;

    void aMethod() {aVariable = false;super.aMethod();System.out.println(aVariable);System.out.println(super.aVariable);

    }}

    trong v d? trn ta th?y trong l?p cha c ph??ng th?c tn l aMethod trong l?p con c?ngc m?t ph??ng th?c cng tn, ta cn th?y c? hai l?p ny cng c m?t thu?c tnh tnaVariable ?? c th? truy c?p vo cc thnh vin c?a l?p cha ta ph?i dng t? kho super.Ch : Ta khng th? dng nhi?u t? kho ny ?? ch? l?p ng, l?p c? ch?ng h?n vi?t nh?sau l sai: super.super.add(1,4);V. S? d?ng l?p

    Sau khi khao m?t m?t l?p ta c th? xem l?p nh? l m?t ki?u d? li?u, nn ta c th?t?o ra cc bi?n, m?ng cc ??i t??ng, vi?c khai bo m?t bi?n, m?ng cc ??i t??ng c?ng???ng t? nh? khai bo m?t bi?n, m?ng c?a ki?u d? li?u nguyn thu?Vi?c khai bo m?t bi?n, m?ng ???c khai bo theo m?u sau:

    < tn_bi?n>; [kch th??c m?ng];[kch th??c m?ng] ;V? b?n ch?t m?i ??i t??ng trong java l m?t con tr? t?i m?t vng nh?, vng nh?

    ny chnh l vng nh? dng ?? l?u tr? cc thu?c tnh, vng nh? dnh cho con tr? ny th???c c?p pht trn stack, cn vng nh? dnh cho cc thu?c tnh c?a ??i t??ng ny th???c c?p pht trn heap.VI. ?i?u khi?n vi?c truy c?p ??n cc thnh vin c?a m?t l?p

    Khi xy d?ng m?t l?p ta c th? h?n ch? s? truy c?p ??n cc thnh vin c?a l?p, t?m?t ??i t??ng khc.Ta tm t?t qua b?ng sau:

    T? kho Truy c?ptrongchnh l?p?

    Truy c?ptrong l?pcon cnggi

    Truy c?ptrong l?pcon khcgi

    Truy c?p trongl?p khc cng gi

    Truy c?p trongl?p khc khc gi

    private X - - - -protected X X X X -public X X X X Xdefault X X - X -

    Trong b?ng trn th X th? hi?n cho s? truy c?p h?p l? cn th? hi?n khng th? truy c?pvo thnh ph?n ny.1. Cc thnh ph?n private

    Cc thnh vin private ch? c th? s? d?ng bn trong l?p, ta khng th? truy c?p ccthnh vin private t? bn ngoi l?p ny.

    V d?:class Alpha

  • Trang 45

    {private int iamprivate;private void privateMethod(){System.out.println("privateMethod");}}

    class Beta {void accessMethod(){Alpha a = new Alpha();a.iamprivate = 10;// khng h?p l?a.privateMethod();// khng h?p l?}}

    2. Cc thnh ph?n protectedCc thnh vin protected s?????c th?o lu?n trong ch??ng sau

    3. Cc thnh ph?n publicCc thnh vin public c th? truy c?p t? b?t c???u, ta se xem v d? sau:

    package Greek;public class Alpha {

    public int iampublic;public void publicMethod()

    { System.out.println("publicMethod");}}package Roman;import Greek.*;class Beta {void accessMethod() {Alpha a = new Alpha();a.iampublic = 10; // h?p l?a.publicMethod(); // h?p l?}}

    4. Cc thnh ph?n c m?c truy xu?t giKhi ta khai bo cc thnh vin m khng s? d?ng m?t trong cc t? public, private,

    protected th java m?c ??nh thnh vin ? c m?c truy c?p gi.V d?

    package Greek;class Alpha {int iampackage;void packageMethod() { System.out.println("packageMethod");}}package Greek;class Beta {

  • Trang 46

    void accessMethod() { Alpha a = new Alpha();a.iampackage = 10;// legala.packageMethod();// legal}

    }

  • Trang 47

    BI 2. KH?I ??U V D?N D?PI. Ph??ng th?c t?o d?ng (constructor)1. Cng d?ng

    Ph??ng th?c t?o d?ng l m?t ph??ng th?c c?a l?p ( nh?ng kh ??c bi?t ) th??ng dng?? kh?i t?o m?t ??i t??ng m?i. Thng th??ng ng??i ta th??ng s? d?ng hm t?o ?? kh?ign gi tr? cho cc thu?c tnh c?a ??i t??ng v c th? th?c hi?n m?t s? cng vi?c c?n thi?tkhc nh?m chu?n b? cho ??i t??ng m?i.2. Cch vi?t hm t?oa) ??c ???m c?a ph??ng th?c t?o d?ng hm t?o c tn trng v?i tn c?a l?p hm t?o khng bao gi? tr? v? k?t qu? n ???c java g?i t????ng khi m?t ??i t??ng c?a l?p ???c t?o ra hm t?o c th? c ??i s? nh? cc ph??ng th?c thng th??ng khc trong m?t l?p c th? c nhi?u hm t?ob) V d?V d? 1: s? d?ng hm t?o ?? in ra mn hnh xu Creating Rockclass Rock {Rock() {// This is the constructorSystem.out.println("Creating Rock");}}

    public class SimpleConstructor {public static void main(String[] args) {for(int i = 0; i < 10; i++)new Rock();// call constructor}}V d? 2: s? d?ng hm t?o c ??iclass Rock2 {Rock2(int i) {System.out.println("Creating Rock number " + i);}}public class SimpleConstructor2 {public static void main(String[] args) {for(int i = 0; i < 10; i++)new Rock2(i);// g?i hm t?o c ??i}}// /:~3. Hm t?o m?c ??nh

    Khi xy d?ng m?t l?p m khng xy d?ng hm t?o th? th java s? cung c?p cho tam?t hm t?o khng ??i m?c ??nh, hm t?o ny th?c ch?t khng lm g c?, n?u trong l?p ?c t nh?t m?t hm t?o th hm t?o m?c ??nh s? khng ???c t?o ra, khi ta t?o ra m?t ??i???ng th s? c m?t hm t?o no ? ???c g?i, n?u trnh bin d?ch khng tm th?y hm t?o???ng ?ng n s? thng bo l?i, ???u ny th??ng x?y ra khi chng ta khng xy d?ng hm

  • Trang 48

    t?o khng ??i nh?ng khi t?o d?ng ??i t??ng ta l?i khng truy?n vo tham s?, nh?????c ch?ra trong v d? sau:

    public class TestPassByValue {public TestPassByValue(String s) {System.out.println(s);}public static void main(String[] args) {TestPassByValue thu = new TestPassByValue();// l?i v l?p ny khng c hm t?o khng ??iTestPassByValue thu1 = new TestPassByValue("Hello World");// khng v?n ?? g}}4. G?i hm t?o t? hm t?o

    Khi b?n vi?t nhi?u hm t?o cho l?p, c ?i lc b?n mu?n g?i m?t hm t?o ny t?bn trong m?t hm t?o khc ?? trnh ph?i vi?t l?p m. ?? c th? g?i ??n hm t?o ta s?d?ng t? kho this.C php this(danh sch ??i s?);V d?:public class Test {public Test (){System.out.println("hm t?o khng ??i");}public Test ( int i){this();// g?i ??n hm t?o khng ??i c?a chnh l?p ny}

    public static void main(String[] args) {TestPassByValue thu=new TestPassByValue(10);}}Ch :a) bn trong c?u t? ta ch? c th? g?i ???c t?i ?a m?t c?u t?, ???u ny c ngh?a l ta khng

    th? g?i ???c t? 2 c?u t? tr? ln bn trong m?t c?u t? khc nh?????c ch? ra trong v d?sau:

    public class TestPassByValue {public TestPassByValue() {System.out.println("Day la ham tao khong doi");}public TestPassByValue(int i) {System.out.println("Day la ham tao doi so nguyen");}public TestPassByValue(String s) {this();// khng th? g?i hai hm t?o tr? ln bn trong m?t hm t?othis(10);System.out.println("Day la ham tao doi so xau");}

  • Trang 49

    public static void main(String[] args) {TestPassByValue thu = new TestPassByValue();//TestPassByValue thu1 = new TestPassByValue("Hello World");//}}b) khi g?i m?t hm t?o bn trong m?t hm t?o khc th l?i g?i hm t?o ph?i l l?nh ??u

    tin trong thn ph??ng th?c, nn v d? sau s? b? bo l?ipublic class Test{public Test () {System.out.println("Day la ham tao khong doi");}public Test (String s) {System.out.println("Day la ham tao doi so xau");this();// g?i ??n c?u t? ph?i l l?nh ??u tin}

    public static void main(String[] args) {Test thu = new Test (?Hello World?);}}

    n?u cho d?ch v d? trn trnh bin d?ch s? phn nn"Test.java": call to this must be first statement in constructor at line 7, column 9II. Kh?i kh?i ??u v danh v kh?i kh?i ??u t?nh1. Kh?i v danh

    Trong java ta c th????t m?t kh?i l?nh khng thu?c m?t ph??ng th?c no, ngh?a lkh?i ny khng thu?c b?t c? ph??ng th?c no k? c? hm t?o. khi ? kh?i l?nh ny ???cg?i l kh?i v danh, kh?i v danh ny ???c java g?i th?c thi khi m?t ??i t??ng ???c t?ora, cc kh?i v danh ???c g?i tr??c c? hm t?o, thng th??ng ta hay s? d?ng kh?i v danh?? kh?i ??u cc thu?c tnh c?a l?p ho?c ???c s? d?ng ?? kh?i t?o cho cc th?c tnh c?am?t l?p v danh(v l?p v danh khng c tn do v?y ta khng th? vi?t hm t?o cho l?pny, trong tr??ng h?p ny kh?i v danh l gi?i php duy nh?t )V d?: ? v d? ny ta c 3 kh?i v danh, khi ch?y java cho th?c thi cc kh?i v danh nytheo th? t? t? trn xu?ng d??i

    public class Untitled1{// hm t?opublic Untitled1 (){ System.out.println ( "Day la ham tao" );} // b?t ??u kh?i v danh{

    System.out.println ( "khoi khoi dau thu 3 ");}// k?t thc kh?i v danh//b?t ??u kh?i v danh{ System.out.println ( "khoi khoi dau thu 1 ");}//k?t thc kh?i v danh // b?t ??u kh?i v danh{

  • Trang 50

    System.out.println ( "khoi khoi dau thu 2 ");}//k?t thc kh?i v danhpublic static void main ( String[] args ){ Untitled1 dt1 = new Untitled1 (); Untitled1 dt2 = new Untitled1 ();}}khi ch?y ch??ng trnh s? cho k?t qu? sau:

    khoi khoi dau thu 3khoi khoi dau thu 1khoi khoi dau thu 2Day la ham taokhoi khoi dau thu 3khoi khoi dau thu 1khoi khoi dau thu 2Day la ham tao

    2. Kh?i kh?i ??u t?nhKh?i kh?i ??u t?nh l m?t kh?i l?nh bn ngoi t?t c? cc ph??ng th?c, k? c? hm

    t?o, tr??c kh?i l?nh ny ta ??t t? kho static, t? kho ny bo cho java bi?t ?y l kh?ikh?i ??u t?nh, kh?i ny ch?????c g?i 1 l?n khi ??i t??ng ??u tin c?a l?p ny ???c t?o ra,kh?i kh?i ??u t?nh ny c?ng ???c java g?i t????ng tr??c b?t c? hm t?o no, thng t???ngta s? d?ng kh?i kh?i ??u t?nh ?? kh?i ??u cc thu?c tnh t?nh ( static ), sau ?y l m?t vd? c 1 kh?i kh?i ??u t?nh v m?t kh?i v danh, ?? b?n th?y ???c s? khc nhau gi?a kh?ikh?i ??u t?nh v kh?i v danhpublic class Untitled1{public Untitled1 (){ System.out.println ( "?y l hm t?o" );}static {// ?y l kh?i kh?i ??u t?nh System.out.println ( "?y l kh?i kh?i ??u t?nh"); System.out.println("Kh?i ny ch?????c g?i 1 l?n khi th? hi?n ??u tin c?a l?p ???c??o ra");}{//?y l kh?i v danh System.out.println ( "?y l kh?i v danh ");}public static void main ( String[] args ){ Untitled1 dt1 = new Untitled1 ();/ / t?o ra th? hi?n th? nh?t c?a l?p Untitled1 dt2 = new Untitled1 ();/ / t?o ti?p th? hi?n th? 2 c?a l?p}}khi cho ch?y ch??ng trnh ta s?????c k?t qu? ra nh? sau:?y l kh?i kh?i ??u t?nhKh?i ny ch?????c g?i 1 l?n khi th? hi?n ??u tin c?a l?p ???c t?o ra

  • Trang 51

    ?y l kh?i v danh?y l hm t?o?y l kh?i v danh?y l hm t?oNhn vo k?t qu? ra ta th?y kh?i kh?i ??u t?nh ch?????c java g?i th?c hi?n 1 l?n khi ??i???ng ??u tin c?a l?p ny ???c t?o, cn kh?i v danh ???c g?i m?i khi m?t ??i t??ngm?i ???c t?o raIII. D?n d?p: k?t thc v thu rc1. Ph??ng th?c finalize

    Java khng c ph??ng th?c h?y b?. Ph??ng th?c finalize t??ng t? nh? ph??ngth?c h?y b? c?a C++, tuy nhin n khng ph?i l ph??ng th?c h?y b?. S? d? n khngph?i l ph??ng th?c h?y b? v khi ??i t??ng ???c h?y b? th ph??ng th?c ny ch?a ch?c? ???c g?i ??n. Ph??ng th?c ny ???c g?i ??n ch? khi b? thu rc c?a Java ???c kh?i??ng v lc ? ??i t??ng khng cn ???c s? d?ng n?a. Do v?y ph??ng th?c finalize cth? khng ???c g?i ??n.

    2. C? ch? gom rc c?a javaNg??i l?p trnh C++ th??ng s? d?ng ton t? new ?? c?p pht ??ng m?t ??i t??ng,

    nh?ng l?i th??ng qun g?i ton t? delete ?? gi?i phng vng nh? ny khi khng cn dng??n n?a, ???u ny lm r r? b? nh???i khi d?n ??n ch??ng trnh ph?i k?t thc m?t cchb?t th??ng, qu? th?t ?u l m?t ???u t?i t?. Trong java ta khng c?n quan tm ??n ???u ?,java c m?t c? ch? thu rc t????ng, n ?? thng minh ?? bi?t ??i t??ng t??ng no khngdng n?a, r?i n t????ng thu h?i vng nh? dnh cho ??i t??ng ?.

    Trong ngn ng? C++ khi m?t ??i t??ng b? ph hu?, s? c m?t hm ???c g?i t???ng, hm ny ???c g?i l hu? t? hay cn g?i l hm hu?, thng th??ng hm hm hu?m?c ??nh l ?? l ????? d?n d?p, tuy nhin trong m?t s? tr??ng h?p th hm hu? m?c ??nhl?i khng th???p ?ng ???c, do v?y ng??i l?p trnh C++, ph?i vi?t ra hm hu? ring ?? lmvi?c ?, tuy nhin java l?i khng c khi ni?m hm hu? hay m?t ci g ? t??ng t?.

  • Trang 52

    BI 3. CC THNH PH?N T?NHI. Thu?c tnh t?nh

    Thu?c tnh ???c khai bo v?i t? kho static g?i l thu?c tnh t?nhV d?:class Static{static int i = 10;// ?y l thu?c tnh t?nhint j = 10;// ?y l thu?c tnh th??ng}+ Cc thu?c tnh t?nh ???c c?p pht m?t vng b? nh? c????nh, trong java b? nh? dnh chocc thu?c tnh t?nh ch?????c c?p pht khi l?n ??u tin ta truy c?p ??n n.+ Thnh ph?n t?nh l chung c?a c? l?p, n khng l c?a ring m?t ??i t??ng no c?.+ ?? truy xu?t ??n thu?c tnh t?nh ta c th? dng m?t trong 2 cch sau:

    tn_l?p.tn_thu?c_tnh_t?nh;tn_??i_t??ng.tn_thu?c_tnh_t?nh;

    c? 2 cch truy xu?t trn ??u c tc d?ng nh? nhau+ kh?i gn gi tr? cho thu?c tnh t?nhthnh ph?n t?nh ???c kh?i gn b?ng m?t trong 2 cch sau: S? d?ng kh?i kh?i ??u t?nh (xem l?i bi tr??c ) S? d?ng kh?i ??u tr?c ti?p khi khai bo nh? v d? trnCh : Ta khng th? s? d?ng hm t?o ?? kh?i ??u cc thu?c tnh t?nh, b?i v hm t?okhng ph?i l ph??ng th?c t?nh.II. Ph??ng th?c t?nhM?t ph??ng th?c ???c khai bo l static ???c g?i l ph??ng th?c t?nhV d?:class Static{

    static int i;// ?y l thu?c tnh t?nh// ph??ng th?c t?nhstatic void println (){

    System.out.println ( i );}

    }

    + Ph??ng th?c t?nh l chung cho c? l?p, n khng l? thu?c vo m?t ??i t??ng c? th? no+ L?i g?i ph??ng th?c t?nh xu?t pht t?:

    tn c?a l?p: tn_l?p.tn_ph??ng_th?c_t?nh(tham s?);tn c?a ??i t??ng: tn_??i_t??ng. tn_ph??ng_th?c_t?nh(tham s?);

    + V ph??ng th?c t?nh l ??c l?p v?i ??i t??ng do v?y ? bn trong ph??ng th?c t?nh takhng th? truy c?p cc thnh vin khng t?nh c?a l?p ?, t?c l bn trong ph??ng th?ct?nh ta ch? c th? truy c?p ??n cc thnh vin t?nh m thi.+ Ta khng th? s? d?ng t? kho this bn trong ph??ng th?c t?nh

  • Trang 53

    BI 4. N?P CH?NG PH??NG TH?CI. Khi ni?m v? ph??ng th?c b?i t?i

    Java cho php ta xy d?ng nhi?u ph??ng th?c trng tn nhau, trong cng m?t l?p, hi?n???ng cc ph??ng th?c trong m?t l?p c tn gi?ng nhau ???c g?i l b?i t?i ph??ng th?c.II. Yu c?u c?a cc ph??ng th?c b?i t?i

    Do s? d?ng chung m?t ci tn cho nhi?u ph??ng th?c, nn ta ph?i cho java bi?t c?nph?i g?i ph??ng th?c no ?? th?c hi?n, java d?a vo s? khc nhau v? s? l??ng ??i c?ngnh? ki?u d? li?u c?a cc ??i ny ?? phn bi?t cc ph??ng th?c trng tn ?.V d?:

    public class OverloadingOrder {static void print(String s, int i) {System.out.println("String: " + s +", int: " + i);}static void print(int i, String s) {System.out.println("int: " + i +", String: " + s);}public static void main(String[] args) {print("String first", 11);print(99, "Int first");}}// /:~Ch :1) N?u n?u java khng tm th?y m?t hm b?i t?i thch h?p th n s????a ra m?t thng

    bo l?i2) Ta khng th? s? d?ng gi tr? tr? v? c?a hm ?? phn bi?t s? khc nhau gi?a 2

    ph??ng th?c b?i t?i3) Khng nn qu l?m d?ng cc ph??ng th?c b?i t?i v trnh bin d?ch ph?i m?t th?i

    gian phn ?on ?? tm ra hm thch h?p, ???u ny ?i khi cn d?n ??n sai st4) Khi g?i cc hm n?p ch?ng ta nn c l?nh chuy?n ki?u t??ng minh ?? trnh bin

    d?ch tm ra hm ph h?p m?t cch nhanh nh?t5) Trong java khng th????nh ngh?a ch?ng ton t? nh? trong ngn ng? C++, c th??y l m?t khuy?t ???m, nh?ng nh?ng ng??i thi?t k? java cho r?ng ???u ny lkhng c?n thi?t, v n qu ph?c t?p.

  • Trang 54

    BI 5. K? TH?A (INHERITANCE)I. L?p c? s? v l?p d?n xu?t- M?t l?p ???c xy d?ng thng qua k? th?a t? m?t l?p khc g?i l l?p d?n xu?t (hay cng?i l l?p con, l?p h?u du? ), l?p dng ?? xy d?ng l?p d?n xu?t ???c g?i l l?p c? s? (hay cn g?i l l?p cha, ho?c l?p t? tin ) M?t l?p d?n xu?t ngoi cc thnh ph?n c?a ring n, n cn ???c k? th?a t?t c? cc

    thnh ph?n c?a l?p cha

    II. Cch xy d?ng l?p d?n xu?t?? ni l?p b l d?n xu?t c?a l?p a ta dng t? kho extends, c php nh? sau:class b extends a

    {// ph?n thn c?a l?p b}

    III. Th?a k? cc thu?c tnhTh?c tnh c?a l?p c? s?????c th?a k? trong l?p d?n xu?t, nh? v?y t?p thu?c tnh c?a l?pd?n xu?t s? g?m: cc thu?c tnh khai bo trong l?p d?n xu?t v cc thu?c tnh c?a l?p c?s?, tuy nhin trong l?p d?n xu?t ta khng th? truy c?p vo cc thnh ph?n private, packagec?a l?p c? s?IV. Th?a k? ph??ng th?cL?p d?n xu?t k? th?a t?t c? cc ph??ng th?c c?a l?p c? s? tr?: Ph??ng th?c t?o d?ng Ph??ng th?c finalizeV. Kh?i ??u l?p c? s?

    L?p d?n xu?t k? th?a m?i thnh ph?n c?a l?p c?, ?i?u ny d?n ta ??n m?t hnhdung, l l?p d?n xu?t c cng giao di?n v?i l?p c? s? v c th? c cc thnh ph?n m?i b?sung thm. nh?ng th?c t? khng ph?i v?y, k? th?a khng ch? l sao chp giao di?n c?a l?pc?a l?p c? s?. Khi ta t?o ra m?t ??i t??ng c?a l?p suy d?n, th n ch?a bn trong n m?ts? v?t con c?a l?p c? s?, s? v?t con ny nh? th? ta ? t?o ra m?t s? v?t t??ng minh c?al?p c? s?, th? th l?p c? s? ph?i ???c b?o ??m kh?i ??u ?ng, ?? th?c hi?n ???u ? tr?ngjava ta lm nh? sau:Th?c hi?n kh?i ??u cho l?p c? s? b?ng cch g?i c?u t? c?a l?p c? s? bn trong c?u t? c?al?p d?n xu?t, n?u b?n khng lm ?i?u ny th java s? lm gip ban, ngh?a l java lun t???ng thm l?i g?i c?u t? c?a l?p c? s? vo c?u t? c?a l?p d?n xu?t n?u nh? ta qun lm?i?u ?, ?? c th? g?i c?u t? c?a l?p c? s? ta s? d?ng t? kho super

    V d? 1: v d? ny khng g?i c?u t? c?a l?p c? s? m?t cch t??ng minhclass B{

    public B () { System.out.println ( "Ham tao c?a lop co so" );}}public class A extends B{ public A () {// khng g?i hm t?o c?a l?p c? s? t??ng minh System.out.println ( "Ham tao c?a lop dan xuat" );}

  • Trang 55

    public static void main ( String arg[] ){ A thu = new A ();}}

    K?t qu? ch?y ch??ng trnh nh? sau:Ham tao c?a lop co soHam tao c?a lop dan xuat

    V d? 2: v d? ny s? d?ng t? kho super ?? g?i c?u t? c?a l?p c? s? m?t cch t??ng minhclass B{ public B () { System.out.println ( "Ham tao c?a lop co so" ); }}public class A extends B{ public A () { super();// g?i t?o c?a l?p c? s? m?t cch t??ng minh System.out.println ( "Ham tao c?a lop dan xuat" ); }public static void main ( String arg[] ){ A thu = new A ();}}

    khi ch?y ch?ng trnh ta th?y k?t qu? gi?ng h?t nh? v d? trnCh 1: N?u g?i t??ng minh c?u t? c?a l?p c? s?, th l?i g?i ny ph?i l l?nh ??u tin,n?u v d? trn ??i thnh

    class B{ public B () {System.out.println ( "Ham tao c?a lop co so" );}}public class A extends B{public A () {// L?i g?i c?u t? c?a l?p c? s? khng ph?i l l?nh ??u tin System.out.println ("Ham tao c?a lop dan xuat");

    super ();}public static void main ( String arg[] ){ A thu = new A ();}}

    N?u bin d?ch ???n m ny ta s? nhn ???c m?t thng bo l?i nh? sau:"A.java": call to super must be first statement in constructor at line 15, column 15Ch 2: ta ch? c th? g?i ??n m?t hm t?o c?a l?p c? s? bn trong hm t?o c?a l?p d?nxu?t, v d? ch? ra sau ? b? bo l?i

    class B{ public B (){System.out.println ( "Ham tao c?a lop co so" );}

    public B ( int i ) {System.out.println ( "Ham tao c?a lop co so" );}

  • Trang 56

    }public class A extends B{ public A () {super ();

    super ( 10 );/ / khng th? g?i nhi?u h?n 1 hm t?o c?a l?p c? s? System.out.println ( "Ham tao c?a lop dan xuat" ); }public static void main ( String arg[] ){ A thu = new A ();}}

    1. Tr?t t? kh?i ??uTr?t t? kh?i ??u trong java ???c th?c hi?n theo nguyn t?c sau: java s? g?i c?u t?

    c?a l?p c? s? tr??c sau ? m?i ??n c?u t? c?a l?p suy d?n, ???u ny c ngh?a l trong cyph? h? th cc c?u t? s?????c g?i theo tr?t t? t? g?c xu?ng d?n ??n l2. Tr?t t? d?n d?p

    M?c d java khng c khi ni?m hu? t? nh? c?a C++, tuy nhin b? thu rc c?a javav?n ho?t ??ng theo nguyn t?c lm vi?c c?a c?u t? C++, t?c l tr?t t? thu rc th ng??c l?iso v?i tr?t t? kh?i ??u.VI. Ghi ? ph??ng th?c ( Override )

    Hi?n t??ng trong l?p c? s? v l?p d?n xu?t c hai ph??ng th?c gi?ng h?t nhau ( c?tn l?n b? tham s?) g?i l ghi ? ph??ng th?c ( Override ), ch Override khc Overload.G?i ph??ng th?c b? ghi ? c?a l?p c? s?Bn trong l?p d?n xu?t, n?u c hi?n t??ng ghi ? th ph??ng th?c b? ghi ? c?a l?p c? s?s? b???n ?i, ?? c th? g?i ph??ng th?c b? ghi ? c?a l?p c? s? ta dng t? kho super ?? truyc?p ??n l?p cha, c php sau:

    super.overridden MethodName();

    Ch : N?u m?t ph??ng th?c c?a l?p c? s? b? b?i t?i ( Overload ), th n khng th? b? ghi? ( Override ) ? l?p d?n xu?t.VI. Thnh ph?n protected

    Trong m?t vi bi tr??c ta ? lm quen v?i cc thnh ph?n private, public, sau khi? h?c v? k? th?a th t? kho protected cu?i cng ? c ngh?a.T? kho protected bo cho java bi?t ?y l thnh ph?n ring t????i v?i bn ngoi nh?ng l?is?n sng v?i cc con chuVII. T? kho final

    T? kho final trong java c nhi?u ngh?a khc nhau, ngh?a c?a n tu? thu?c vo ng?c?nh c? th?, nh?ng ni chung n mu?n ni ci ny khng th? thay ??i ???c.1. Thu?c tnh final

    Trong java cch duy nh?t ?? t?o ra m?t h?ng l khai bo thu?c tnh l finalV d?:

    public class A{ // ??nh ngh?a h?ng tn MAX_VALUE gi tr? 100 static final int MAX_VALUE = 100;public static void main ( String arg[] )

  • Trang 57

    { A thu = new A (); System.out.println("MAX_VALUE= " +thu.MAX_VALUE);}}

    Ch :1) Khi ? khai bo m?t thu?c tnh l final th thu?c tnh ny la h?ng, do v?y ta khng th?

    thay ??i gi tr? c?a n2) Khi khai bo m?t thu?c tnh l final th ta ph?i cung c?p gi tr? ban ??u cho n3) N?u m?t thu?c tnh v?a l final v?a l static th n ch? c m?t vng nh? chung duy

    nh?t cho c? l?p

    2. ??i s? finalJava cho php ta t?o ra cc ??i final b?ng vi?c khai bo chng nh? v?y bn trong

    danh sch ??i, ngh?a l bn trong thn c?a ph??ng php ny, b?t c? c? g?ng no ?? thay??i gi tr? c?a ??i ??u gy ra l?i lc d?chV d? sau b? bo l?i lc d?ch v n c? g?ng thay ??i gi tr? c?a ??i finalpublic class A{ static public void thu ( final int i ) { i=i+1;//khng cho php thay ??i gi tr? c?a tham s? final System.out.println ( i );; }public static void main ( String arg[] ){ int i = 100; thu ( i );}}ch??ng trnh ny s? b? bo l?i:"A.java": variable i might already have been assigned to at line 5, column 93. Ph??ng th?c final

    M?t ph??ng th?c bnh th??ng c th? b? ghi ? ? l?p d?n xu?t, ?i khi ta khngmu?n ph??ng th?c c?a ta b? ghi ? ? l?p d?n xu?t v l do g ?, m?c ?ch ch? y?u c?acc ph??ng th?c final l trnh ghi ?, tuy nhin ta th?y r?ng cc ph??ng th?c privates? t????ng l final v chng khng th? th?y ???c trong l?p d?n xu?t ln chng khngth? b? ghi ?, nn cho d b?n c cho m?t ph??ng th?c private l final th b?n c?ng ch?th?y m?t hi?u ?ng no

    4. L?p finalN?u b?n khng mu?n ng??i khc k? th?a t? l?p c?a b?n, th b?n hy dng t? kho