Đăng ký Đăng nhập
Trang chủ Chatting program...

Tài liệu Chatting program

.DOC
101
42
141

Mô tả:

Kho¸ luËn tèt nghiÖp §¹i häc – Chatting Program LêI C¶M ¥N Tríc tiªn em xin ch©n thµnh c¶m ¬n thÇy Lª V¨n Minh ®· tËn t×nh híng dÉn vµ gióp ®ì vÒ tµi liÖu, thiÕt bÞ ®Ó em hoµn thµnh kho¸ luËn nµy. Xin c¶m ¬n c¸c thÇy c« trong khoa C«ng nghÖ th«ng tin cïng c¸c thÇy c« gi¸o trêng §¹i häc Vinh ®· truyÒn thô cho em nh÷ng tri thøc quý b¸u trong suèt 4 n¨m häc qua. C«ng ¬n d¹y dç cña thÇy c« chØ cã thÓ ®Òn ®¸p b»ng th¸i ®é häc tËp nghiªm tóc vµ h¨ng say, em sÏ cè g¾ng lµm ®îc ®iÒu ®ã kh«ng chØ trong qu¸ tr×nh lµm kho¸ luËn mµ trong c¶ qu¸ tr×nh c«ng t¸c sau nµy. Sù quan t©m gióp ®ì cña bè mÑ, gia ®×nh vµ b¹n bÌ còng lµ mét nguån ®éng viªn lín, con mong r»ng nh÷ng g× lµm ®îc trong qu¸ tr×nh häc tËp nµy sÏ lµ mét phÇn nhá bÐ ®Òn ®¸p c«ng ¬n cña bè mÑ vµ lßng tin tëng cña mäi ngêi. Vinh ngµy 26/05/2003 Sinh viªn :Ph¹m thÞ Thanh - 71 - Gi¸o viªn hd : ThS Lª V¨n Minh, Sinh viªn th : Ph¹m ThÞ Thanh Môc Lôc Ch¬ng I : §Æt VÊn §Ò 1. Giíi thiÖu vÒ chat 2. Lùa chän c«ng cô thùc hiÖn ch¬ng ii : ng«n ng÷ lËp tr×nh java 1. Tæng quan vÒ ng«n ng÷ java 2. LËp tr×nh giao diÖn 3. LËp tr×nh víi JFC 4. Xö lý luång vµ tËp tin 5. §iÒu khiÓn sù kiÖn 6. LËp tr×nh m¹ng Ch¬ng iii : ph©n tÝch bµI to¸n vµ cµI ®Æt ch¬ng tr×nh Ch¬ng iV : Híng ph¸t triÓn Tµi liÖu tham kh¶o -2- Kho¸ luËn tèt nghiÖp §¹i häc – Chatting Program Ch¬ng I : §Æt vÊn ®Ò 1.Giíi thiÖu vÒ chat CHAT,CHAT,CHAT Trß chyÖn trªn Net B¹n cã rÊt nhiÒu ®iÒu cÇn ph¶i trao ®æi víi b¹n bÌ häc hái kinh nghiÖm, t©m sù chia sÎ buån vui, trao ®æi vÒ mét vÊn ®Ò g× ®ã..Nhng b¹n cña b¹n l¹i kh«ng ë gÇn b¹n, hä cã thÓ ®ang häc ë Hµ Néi, ®ang ë Sµi Gßn hay du häc bªn Mü, B¹n gäi ®iÖn tho¹i ? B¹n kh«ng thÓ nãi ®îc nhiÒu nh mong muèn mµ l¹i rÊt tèn kÐm. B¹n cã qu¸ nhiÒu thêi gian r¶nh rçi trong ngµy ? ChØ cÉn ®Õn tra lµ xong hÕt viÖc, nöa ngµy cßn l¹i ch¼ng biÕt lµm g× ? B¹n ®· qu¸ mÖt mái, kiÖt søc víi ®èng bµi vë ë trêng? B¹n c¨ng th¼ng, lo ©u, stress v× c«ng viÖc c«ng ty ? B¹n c« ®¬n, kh«ng t×m ra ngêi t©m sù ? B¹n lµ mét c« g¸i rôt rÌ, khÐp kÝn, kh«ng tù tin giao tiÕp ë chèn ®«ng ngêi ? Hay b¹n ®ang tß mß muèn kh¸m ph¸ thÕ giíi ? Hoan h« “chat” trªn Internet : mét bíc tiÕn vît lªn c¶ e-mail vµ newsgroup .V©ng, dÜ nhiªn e-mail vµ newsgroup ®Òu rÊt tuyÖt – b¹n göi th ®i vµ nhËn th vÒ. - 71 - Gi¸o viªn hd : ThS Lª V¨n Minh, Sinh viªn th : Ph¹m ThÞ Thanh Nhng nÕu b¹n muèn ®îc håi ®¸p ngay th× sao? B¹n ph¶i nãi chuyÖn thùc sù víi ai ®ã. å kh«ng, kh«ng thùc sù “nãi”, mµ lµ “gâ ch÷” ®Õn ngêi kia. B¹n gâ ch÷, hä gâ tr¶ lêi tiÕp. GÇn nh lµ ®iÖn ®µm, chØ cã ®iÒu kh«ng cã tiÕng ®»ng h¾ng dän giäng, kh«ng cã tiÕng cêi khóc khÝch, còng kh«ng cã nhiÔu xuyªn ©m. H¬i bÞ chËm n÷a Thùc ra chat chØ lµ mét h×nh thøc b¾t chíc nghÌo nµn cña ®iÖn ®µm nhng dÉu sao nã còng cã nhiÒu u ®iÓm kh«ng thÓ phñ nhËn: Tõ Vinh mµ nãi chuyÖn víi ngêi th©n ë California qua Internet rÎ h¬n nhiÒu so víi nãi chuyÖn b»ng ®iÖn tho¹i B¹n cã thÓ liªn hÖ víi mét ngêi mµ b¹n kh«ng n¾m sè ®iÖn tho¹i, chØ cã ®Þa chØ Internet Nhãm ®«ng ngêi cã thÓ tæ chøc cuéc häp trùc tuyÕn dÔ h¬n vµ rÎ tiÒn h¬n. Víi vµi hÖ thèng, b¹n thùc sù cã thÓ truyÒn ®i mét tËp tin m¸y tÝnh trong thêi gian ®µm tho¹i -®è b¹n lµm ®îc trªn m¸y ®iÖn tho¹i kh«ng d©y! NÕu tiÕp xóc víi ngêi níc ngoµi, b¹n cã dÞp trau dåi ngo¹i ng÷ - thêng lµ tiÕng Anh -®Æc biÖt lµ tiÕng lãng, ng«n ng÷ th«ng tôc . Nguyªn t¾c c¬ b¶n khi chat trªn trang Web lµ chän cho m×nh mét nichname ( biÖt hiÖu) vµ chän phßng t¸n gÉu. Lo¹i h×nh trß chuyÖn thø ba lµ göi th«ng ®iÖp tøc thêi (instant messaging). §èi víi lo¹i h×nh nµy, b¹n sÏ ®îc liªn l¹c kÝn ®¸o, tay ®«i víi ngêi nµo tuú ý. Cã thÓ lËp ra danh s¸ch nh÷ng ngêi mµ b¹n muèn trß chuyÖn, do vËy khi ngêi cã tªn trong danh s¸ch lªn Net, b¹n sÏ ®îc th«ng b¸o vÒ ®iÒu ®ã, ®ång thêi nh÷ng ngêi kia còng ®îc -4- Kho¸ luËn tèt nghiÖp §¹i häc – Chatting Program th«ng b¸o vÒ t×nh tr¹ng trùc tuyÕn cña b¹n . Víi nh÷ng lîi Ých nh vËy, viÖc viÕt mét ch¬ng tr×nh chat ®Ó cã thÓ ch¹y ®îc trªn m¹ng lµ mét c«ng viÖc kh¸ thó vÞ nã liªn quan ®Õn nhiÒu kiÕn thøc vÒ chuyÓn th«ng tin trªn m¹ng, giao diÖn víi ngêi dïng, lu tr÷ th«ng tin... 2. Lùa chän c«ng cô thùc hiÖn LËp tr×nh híng ®èi tîng (OOP) lµ con ®êng míi mÎ cho c¸c nhµ lËp tr×nh. §èi tîng lµ kh¸i niÖm c¬ së cña OOP. Nã kh«ng chØ lµ nh÷ng con sè, còng kh«ng chØ lµ nh÷ng cÊu tróc th«ng thêng. Nã bao gåm c¸c sè liÖu nh lµ nh÷ng thuéc tÝnh riªng (properties) vµ c¸c hµm nh lµ c¸c ph¬ng thøc (methods) ®Ó nã trao ®æi víi c¸c ®èi tîng kh¸c. Thay v× ph¶i chuyÓn cho nhau nh÷ng sè liÖu trong hÖ thèng më, nh b»ng c¸c hµm, trong OOP, c¸c ®èi tîng dïng th«ng b¸o ®Ó göi th«ng tin, d÷ liÖu cho nhau vµ ®Ó nh¾c ®èi tîng kia ph¶i thùc hiÖn nhiÖm vô cña m×nh. C¸c nguyªn lý vÒ lµm viÖc víi ®èi tîng lµ nh÷ng ®iÒu ®Çu tiªn cÇn ph¶i biÕt cña lËp tr×nh viªn.. §ã lµ mét khèi chøa c¸c d÷ liÖu (gäi lµ biÕn, vïng hay thuéc tÝnh) biÓu diÔn nh÷ng tÝnh n¨ng cña ®èi tîng vµ ph¬ng thøc biÓu diÔn c¸c øng xö cña ®èi tîng tríc t¸c ®éng cña c¸c ®èi tîng kh¸c hay chÝnh nã. §èi tîng cã thÓ ®îc nh©n b¶n hay thªm tÝnh n¨ng mµ kh«ng lµm h c¸c ®Þnh nghÜa cò. Khi mét ch¬ng tr×nh cÇn më réng, chóng ta chØ cÇn ®Þnh nghÜa thªm c¸c thuéc tÝnh, c¸c ph¬ng thøc cho ®èi tîng s½n cã hay cã thÓ nh©n b¶n thªm cho phï hîp víi nh÷ng ho¹t ®éng míi. C¸c ®èi tîng cã thÓ më réng hay dÉn xuÊt tõ mét ®èi tîng kh¸c, do ®ã thêi gian viÕt lÖnh sÏ gi¶m ®i. Quan - 71 - Gi¸o viªn hd : ThS Lª V¨n Minh, Sinh viªn th : Ph¹m ThÞ Thanh träng h¬n lµ, còng tõ ®iÒu trªn, viÖc bÉy lçi vµ söa ch÷a sÏ gi¶m ®i rÊt nhiÒu v× ta chØ cÇn xem xÐt trªn líp míi t¹o mµ th«i. Sö dông OOP, ta còng cã sù ®¬n gi¶n t¬ng tù. Ta t¹o mét cÊu tróc chøa d÷ liÖu vµ ®Þnh nghÜa c¸c ph¬ng thøc ®Ó lµm viÖc víi d÷ liÖu. Nh thÕ, ®èi tîng t¹o vµ kÕt hîp d÷ liÖu b»ng m· lÖnh. Chóng ta cã mét ®èi tîng cã ®ñ ®iÒu. Bíc ph¸t triÓn thø hai cña kh¸i niÖm ®èi tîng lµ t¹o ®îc nhiÒu ®èi tîng míi trªn nÒn cña mét ®èi tîng cao cÊp. VÊn ®Ò thø ba lµ cÇn ph¶i lÊy ®îc ®èi tîng lµ tËp hîp nhiÒu thùc thÓ. C¸i sai lÇm thêng m¾c ph¶i trong lËp tr×nh thñ tôc lµ ta nghÜ r»ng d÷ liÖu lµ cè ®Þnh. VÝ dô trong thñ tôc xuÊt d÷ liÖu ra mµn h×nh. VÊn ®Ò x¶y ra khi ta ph¶i chän mµn h×nh, thay ®æi c¸c ®iÒu kiÖn m«i trêng (lo¹i mµn h×nh, ®é ph©n gi¶i, card xö lý.. ) vµ ph¶i xuÊt d÷ liÖu ra trªn nhiÒu mµn h×nh kh¸c nhau. KÕt qu¶ viÖc xuÊt d÷ liÖu trªn mµn h×nh sÏ kh«ng gièng nhau khi chuyÓn ch¬ng tr×nh sang mét mµn h×nh míi. Trong trêng hîp nµy, OOP x¸c ®Þnh râ rµng lµ thñ tôc xuÊt d÷ liÖu ra mµn h×nh lµ riªng cña mµn h×nh ®ã. NghÜa lµ chóng ta cã nh÷ng ®èi tîng mµn h×nh kh¸c nhau cã c¸c ph¬ng thøc xuÊt d÷ liÖu ra mµn h×nh kh¸c nhau. Sau hÕt, nÕu B¹n nghÜ r»ng: “ nÕu t«i cã hai mµn h×nh kh¸c nhau th× khi t«i muèn in ra mµn h×nh, t«i cÇn ph¶i x¸c ®Þnh ®óng vÞ trÝ cÇn in trªn tõng mµn h×nh vµ chó ý ®Õn c¸c t¬ng t¸c víi ngêi dïng ë nh÷ng cöa sæ kh¸c nhau”, th× B¹n cÇn nªn biÕt r»ng trong OOP, B¹n kh«ng cÇn ph¶i lµm ®iÒu ®ã. Bëi v× sau khi -6- Kho¸ luËn tèt nghiÖp §¹i häc – Chatting Program B¹n ®· trõu tîng ho¸ ®Çy ®ñ c¸c yÕu tè cña mét ®èi tîng mµn h×nh, lóc b¹n sÏ viÕt thñ tôc, c¸c yÕu tè cô thÓ sÏ kh«ng cßn ¶nh hëng ®Õn thñ tôc b¹n viÕt ®èi tîng mµn h×nh sÏ tÝnh to¸n giïm b¹n. Tæ chøc m· lÖnh LËp tr×nh híng ®èi tîng sÏ tæ chøc c¸c m· lÖnh cña b¹n mét c¸ch gän gµng v× hai nh©n tè sau:  Khi sö dông ®óng, OOP b¾t buéc ta ph¶i tæ chøc c¸c m· lÖnh thµnh nhiÒu ®o¹n nhá ®Ó dÔ qu¶n lý.  Vµ v× dïng OOP, mçi ®o¹n m· nhá ®ã sÏ ®îc tæ chøc rÊt tù nhiªn, kh«ng cÇn ta ph¶i suy nghÜ nhiÒu vÒ viÖc tè chøc. Java híng ®èi tîng Sù hç trî lËp tr×nh híng ®èi tîng lµ cèt lâi cña java. Mäi ho¹t ®éng, mäi c©u lÖnh cña java ®Òu ph¶i t¸c ®éng lªn vµ qua c¸c ®èi tîng. Mµ tîng trng cho chung lµ c¸c Líp (class). §èi tîng lµ nh÷ng mÉu (instance) cña líp. Trong ý nghÜa nµy, líp cã thÓ ®îc xem nh mét c¸i khu«n ®óc nªn c¸c ®èi tîng. LÊy h×nh ch÷ nhËt lµm vÝ dô, ta cã thÓ t¹o ra mét h×nh ch÷ nhËt víi to¹ ®é x,y cña ®Ønh thø nhÊt, chiÒu dµi, chiÒu réng, c¸ch di chuyÓn, ph¬ng thøc ®æi kÝch thíc t¹o ra mét líp Rectangle, vµ viÕt m· lÖnh cho nã. Nh thÕ khi thùc hiÖn c¸c m· lÖnh, ta cÇn t¹o ra mét mÉu cña líp nµy. MÉu Êy chÝnh lµ mét ®èi tîng Rectangle cô thÓ Sù kÕ thõa vµ thiÕt kÕ OOP §Ó cã thÓ ph¸t triÓn thªm cho øng dông, cã mét c«ng thøc cÇn theo: + Chia nhá m· lÖnh thµnh ®¬n vÞ nhá nhÊt: Khi viÕt mét ch¬ng tr×nh OOP ®iÒu cÇn thiÕt ®Çu tiªn lµ ph¶i h×nh dung ®ñ c¸c thµnh phÇn. Sau ®ã chia nhá chóng thµnh c¸c ®¬n vÞ nhá nhÊt. VÝ dô víi yÕu tè viªn ®¹n, ta cã c¸c ®¬n vÞ yÕu tè nhá h¬n lµ cã thÓ ch¸y, kÝch thíc viªn ®¹n, tÇm s¸t th¬ng, sè lîng. + Xem xÐt c¸c tÝnh chÊt chung gi÷a c¸c ®¬n vÞ trªn: - 71 - Gi¸o viªn hd : ThS Lª V¨n Minh, Sinh viªn th : Ph¹m ThÞ Thanh Bíc kÕ tiÕp lµ xem xÐt kü mèi liªn hÖ chung gi÷a c¸c ®¬n vÞ thµnh phÇn. VÝ dô trong ch¬ng tr×nh qu¶n lý th viÖn, thñ th vµ ngêi mîn ®Òu cã tÝnh chung lµ ngêi: cã tªn tuæi, cã chøc vô, cã ®Þa chØ. VËy ta cã ®a c¶ hai ®èi tîng nµy vµo cïng mét líp? + Xem xÐt sù kh¸c nhau gi÷a c¸c ®¬n vÞ: Ngîc l¹i trªn, ta sÏ ph©n tÝch c¸c ®¬n vÞ cã ®iÒu g× kh¸c biÖt mµ kh«ng thÓ gom l¹i. Trë l¹i vÝ dô võa nªu, râ rµng thñ th lµ ngêi qu¶n lý, coi nh së h÷u cuèn s¸ch, cã nhiÖm vô ph¶i nhËn l¹i cuèn s¸ch ®· cho mîn, cßn ngêi mîn ph¶i tr¶ l¹i cuèn s¸ch ®· mîn. + T×m tÝnh chÊt chung nhÊt cña tÊt c¶ c¸c ®¬n vÞ: RÊt hiÕm khi ta kh«ng thÓ t×m thÊy mét tÝnh chÊt nµo chung cho mäi ®¬n vÞ. Nh thÕ, cã thÓ mét ®¬n vÞ nµo ®ã kh«ng dïng chung bÊt kú tÝnh chÊt nµo víi nh÷ng ®¬n vÞ kh¸c. Ta h·y xÐt mét ch¬ng tr×nh trß ch¬i chiÕn ®Êu, viªn ®¹n, m¸y bay, ngêi b¶o vÖ, nhµ cöa, râ rµng lµ rÊt kh¸c nhau, tuy vËy ta cã thÓ thÊy nh÷ng c¸i chung cña m¸y bay, ngêi, viªn ®¹n, cã thÓ di chuyÓn, m×n, nhµ cöa, m¸y bay, ngêi cã thÓ bÞ næ, nh÷ng tÝnh chÊt chung nµo bao trïm lªn mäi ®¬n vÞ? Cã mét ®iÒu râ rµng mµ b¹n cã thÓ quªn lµ chóng ®Òu cã thÓ vÏ trªn mµn h×nh. Nh vËy chóng ta cã líp Draw_Object. + Gom c¸c tÝnh chÊt chung vµ lÆp l¹i. Ta s¾p xÕp c¸c ®¬n vÞ cã chung mét sè tÝnh chÊt l¹i víi nhau vµ lÆp l¹i nhiÒu lÇn nh vËy cho ®Õn møc thÊp nhÊt. + Sö dông c¸c ®èi tîng ®Ó thªm vµo theo yªu cÇu Trong nhiÒu trêng hîp, ngêi sö dông yªu cÇu thªm c¸c yÕu tè míi. Ta chØ nªn t¹o nh÷ng ®èi tîng míi h¬n lµ ®Þnh nghÜa nh÷ng biÕn míi. §iÒu nµy dÔ thÊy ë nh÷ng ai ®· tõng lËp tr×nh víi c¸c ng«n ng÷ kh¸c. Ta thêng hay t¹o ra mét biÕn míi bÊt kú lóc nµo ta cÇn. Víi OOP, khi cÇn ta h·y t¹o h¼n mét ®èi tîng míi. -8- Kho¸ luËn tèt nghiÖp §¹i häc – Chatting Program Ch¬ng II : Ng«n ng÷ lËp tr×nh java 1. tæng quan vÒ Ng«n ng÷ Java 1.1 Ghi chó Chóng ta rÊt cÇn c¸c ghi chó ®Ó gîi nhí l¹i qu¸ tr×nh suy nghÜ cña m×nh, kiÓm ngiÖm c¸c lËp luËn vµ nhÊt lµ khi chóng ta cÇn bæ sung, söa ch÷a, n©ng cÊp ch¬ng tr×nh. Java hç trî hai c¸ch ghi chó: B¾t ®Çu KÕt thóc Môc ®Ých /* */ §o¹n v¨n bÞ giíi h¹n lµ phÇn ghi chó - 71 - Gi¸o viªn hd : ThS Lª V¨n Minh, Sinh viªn th : Ph¹m ThÞ Thanh // ( kh«ng cã g×) lµ ghi chó / ** */ h¹n lµ phÇn ghi PhÇn c©u v¨n cßn l¹i PhÇn c©u v¨n bÞ giíi chó dïng cho JavaDoc 1.2 .Tõ kho¸ abstract, boolean, Break, Byte, Case, Catch, Char, Class, const, continue, default, do, double, else, extends, final, finally,float, for, goto, if, implements, import, instanceof, int, inferface, long, native,new, package, private, protected, public, return, short, static, super, switch, synchronized, this, throw, throws, transient, try, void, volatile, while. Chóng ta còng lu ý r»ng True, False dï kh«ng n»m trong danh s¸ch c¸c tõ kho¸ cña Java, còng vÉn lµ hai gi¸ trÞ thËt sù vµ cã thÓ coi lµ tõ khãa. 1.3 . KiÓu d÷ liÖu Java cã hai lo¹i: 1. KiÓu d÷ liÖu gèc ( chuÈn) – Primitive type 2. KiÓu d÷ liÖu dÉn xuÊt – Reference types KiÓu d÷ liÖu gèc lµ c¸c khèi d÷ liÖu ®· ®îc x¸c ®Þnh trong ng«n ng÷. Nh vËt chÊt ®îc cÊu t¹o tõ c¸c nguyªn tö, th× c¸c kiÓu d÷ liÖu phøc t¹p ®îc t¹o thµnh tõ c¸c d÷ liÖu gèc. C¸c kiÓu d÷ liÖu gèc cña Java bao gåm c¸c nhãm sau: sè nguyªn, sè thùc( dÊu chÊm ®éng) ký tù ( character) gi¸ trÞ ®óng sai ( Boolean). T¬ng tù nh C / C++ , trong java, ta khai b¸o mét biÕn theo mÉu sau kiÓu d÷ liÖu tªn biªn 1.4. §Æt tªn h»ng vµ biÕn ViÖc ®Æt trªn cho mét h»ng vµ biÕn cÇn theo nh÷ng nguyªn t¾c sau: - 10 - Kho¸ luËn tèt nghiÖp §¹i häc – Chatting Program + ChØ b¾t ®Çu b»ng mét ký tù (ch÷), mét dÊu g¹ch díi hay mét dÊu dollard $ + Kh«ng cã kho¶ng tr¾ng gi÷a tªn + Sau ký tù ®Çu, cã thÓ dïng c¸c ký tù (ch÷), ký sè, dÊu dollard, dÊu g¹ch díi + Kh«ng trïng víi c¸c tõ kho¸ Chó ý r»ng trong Java, cã ph©n biÖt ch÷ thêng vµ ch÷ in. Ta cã thÓ dïng ch÷ in nh LONG ®Ó biÓu thÞ mét biÕn hay h»ng dï trïng víi tõ kho¸ long. Tuy nhiªn chóng t«i ®Ò nghÞ kh«ng dïng c¸ch nµy 1.5. M¶ng Nh ®· nãi ë trªn, ngoµi kiÓu d÷ liÖu gèc, Java cßn cã lo¹i d÷ liÖu dÉn xuÊt. Cã 3 kiÓu d÷ liÖu dÉn xuÊt: 1. M¶ng ( array) 2. Líp ( class) 3. Giao tiÕp ( inferface) Chóng ta sÏ t×m hiÓu Líp vµ Giao tiÕp ë ®o¹n dµnh riªng, cßn M¶ng th× t¬ng ®èi ®¬n gi¶n vµ cã liªn quan nhiÒu ®Õn c¸c kiÓu d÷ liÖu gèc sÏ ®îc tr×nh bµy trong cïng ®o¹n nµy. 1.5.1 . Khai b¸o: §Æc trng cña m¶ng lµ ®îc ®Æt trong cÆp ngoÆc vu«ng “[ ]” (bracket symbols). Mét m¶ng ®îc khai b¸o b»ng hai c¸ch: 1. CÆp ngoÆc vu«ng ®Æt sau tªn biÕn 2. CÆp ngoÆc vu«ng ®Æt sau kiÓu d÷ liÖu 1.5.2 . §Þnh vÞ ( allocation) Sau khi khai b¸o, b¶n th©n m¶ng cha ®îc x¸c ®Þnh. M¶ng cÇn ®îc ®Þnh vÞ trong vïng nhí, nãi c¸ch kh¸c cÇn ®îc cÊp vïng nhí. Kh«ng nh c¸c ng«n ng÷ kh¸c, kÝch thíc cña m¶ng kh«ng dîc x¸c ®Þnh ngay khi khai b¸o 1.5.3 . Khëi t¹o ( initialization) Còng cã thÓ ®Þnh vÞ mét m¶ng b»ng c¸ch liÖt kª c¸c phÇn tö cña nã 1.5.4 . Truy cËp mét m¶ng - 71 - Gi¸o viªn hd : ThS Lª V¨n Minh, Sinh viªn th : Ph¹m ThÞ Thanh C¸c phÇn tö trong mét m¶ng lu«n ®îc ®¸nh sè b¾t ®Çu tõ sè 0. PhÇn tö ®Çu tiªn lµ phÇn tö thø 0, vµ phÇn tö cuèi cïng cña mét m¶ng n phÇn tö sÏ cã sè thø tù lµ n1. Ta cã thÓ tham kh¶o gi¸ trÞ cña mét phÇn tö b»ng c¸ch g¸n sè thø tù cña phÇn tö ta muèn truy cËp vµo gi÷a hai cÆp ngoÆc vu«ng 1.6. To¸n tö vµ BiÓu thøc To¸n tö trong mét ng«n ng÷ thêng ®îc ®Ó t¹o ra hay thay ®æi c¸c gi¸ trÞ cña ch¬ng tr×nh. Java cã mét tËp hîp rÊt phong phó c¸c to¸n tö (cßn gäi lµ t¸c tö) C¸c to¸n tö ®îc chia lµm hai lo¹i: To¸n tö ®«i: cÇn cã 2 to¸n h¹ng, t¹o ra mét gi¸ trÞ míi lµ kÕt cña 2 to¸n h¹ng nµy. To¸n tö ®¬n: chØ cÇn mét to¸n h¹ng, t¹o ra mét gi¸ trÞ míi lµ kÕt cña sù thay ®æi gi¸ trÞ cña to¸n h¹ng. 1.6.1 . Tæng qu¸t = > < ! ~ ? : == <= >= |= && ++ -- + - * / & | ^ % << >> >>> += -= *= /= ^= %= &= |= >>= >>>= 1.6 .2 . §iÒu khiÓn || - 12 - <<= Kho¸ luËn tèt nghiÖp §¹i häc – Chatting Program §iÒu khiÓn c¸c hÖ lÖnh kiÓm tra vµ ®iÒu khiÓn qu¸ tr×nh thùc hiÖn c¸c c©u lÖnh sao cho ch¬ng tr×nh thùc hiÖn ®óng vµ ®¹t ®îc yªu cÇu ®Æt ra. Th«ng thêng c¸c c©u lÖnh ®îc thùc hiÖn tuÇn tù thµnh mét tiÕn tr×nh (program flow). Tuy nhiªn tïy theo d÷ liÖu, cã nh÷ng lóc c¸c c©u lÖnh kh«ng cßn tu©n theo quy luËt tuÇn tù. Chóng cã thÓ nh¶y sang mét híng tiÕn tr×nh kh¸c (rÏ nh¸nh- branching, hay nh¶yjumping) hay lÆp l¹i tiÕn tr×nh (vßng lÆp- looping). §Ó thùc hiÖn nh÷ng cÊu tróc lÖnh trªn ta cã c¸c cÊu tróc ®iÒu khiÓn sau: 1.6.3 . Lùa chän Khi cã sù rÏ nh¸nh dùa trªn mét quyÕt ®Þnh, ta gäi ®ã lµ sù lùa chän: 1.6.3.1 . LÖnh if .. then LÖnh if .. then lµ mét phÐp thö cña mét biÓu thøc Boolean. If < biÓu thøc Boolean> then < khèi lÖnh> ; NÕu biÓu thøc Boolean ®óng, khèi lÖnh 1 sÏ ®îc thùc hiÖn, cßn biÓu thøc ®ã sai, khèi lÖnh 1 sÏ bá qua. Mét h×nh thøc kh¸c cña if .. then lµ if .. then .. else .. if < biÓu thøc boolean> then < khèi lÖnh 1> else < khèi lÖnh 2 > NÕu biÓu thøc boolean ®óng, thùc hiÖn khèi lÖnh 1, ngîc l¹i thùc hiÖn khèi lÖnh 2 1.6.3.2 . LÖnh Switch Víi vÝ dô trªn chóng ta cã qu¸ nhiÒu else if lµm rÊt khã xem xÐt l¹i qu¸ tr×nh lùa chän cña m×nh. Víi lÖnh switch t¬ng tù nh cña C/C++ ta cã liÖt kª dÔ dµng h¬n CÊu tróc lÖnh Switch < biÓu thøc> { case < gi¸ trÞ 1> : < khèi lÖnh 1 > ; case < gi¸ trÞ 2> : < khèi lÖnh 2 > ; case < gi¸ trÞ 3> : < khèi lÖnh 3 > ; default : < khèi lÖnh default > ; - 71 - Gi¸o viªn hd : ThS Lª V¨n Minh, Sinh viªn th : Ph¹m ThÞ Thanh } NÕu biÓu thøc cã gi¸ trÞ b»ng gi¸ trÞ 1, thùc hiÖn khèi lÖnh 1 NÕu biÓu thøc cã gi¸ trÞ b»ng gi¸ trÞ i, thùc hiÖn khèi lÖnh i Cßn biÓu thøc kh«ng tháa m·n tÊt c¶ c¸c gi¸ trÞ ®· liÖt kª, thùc hiÖn khèi lÖnh default. 1.6.4 . Vßng lÆp Vßng lÆp lµ mét nguyªn lý kh«ng thÓ thiÕu trong bÊt kú ng«n ng÷ lËp tr×nh nµo. Kh«ng cã nh÷ng vßng lÆp, viÖc gi¶i quyÕt c¸c vÊn ®Ò thùc tÕ sÏ chØ ®¹t ®îc mét giíi h¹n nµo ®ã. C¸c cÊu tróc vßng lÆp trong Java còng t¬ng tù nh trong C/C++ 1.6.4.1 .Vßng lÆp for CÊu tróc lÖnh: for (< khëi t¹o> ; < biÓu thøc kiÓm tra> ; < bíc nh¶y>) < khèi lÖnh> ; B¾t ®Çu víi gi¸ trÞ khëi t¹o cña biÕn ®Õm, khèi lÖnh ®îc thùc hiÖn. Sau mçi lÇn thùc hiÖn xong khèi lÖnh, biÕn ®Õm thay ®æi gi¸ trÞ mét lîng b»ng bíc nh¶y. NÕu gi¸ trÞ cña biÕn ®Õm tháa biÓu thøc kiÓm tra th× l¹i thùc hiÖn khèi lÖnh. Cßn kh«ng tháa, vßng lÆp chÊm døt. Lu ý nªn sö dông biÕn trong vßng lÆp mét c¸ch râ rµng v× víi viÖc khai b¸o biÕn tõ tríc, ta cã thÓ sÏ kh«ng nhí r»ng biÕn ®ã ®· ®îc khai b¸o cha vµ ®· sö dông trong tiÕn tr×nh nµo råi . Thø hai lµ khi khai b¸o trong lßng cña vßng lÆp, biÕn sÏ ®îc gi¶i phãng sau khi vßng lÆp chÊm døt. §iÒu ®ã lµm ch¬ng tr×nh s¸ng sña h¬n vµ kh«ng ph¹m nh÷ng lçi trong khi ch¹y do sö dông biÕn kh«ng hîp lý. Trong c¸c thµnh phÇn cña cÊu tróc loop, ta cã thÓ bá bít mét vßng thµnh phÇn trong dßng lÖnh ®Çu. Nh cã thÓ bá qua kh«ng ghi bíc nh¶y trong dßng thø nhÊt vµ ghi vµo bªn trong khèi lÖnh. 1.6.4.2 . Vßng lÆp while - 14 - Kho¸ luËn tèt nghiÖp §¹i häc – Chatting Program CÊu tróc lÖnh: while Khèi lÖnh cña vßng lÆp while ®îc thùc hiÖn khi biÓu thøc boolean cßn cã gi¸ trÞ true. Trong cÊu tróc, java kh«ng hç trî c¸c khëi t¹o vµ c¸c bíc nh¶y. Ta ph¶i chó ý thùc hiÖn chóng trong qu¸ tr×nh thùc hiÖn khèi kÖnh. CÇn thËt cÈn thËn v× cã rÊt nhiÒu khi ta t¹o ra nh÷ng vßng lÆp vÜnh viÔn. NghÜa lµ biÓu thøc boolean lu«n lu«n ®óng. Trong trêng hîp nµy, biÓu thøc boolean ®îc kiÓm tra tríc råi míi thùc hiÖn khèi lÖnh. 1.6.4.3 Vßng lÆp do .. while CÊu tróc lÖnh : do { < khèi lÖnh> ; } while < biÓu thøc boolean> ; Vßng lÆp nµy cho thùc hiÖn khèi lÖnh råi míi kiÓm tra biÓu thøc boolean. NÕu biÓu thøc cßn ®îc tháa th× tiÕp tôc thùc hiÖn khèi lÖnh. LÖnh nµy kh¸c víi cÊu tróc while ë chç lµ cho phÐp thùc hiÖn khèi lÖnh ®îc Ýt nhÊt mét lÇn. 1.6.5. PhÐp nh¶y (jumping) Trong viÖc lËp tr×nh viÖc thùc hiÖn c¸c vßng lÆp ®«i khi kh«ng theo hÕt vßng mµ ta cã thÓ xö lý c¸c trêng hîp ®Æc biÖt ®Ó tho¸t khái vßng lÆp. Nh ta cÇn t×m mét gi¸ trÞ nµo ®ã trong mét d·y 1000 phÇn tö. Ta ph¶i thùc hiÖn vßng lÆp duyÖt d·y, so s¸nh c¸c phÇn tö cña d·y víi gi¸ trÞ cÇn t×m tõ phÇn tö ®Çu tiªn ®Õn phÇn tö cuèi cïng. Cã thÓ gi¸ trÞ ®ã lµ gi¸ trÞ phÇn tö cuèi cïng, nÕu vËy ta ph¶i duyÖt qua hÕt d·y. Nhng nÕu gi¸ trÞ ®ã lµ cña phÇn tö ®Çu tiªn hay phÇn tö ë gi÷a d·y? Râ rµng lµ khi t×m thÊy, ta ph¶i th«i duyÖt d·y. Ta nh¶y ra khái vßng lÆp. Java hç trî cho nh÷ng trêng hîp nµy víi c¸c tõ khãa break vµ continue. 1.6.6 . LÖnh break - 71 - Gi¸o viªn hd : ThS Lª V¨n Minh, Sinh viªn th : Ph¹m ThÞ Thanh break còng cho phÐp ta nh¶y ®Õn c©u lÖnh kÕ tiÕp cña cÊu tróc vßng lÆp. While < biÓu thøc boolean > { LÖnh 1 ; LÖnh 2 ; if < biÓu thøc boolean 2 > break LÖnh 3 } LÖnh 4 Khi biÓu thøc boolean 2 ®îc tho¸t (®óng), ch¬ng tr×nh bá qua kh«ng thùc hiÖn LÖnh 3, vµ nh¶y ®Õn thùc hiÖn LÖnh 4. 1.6.7. LÖnh Continue Ngîc víi lÖnh break cho phÐp ch¬ng tr×nh nh¶y ®Õn vßng lÆp, lÖnh Continue l¹i khiÕn ch¬ng tr×nh nh¶y trë l¹i ®Çu vßng lÆp Khi biÓu thøc boolean 2 lµ ®óng, ch¬ng tr×nh nh¶y trë l¹i kiÓm tra biÓu thøc boolean 1 ®Ó tiÕp tôc vßng lÆp. While < biÓu thøc boolean 1> { LÖnh 1 ; LÖnh 2 ; if < biÓu thøc boolean 2 > continue ; LÖnh 3 ; } LÖnh 4 ; 1.6.8 . Nh·n ( label) Kh«ng nh c¸c ng«n ng÷ kh¸c, Java kh«ng hç trî lÖnh goto, mÆc dï goto cã trong bé tõ khãa. Java thùc hiÖn viÖc kÕt hîp lÖnh break hay continue víi nh·n ®Ó thay thÕ lÖnh goto. 1.7. Hµm - Ph¬ng thøc (Funtion- method) - 16 - Kho¸ luËn tèt nghiÖp §¹i häc – Chatting Program Nh ®· nãi trong phÇn LËp tr×nh híng ®èi tîng, viÖc ghi tuÇn tù c¸c lÖnh trong mét ch¬ng tr×nh sÏ lµm cho ch¬ng tr×nh khã ®äc vµ khã söa ch÷a. Vµ c¸c nhµ lËp tr×nh ®· m« ®un hãa tËp lÖnh thµnh c¸c khèi lÖnh con ®éc lËp hay phô thuéc nhau, vµ chÞu t¸c dông hay thùc hiÖn mét viÖc cô thÓ riªng biÖt nµo ®Êy. ViÖc lµm nµy gióp cho ngêi thiÕt kÕ vµ b¶o hµnh ch¬ng tr×nh dÔ theo dâi c¸c tiÕn tr×nh ®Ó cã thÓ söa ch÷a, bæ xung kÞp thêi. Th«ng thêng ®Ó thùc hiÖn ®iÒu nµy, nhµ thiÕt kÕ ch¬ng tr×nh sÏ thùc hiÖn viÖc ph©n tÝch tõ trªn xuèng (Top- Down Approach). Hä chia nhá ch¬ng tr×nh thµnh tõng phÇn víi nh÷ng chøc n¨ng riªng biÖt, råi tiÕp tôc chia nhá c¸c phÇn võa tÝnh ®îc thµnh c¸c phÇn nhá h¬n cho ®Õn khi kh«ng thÓ chia nhá h¬n.  Hµm hay ph¬ng thøc trong Java ( vµ c¸c ng«n ng÷ kh¸c) chÝnh lµ c¸c khèi lÖnh ®¬n vÞ thùc hiÖn nh÷ng chøc n¨ng riªng biÖt. Trong mét vµi ng«n ng÷, hµm ®îc dïng cã ph©n biÖt víi thñ tôc ( còng lµ mét khèi lÖnh thùc hiÖn mét chøc n¨ng chuyªn biÖt nµo ®ã )  Thñ tôc lµ mét khèi lÖnh khi ®îc thùc hiÖn kh«ng tr¶ vÒ bÊt cø gi¸ trÞ nµo. Cßn hµm thêng nhËn vÒ mét gi¸ trÞ . V× trong Java kh«ng cã mét hµm nµo lµ toµn cùc mµ lu«n lu«n ph¶i t¬ng øng víi mét ®èi tîng cô thÓ, thÓ hiÖn hµnh vi øng xö cña ®èi tîng, nªn kÓ tõ ®©y ta chØ dïng kh¸i niÖm ph¬ng thøc thay cho kh¸i niÖm hµm. 1.7.1 . §Þnh nghÜa mét ph¬ng thøc Ta ®· ®Þnh nghÜa mét ph¬ng thøc b»ng c¸ch khai b¸o nh mét biªn nhng kÌm theo lµ khèi lÖnh t¬ng øng CÊu tróc < Privatel | public | ...> < void integer |.. > < tªn ph¬ng thøc > ( < ®èi sè 1> < ®èi sè 2 > .. ) { < khèi lÖnh> ; } - 71 - Gi¸o viªn hd : ThS Lª V¨n Minh, Sinh viªn th : Ph¹m ThÞ Thanh trong ®ã ^ C¸ch truy xuÊt Private: Ph¬ng thøc nµy chØ ®îc truy xuÊt bªn trong líp chøa nã Public: Cã thÓ ®îc truy xuÊt tõ bÊt kú líp bªn ngoµI nµo Protected: ChØ c¸c líp lµ dÉn xuÊt cña líp chøa ph¬ng thøc nµy míi truy xuÊt ®îc nã. Default: NÕu kh«ng khai b¸o râ c¸ch truy xuÊt, c¸c ph¬ng thøc sÏ nhËn gi¸ trÞ mÆc ®Þnh, ®ã lµ chØ ®îc truy xuÊt trong b¶n th©nlíp ®· khai b¸o nã. ^ C¸ch cËp nhËt: static: hay class. Ph¬ng thøc ®îc khai b¸o lµ static/class sÏ t¸c ®éng kh«ng phô thuéc vµo c¸c ®èi tîng cô thÓ. Ph¬ng thøc lo¹i líp hay tÜnh t¸c ®éng lªn toµn thÓ c¸c mÉu t¹o ra tõ líp chøa nã. astract: Ph¬ng thøc ®¬n gi¶n nhÊt, kh«ng cµi ®Æt g× ë trong líp khai b¸o nã. Nhng ph¬ng thøc nµy sÏ ®îc ph¸t triÓn trong c¸c líp lµ dÉn xuÊt cña líp hiÖn hµnh. final : Khi ®îc khai b¸o lµ final, ph¬ng thøc nµy ®îc b¶o vÖ kh«ng cho c¸c líp dÉn xuÊt khai b¸o vµ cµi ®Æt l¹i (overriding) native : lµ ph¬ng thøc ®îc viÕt b»ng mét ng«n ng÷ kh¸c Java. Gièng nh ph¬ng thøc abstract, ph¬ng thøc native chØ cã tªn gäi vµ khèi lÖnh rçng. Nhng kh¸c víi abstract, nã ®îc cµi ®Æt trong c¸c th viÖn dïng chung viÕt b»ng ng«n ng÷ kh¸c. Synchronyzed: khai b¸o mét ph¬ng thøc lµ synchronyzed sÏ b¶o ®¶m d÷ liÖu kh«ng bÞ sai l¹c khi cïng mét lóc 2 ph¬ng thøc truy cËp cïng mét d÷ liÖu. §èi víi mét ch¬ng tr×nh ®¬n gi¶n, ®iÒu ®ã kh«ng quan träng nhng khi ta nghiªn cøu viÖc sö dông ph©n tuyÕn (thread), nã l¹i lµ mét vÊn ®Ò lín. ^ Gi¸ trÞ tr¶ vÒ: void, integer, .. lµ c¸c kiÓu d÷ liÖu mµ ph¬ng thøc ph¶i tr¶ vÒ (void: ph¬ng thøc kh«ng tr¶ vÒ gi¸ trÞ ) - 18 - Kho¸ luËn tèt nghiÖp §¹i häc – Chatting Program C¸c ®èi sè 1, 2 lµ c¸c gi¸ trÞ ph¬ng thøc nhËn tõ c¸c ph¬ng thøc kh¸c hay tõ ch¬ng tr×nh chÝnh, vµ lµ d÷ liÖu cÇn sö lý. 1.7.2 . Gäi mét ph¬ng thøc Khi muèn mét ph¬ng thøc ®îc thùc hiÖn, ta chØ ®¬n gi¶n gäi tªn cña ph¬ng thøc vµ g¸n c¸c ®èi sè lµ c¸c gi¸ trÞ hay c¸c biÕn cã cïng kiÓu víi c¸c ®èi sè ®· ®îc khai b¸o. 1.8. Líp vµ ®èi tîng Trong phÇn nµy ta lµm viÖc víi c¸c kiÓu d÷ liÖu dÉn xuÊt cña Java líp vµ giao tiÕp. Ta còng sÏ t×m hiÓu c¬ së híng ®èi tîng cña Java th«ng qua viÖc t¹o c¸c líp, c¸c ®èi tîng vµ nh÷ng tÝnh chÊt cña chóng. 1.8.1. Líp Ta coi Líp lµ mét khu«n mÉu (template) cña mét ®èi tîng trong bao hµm c¸c d÷ liÖu cña ®èi tîng (gäi lµ vïng (field) hay thuéc tÝnh (property) vµ c¸c ph¬ng thøc t¸c ®éng lªn c¸c d÷ liÖu ®ã (gäi lµ c¸c ph¬ng thøc cña líp) Líp cã tÝnh kÕ thõa (inheritance). Mét líp (gäi lµ líp con- subclass) cã thÓ kÕ thõa tÊt c¶ c¸c vïng vµ c¸c ph¬ng thøc cña mét líp kh¸c (gäi lµ siªu líp- superclass). Líp cßn cã tÝnh ®a d¹ng (polymorphism) cho phÐp cµi ®Æt c¸c líp dÉn xuÊt rÊt kh¸c nhau tõ cïng mét líp nguån. 1. §Þnh nghÜa ®¬n gi¶n: Dïng tõ kho¸ class tríc mét tõ ®Þnh danh vµ sau ®ã lµ mét cÆp ngoÆc nhän (curly braces) class MyClass { } Ta ®Þnh nghÜa mét líp tªn MyClass. Lu c¸c dßng trªn vµo mét file tªn lµ MyClass.java, ta cã thÓ biªn dÞch thµnh mét líp MyClass trong file .CLASS vµ khi cho th«ng dÞch (ch¹y) líp nµy ch¼ng cho ra mét kÕt qu¶ g×, v× kh«ng cã g× trong th©n cña líp (khèi lÖnh gi÷a hai dÊu ngoÆc- body of class). - 71 - Gi¸o viªn hd : ThS Lª V¨n Minh, Sinh viªn th : Ph¹m ThÞ Thanh Tuy thÕ ta vÉn cã thÓ t¹o ®îc nh÷ng ®èi tîng cña líp nµy. C©u lÖnh sau khi biªn dÞch sÏ kh«ng sai nhng còng kh«ng lµm g×: MyClass my Object = new MyClass ( ) ; 2. Thuéc tÝnh (vïng cña líp- Field) §Þnh nghÜa Ta ®Þnh nghÜa thªm c¸c vïng cho líp MyClass. Vïng ®îc ®Þnh nghÜa nh khai b¸o mét biÕn trong ch¬ng tr×nh: class MyClass { int myField ; } Ta võa ®Þnh nghÜa vïng myField lµ mét vïng sè nguyªn int trong líp MyClass Truy xuÊt ( Field access) Mét nguyªn lý quan träng cña lËp tr×nh híng ®èi tîng lµ ®ãng gãi (encapsulation). §ãng gãi cho phÐp ®èi tîng dÊu ®i c¸c chi tiÕt cµi ®Æt cña nã vµ chØ c«ng bè nh÷ng g× ®èi tîng cÇn c«ng bè ®Ó trao ®æi víi c¸c ®èi tîng kh¸c. Java dïng c¸c tõ khãa: public, private, protected cho viÖc nµy. ^ Mét vïng gäi lµ public cã thÓ dîc truy cËp tõ tÊt c¶ c¸c ®èi tîng kh¸c. ^ Mét líp kh«ng thÓ truy xuÊt vïng private cña líp kh¸c. ^ Vïng protected cña mét líp cã thÓ ®îc truy cËp trong b¶n th©n líp ®ã mµ cßn cho c¸c líp dÉn xuÊt tõ líp chñ truy cËp, nhng c¸c líp kh¸c n÷a th× kh«ng ®îc. VÝ dô 1 Class Car { public String manufactuer ; public String model ; private float cost ; protected int mtime ; - 20 -
- Xem thêm -

Tài liệu liên quan

Tài liệu vừa đăng