Java基本语法之一执行HelloWorldjsp并讲解3339.docx
Java基本語法之一執行HelloWorld.jsp並講解。<%;程式碼%><% ppagee coonteentTTypee="ttextt/httml; chharsset=Bigg5" %> 網頁指指令/註解Java基基本語法法之二資料型型別exxpliiquee sccopee dee caada tippo een ppagiina33/177Java定定義了八八種prrimiitivve ddataa tyype(基基本資料料型態)(分分成三大大族類)11,數值值:整數數(inntegger)或或浮點數數(prreciisioon)22,變數數:字元元(chhar)33,邏輯輯值:bboolleann。整數:共四四種byyte(88-bitt),sshorrt(116-bbit),innt(332-bbit),loong(64-bitt)p22-4ooverrfloow不會會有警告告或只是是出現。浮點數:共共兩種ffloaat(332-bbit)八八位有效效,douublee(644-biit)117位有有效。運運算有問問題,會會有警示示出現。0.0/00.0 nott a nummberr. Javaa基本語語法之二二之1變數與常數數finnal變數(vaariaablee):是是記憶體體中被指指定來儲儲存某個個數值位位置的名名稱。變數要先宣宣告才能能使用。使使用時要要起始變變數值。變數名稱:為變數數或Jaava中中的任何何東西取取的名稱稱都為標標識者(iidenntiffierr):英英文,底底線,或金金錢符號號。變數的生命命週期Variaablee.jsppJava基基本語法法之三算術術運算子子先乘除除後加減減+-*/%。Java基基本語法法三之一一:arrithh.jssp+,-,*,/,%及+又叫作作字串串串接的運運算子Java基基本語法法三之二二:coompaarisson.jspp比較運算子子 ! !Java基基本語法法三之四四:邏輯運算子子: !Java基基本語法法三之五五:運算子Java基基本語法法三之六六:innc_ddec.jspp遞增遞減運運算子: +, -Java基基本語法法三之七七:算術指派運運算子:+= -= *= /= %= <<<= >>>>= >>>= &= |= =Java基基本語法法三之八八:connverrt.jjsp型別轉換Java基基本語法法之四:流程控控制:判斷敘敘述與迴迴圈流程程控制Java基基本語法法四之一一:if.jspp 判斷斷敘述 A,IIf(). BB,iff().ellse C, if()ellse if()ellse.if敘述if(exxpreessiion) stattemeent;if(exxpreessiion)stattemeentAA;elsestattemeentBB;Java基基本語法法四之二二:swwitcch.jjsp swiitchh(vaar) caase:brreakk; ccasee: breeak; deefauult:Java基基本語法法四之三三:foor.jjsp, neesteedfoor.jjsp foor迴圈圈foor(iinitt n; chheckk; uupgrradee) Java基基本語法法四之四四: wwhille.jjsp whhilee 迴圈圈 wwhille(eexprresssionn).Java基基本語法法四之五五:doowhiile.jspp ddo wwhille 迴迴圈 dowwhille(); /別別忘了結結尾之;Java基基本語法法四之六六:foor_bbreaak.jjsp coontiinuee.jssp breeak與與conntinnueAnif.jspp 三元元運算子子 oordeer = yoourAAge > mmyAgge? youurAgge : myyAgee;它是是一個eexprresssionn,而不不是一個個staatemmentt,所以以它可以以夾雜其其他運算算子的複複雜運算算式中。四之八之一一:Arrrayy.jssp 陣列定義陣列:doublle myAArraay = neew ddoubble1000;int mmyInntArrrayy = neww innt55;int hiisArrrayy = 33,5,7, 25, 9;int annArrraryy = neww innt55;anArrray0 = 22;anArrray1 = 33;也可如此此定義。字元陣列char messsagge = neew ccharr100;char vowwelss = a, ee, i, o, uu;字串物件Strinng mmySttrinng = “MMy ffirsst sstriing”;myStrringg = “Myy seeconnd sstriing”;Systeem.oout.priintlln(mmySttrinng); /Woork: 會輸輸出什麼麼? DDondde eestaa Myy fiirstt sttrinng ?字串陣列Strinng sstr = nnew Strringg5;publiic cclasss LLuckkySttarss pubblicc sttatiic vvoidd maain(Strringg arggs) SStriing sstarrs = "RRobeert Reddforrd" , "Maarillyn Monnroee", "BBoriis KKarllofff" , "Laassiie", "HHopaalonng CCasssidyy", "Trriggger"" ; SSysttem.outt.prrinttln("Yoour luccky staar ffor todday is " + sstarrs(intt)(sstarrs.llenggth*Matth.rranddom(); Java基基本語法法四之八八之二:陣列長長度的取取得 AAryLLen.jspp arrray_Varr.leengtthJava基基本語法法之五:Javva與物物件導向向何謂類別A claass conntaiins fieeldss annd mmethhodss。類別結構 puubliic claass Cllasss_Naame 類別成員變變數:11,實例例變數(iinsttancce vvariiablles)又又叫noonsstattic varr2,類類別變數數(cllasss vaariaablees)又又叫sttatiic vvar。類別方法變變數:11,實例例函式(iinsttancce mmethhodss)又叫叫nonnsttatiic mmethhodss2,類類別函式式(cllasss meethodds)又又叫sttatiic mmethhodss。定義函式returrn_ttypee meethoodNaame(arrg1,aargss2.,arggsn) bllockk off fuuncttionn boody 傳回值 rretuurn retturnn_vaaluee; rretuurn; /no retturnn靜態成員的的存取方方法:doublle dd = Matth.PPI; /sttatiic mmembberSysteem.oout.priintlln(dd);非靜態成員員的存取取方法:objecct_nnamee.daata_mennberr;mySphheree.xCCentter;this變變數void chaangeeRaddiiuus(ddoubble raddiuss) thiis.rradiius = rradiius; / rrefeer tto cclasss SSpheerethis 的兩種種用途i指引出出正在執執行的物物件,它它可以替替metthodd指出相相對應於於thiis的變變數syntaax: thiis.vvarNNameeii>thhis可可讓同一一claass內內的某一一connstrructtor內內明確使使用另一一connstrructtor。syntaax: thiis(aargss);classs MMM douublee a,b,cc; MM(douublee a) thiis(aa,0,1);/呼呼叫第三三個coonsttrucctorr MM(douublee a, dooublle bb) thiis(aa,b,1); / 呼叫叫第三個個connstrructtor MM(douublee a, dooublle bb, ddoubble c)/第第三個cconsstruuctoor thiis.aa=a; thiis.bb=b; thiis.cc=c; 初使化資料料成員與與初使化化區塊建構函式(CConsstruuctoor):建立物物件時,會會用到的的特定函函式。組成:1無傳回回值,也也不可有有voiid等字字樣,22函式式名稱與與類別名名稱相同同方法負載(MMethhod Oveerlooadiing)(同名異式):只與函式簽名(signature)有關(函式名稱,參數型態,順序,個數)封包(Paackaage)namesspaccingg,diirecctorriess。paackaage tall; iimpoort pacckagge;Java基基本語法法之六:字串的的處理Javaa基本語語法六之之一: Strringg.jsspStrinng vvarNNamee = neww Sttrinng(“JJavaaStrringg”);Strinng vvarNNamee = “JaavaSStriing”;Javaa基本語語法六之之二: ConnStrr.jssp 字字串的CConccateenattionn(串接接)Javaa基本語語法六之之三:字字串的比比較 CComSStr.jsppstrinngVaar.eequaals(“sttrCoonteext”);Javaa基本語語法六之之四:字字串的長長度strinngVaar.llenggth();Javaa基本語語法六之之五:字字串大小小寫轉換換 SttrMood.jjspstrinngVaar.ttoLoowerrCasse();strinngVaar.ttoUppperrCasse();Javaa基本語語法六之之六:部部份字串串的取得得 SuubSttr.jjspstrinngVaar. subbstrringg(innt sstarrtInndexx, iint enddInddex);Javaa基本語語法六之之七:尋尋找字元元或字串串 Fiind.jsppstrinngVaar.iindeexOff(Sttrinng ssubsstr);strinngVaar. lasstInndexxOf(intt chh);strinngVaar.llasttInddexOOf(SStriing subbstrr);Javaa基本語語法六之之八:取取代 rrepllacee.jsspstrinngVaar.rrepllacee(chhar olddChaar, chaar nnewCCharr);以下是濃縮縮Javva,作作為JSSP教學學的補充充教材:Java簡簡介,JJDK安安裝介紹紹,Doocummenttatiion安安裝介紹紹。Simplle (簡單)Objjectt-orrienntedd (物物件導向向)Neetwoork-savvvy (網路路功能)Intterppretted (直譯譯的)RRobuust (可靠靠,不易易發生錯錯誤)SSecuure (安全全性高)Arcchittectturee neeutrral (架構構中立)Porrtabble (可攜攜性高)Higgh pperfformmancce (高執行行效能)Mulltitthreeadeed (多執行行緒)DDynaamicc (有有彈性)Sun 公公司是如如此描述述 Jaava 語言的的:Java: A simmplee, oobjeect-oriientted, neetwoork-savvvy, innterrpreetedd, rrobuust, seecurre, arcchittectturee neeutrral, poortaablee, hhighh-peerfoormaancee, mmulttithhreaadedd, ddynaamicc laanguuagee.所有的 JJavaa 程式式都需經經過編譯譯(Coompiiledd)轉為為位元碼碼(byyteccodees),然然後由解解譯器 (Innterrpreeterr)執行行。這是是 Jaava 語言與與其他高高階語言言較不一一樣的地地方。位位元碼(byttecoodess) 並並非機器器執行碼碼(maachiine insstruuctiion codde),而而是具跨跨平台(plaatfoorm-inddepeendeent) 特質質的中間間碼(iinteermeediaate lannguaage),需由由解譯器器解譯(parrsedd)後才才可執行行。 Java 平台在目前的電電腦世界界裏,有有許多作作業平台台,如 Winndowws 995、 Winndowws NNT、MMaciintoosh、OOS/22、UNNIX 及 NNetwwaree 等。軟軟體必須須分別編編譯成各各平台的的執行檔檔才能於於各平台台執行,各各平台之之間的執執行檔並並不相容容。Java 平台是是一個新新的軟體體平台,JJavaa 虛擬擬機器 (Jaava Virrtuaal MMachhinee)。用用 Jaava 語言所所撰寫的的程式會會被編譯譯成 bbyteecodde,而而不是某某一電腦腦機種的的機器語語言。所所以不論論是在何何種平台台上,只只要這平平台上架架有 JJavaa 平台台,就可可以執行行 Jaava 程式,不不需經過過重新編編譯。Java 平台讓讓發展者者建立兩兩種不同同的程式式:1. Apppleets2. Apppliicattionn<練習> 請由導導覽器中中開啟JJavaa示範小小程式 為了簡化指指令長度度(如上上面執行行示範小小程式),在執執行 JJavaa 指令令前可先先設定環環境變數數,讓系系統能夠夠找到指指令和相相關程式式庫所在在。 set CCLASSSPAATH=C:jdkk1.44liibcclasssess.ziip;.;%CLLASSSPATTH% sett PAATH=C:jdkk1.44biin;%PATTH% 以上設定完完畢後,只只需敲入入以下指指令: >applletvviewwer .eexammplee1.hhtmll或setupp inn auutoeexecc.baatPATH C:WINNDOWWS;CC:WWINDDOWSSCOOMMAAND;C:MOUUSE;set ppathh=%ppathh%;.;c:jddk1.4biin;SET CCLASSSPAATH=c:jdkk1.44liibttoolls.jjar;Test forr coorreect of insstalllattionn:publiic cclasss TTestt puubliic sstattic voiid mmainn(Sttrinng arrgs) Syysteem.oout.priintlln(""Javva WWorlld!""); Java Souurcee Coode -> Javva CComppileer -> JJavaa Obbjecct CCodee ->> Jaava Virrtuaal mmachhinee (JJavaa Innterrpreeterr ->> Coompuuterr O.S.Java語語法,基基本資料料型態及及迴圈等等介紹。二元運算,單單元運算算(siign,inccremmentt,deecreemennt eetc.)指定敘述aassiignmmentt sttateemenntpubliic cclasss FFruiit pubblicc sttatiic vvoidd maain(Strringg arrgs) / DDecllaree annd iinittiallizee thhreee vaariaablees iint nummOraangees = 5; / Coountt off orrangges iint nummApppless = 10; / Coountt off appplees iint nummFruuit = 00; / Coountt off frruitt nnumFFruiit = nuumOrrangges + nnumAApplles; / Caalcuulatte tthe tottal fruuit / DDispplayy thhe rresuult SSysttem.outt.prrinttln("A tottallly ffruiity proograam"); SSysttem.outt.prrinttln("Tootall frruitt iss " + nnumFFruiit); 遞增(+)與遞遞減(-)ppreffix andd poostffixop=運算算子字元 chhar myyChaaraccterr = X;Escappe SSequuencce: “” p2-24Bitwiise運運算 位移運算 << >>> >>>> (<<右右邊補零零,>>>左邊要要補上ssignn符號,>>>左邊補零)程式註解 / /* */ /* */ switcch敘述述:switcch(eexprresssionn)casee n11: ccasee n22: deffaullt:變數的範圍圍(sccopee):外部已有則則內部不不可宣告告而使用用,內部部已有但但外面照照樣可宣宣告而使使用。Java無無全域變變數,只只有區域域變數。classs K iint i = 10000; /loccal varriabble之之scoope vooid f() innt ii=100; Sysstemm.ouut.pprinntlnn(i); g(); vooid g() Sysstemm.ouut.pprinntlnn(i); publiic cclasss TTesttpubllic staaticc vooid maiin(SStriing aargss) KK k = nnew K(); k.f();/ouutpuut 為為 100及10000迴圈:1forr 22whhilee 33doo whhileefor(iinittiallizaatioon_eexprresssionn; lloopp_coondiitioon; inncreemennt_eexprresssionn)whilee(exxpesssioon)dowhilee(exxpreessiion);巢狀迴圈nnestted looop(如如九九乘乘法表)contiinueelabelled conntinnuebreakklabelled breeakJava陣陣列,字字串處理理,Jaava Pacckagge介紹紹字串的操作作結合字串Strinng mmySttr = “TThe quiick broown foxx” + “ jummps oveer tthe lazzy ddog”;Strinng pphraase = “TToo manny ffoodds”;phrasse += “ makkes onee diisguust.”;子字串與搜搜尋子字字串indexxOf(intt chh)indexxOf(intt chh, iint inddex)indexxOf(Strringg sttr)indexxOf(Strringg sttr, intt inndexx)Strinng s1 = “HHelllo JJavaa.”;int iindeex;indexx = s1.inddexOOf(e);Systeem.oout.priintlln(“iindeex oof ee iss: “ + iindeex);/subbstrringgStrinng sstr = “SSpriingss.”;Strinng ssubsstr = nnulll;substtr = sttr.ssubsstriing(2);Systeem.oout.priintlln(ssubsstr);類別成員的的存取權權限控制制,類別別的延伸伸繼承與與類別的的多形存取屬性privaate /從類類別外無無法存取取完全不指定定/同一一封包中中的任何何類別proteecteed/同一一封包中中的所有有類別,以以及任何何子類別別publiic/任何何地方,任任何類別別類別的延伸伸繼承名詞解釋:衍生類別(dderiivedd cllasss)又叫叫做子類類別(ssubcclasss)基礎類別(bbasee cllasss)又叫叫做父類類別(ssupeercllasss)classs Doog.classs Sppaniiel exttendds DDog覆載(ovverrridiing)基基礎類別別的函式式(同名名同式)我們若於DDog claass定定義一個個新的publiic SStriing toSStriing()retturnn “IItss “ + nnamee + “ tthe “ + brreedd; 就是oveerrrridee。多形(poolymmorpphissm)多形的運作作是將子子類別的的物件以以基礎類類別的型型態儲存存而達成成。即父父子;父類別:狗狗叫,三三個子類類別:虎虎頭犬叫叫,北京京狗叫,吉吉娃娃叫叫。Animaal ttheAAnimmal;Animaal ttheAAnimmal nnew Dogg(“RRoveer”);/以Doogy,CCatyy,Duuckyy及Annimaal四檔檔案舉例例。orrA:之之tryypollymoorphhismmDirrecttoryy抽象類別(AAbsttracct cclasssess):凡凡類別裡裡有抽象象函式的的類別就就叫做抽抽象類別別物件的類別別轉換(CCasttingg)Spaniiel aPeet = neew SSpanniell(“FFangg”);Animaal ttheAAnimmal = (Aniimall) aaPett; / casst tthe Spaanieel tto AAnimmal;介面(innterrfacces):將多形形機制中中的函式式自原父父子類別別中抽離離成獨立立機制者者謂之。介面與抽象象類別之之差異:介面:常數數andd/orr abbstrractt fuuncttionns(不不必寫aabsttracct字樣樣,也不不必實作作)abstrractt cllasss:(非非常數)成成員aabsttracct ffuncctioons一般ffuncctioons介面字樣:用immpleemennts,但但介面與與介面間間的衍生生關係仍仍用exxtennds字字樣。檔案及物件件之串流流輸入輸輸出。串流(Sttreaam)可可想像成成一系列列流入或或流出你你程式的的位元組組。輸入串流(iinpuut sstreeam)通通常是磁磁碟中的的檔案,鍵鍵盤或是是遠端電電腦。java.io封封包支援援兩種串串流,二二進位串串流(bbinaary strreamm)及字字元串流流(chharaacteer sstreeam)File claassFile(Strringg paathnnamee) File myDDir = neww Fiile(“C:jddk1.4ssrcjavvaiio”); / aa paath onllyJava例例外處理理在例外處理理機制中中,我們們也可看看到OOOP的精精神,所所以所有有的exxcepptioon都以以claass的的形式存存在,因因此我們們也可依依inhheriitannce特特性自行行定義新新的例外外類別。JJavaa也允許許我們自自行丟出出例外。例外處理功功能不一一定處理理的就是是錯誤它也可可以用來來表示您您的程式式中一些些特殊、不不平常或或值得您您注意的的事件。但但也不一一昧的使使用例外外處理機機制,免免得造成成系統負負擔。Runtiime Exccepttionn有如下下子類別別:(系統統會自動動處理)例外處理情情形try ccatcchss ffinaallyy,trry ccatcchss,ttry finnallly ww/suub ttry cattchs等等三種,至至於第四四種trry-finnallly(無無cattch)的的若trry區塊塊內產生生RunntimmeExxcepptioon則不不寫caatchh也可編編譯及執執行成功功,因為為VM內內已有此此機制,若若方法是是可能產產生RuuntiimeEExceeptiion以外外的例外外時,若若此方法法已在別別的cllasss內有定定義,則則編譯不不能過,若若此方法法(或運運算)在在別處沒沒有定義義過,則則連編譯譯都會有有問題。所所以不建建議使用用。圖形使用者者介面(GGrapphiccal Useer IInteerfaace)的的組件(ccompponeentss)Eventt Haandllingg事件處處理公式:eventt_soourcce_oobjeect.adddXXXXLisstenner(eveent_hanndliing_tarrgett_obbjecct) lisstenner_metthodd(evventt_iddenttifyyingg_obbjecct) /eevennt_iidenntiffyinng_oobjeect 就是evventt_tyype_objjectt公用類別jjavaa.uttil pacckagge可說說是一般般用途的的工具組組,而這這個封包包所包含含的一些些類別常常被稱為為容器類類別(cconttainner claassees)物件間可有有三種不不同的積積聚(CColllecttionn)型態態:集合合(seet)、序序列(ssequuencce)及及映射(mmap)積聚內位置置的移動動:java.utiil.IIterratoor iinteerfaace(複取):被積聚類別(Collection interface)實作,只有三個非靜態方法(p10-7)whilee(itter.hassNexxt()item = (MyCClasss) iteer.nnextt();/ Doo soometthinng wwithh ittemjava.utiil.LListtIteerattor intterffacee(串列列複取):是IIterratoor的子子介面。共共9個方方法。