JAVA語言基礎(chǔ)組成_第1頁
JAVA語言基礎(chǔ)組成_第2頁
JAVA語言基礎(chǔ)組成_第3頁
JAVA語言基礎(chǔ)組成_第4頁
JAVA語言基礎(chǔ)組成_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第一個程序/文件名 hclloworld. java/聲明一個類public class helloworld /聲明一個方法public static void main (string args ) /程序的入口/輸出systcni. out. println( uhello world!” );/例子package text;public class testpublic static void main(string args)short d = 12; /短整型system, out. printin(d) ; /輸岀 dlong c = 144l; /長整型,要加1systeni.

2、 out. println(c) ; /輸岀 cint z = 15; /整型systcni. out. println(z) ; /輸岀 z char e二我;/字符型“我”systeni. out. println(e) ;/輸出 e/無編譯工具編譯運行java程序/路徑是相對路徑編譯java.javacjava源程序名稱。java /一定要加上后綴名/這個時候你會發(fā)現(xiàn)你的原程序旁邊多了一個.class文件,文件名和 源文件名稱相同/有編譯錯誤會提示運行java.java java源程序名稱/不需要加后綴名,自動運行。class文件 /顯示程序運行結(jié)果1關(guān)鍵字java 關(guān)概述關(guān)鍵字是電腦語

3、言里事先定義的,有特別意義的標識符,有時又叫保留 字,還有特別意義的變量。java的關(guān)鍵字對java的編譯器有特殊的意義,他們用來表示一種數(shù)據(jù) 類型,或者表示程序的結(jié)構(gòu)等,關(guān)鍵字不能用作變量名、方法名、類名、 包名。一個java語言中的關(guān)鍵字,用在類的聲明中來指明一個類是不能被實 例化的,但是可以被其它類繼承。一個抽象類可以使用抽象方法,抽象方 法不需要實現(xiàn),但是需要在子類中被實現(xiàn)。break一個java的關(guān)鍵字,用來改變程序執(zhí)行流程,立刻從當前語句的下一 句開始執(zhí)行從。如果后面跟有一個標簽,則從標簽對應(yīng)的地方開始執(zhí)行。casejava語言的關(guān)鍵字,用來定義一組分支選擇,如果某個值和switc

4、h中 給出的值一樣,就會從該分支開始執(zhí)行。catchjava的一個關(guān)鍵字,用來聲明當try語句塊中發(fā)生運行時錯誤或非運 行時異常時運行的一個塊。charjava語言的一個關(guān)鍵字,用來定義一個字符類型。i ntjava語言的一個關(guān)鍵字,用來定義一個整型類型數(shù)據(jù)或變量。forjava語言的一個關(guān)鍵字,是循環(huán)結(jié)構(gòu)中經(jīng)常使用的一個關(guān)鍵字,其形 式為:for (表達式1;表達式2;表達式3)其中表達式1用于給相應(yīng)的變量賦值,表達式2是條件判斷語句,表 達式3循環(huán)控制語句。ifjava語言的一個關(guān)鍵字,是用來判斷條件用的。breakjava語言的一個關(guān)鍵字,用來中斷程序的執(zhí)行,一般用在循環(huán)語句中, 用來跳

5、岀本層循環(huán),轉(zhuǎn)去執(zhí)行下而的程序。abstractbooleanbreakbytecasecatchcharclasscontinuedefaultdodoubleelseextendsfinalfinallyfloatforifimplementsimportinstanceofintinterfacelongnativenewpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttryvoidvolatilewhileabstractbooleanbreakby

6、tecasecatchcharclasscontinuedefaultdodoubleelseextendsfinalfinallyfloatforifimplementsimportinstanceofintinterfacelongnativenewpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttryvoidvolatilewhile詳細介紹 類和接口abstract標記為抽彖或包含在抽彖類中的成員必須通過從抽彖類派 生的類來實現(xiàn)。class 類,格式

7、為:class類名extends父類名稱屬性聲明及初始化;方法聲明及方法體;implements 實現(xiàn)import導(dǎo)入intcrface 接 口。格式為:interface 接口名extends 父接口 列表public static final屬性類型 屬性名二常量值;public abstract返回值類型方法名(參數(shù)列表);package打包,聲明僅僅指定了文件中所定義的類展于哪一個包。 static靜態(tài)屬性,用來描述一個類下所有對彖共享的屬性。throws扔,一個方法中發(fā)生異常但沒有捕獲,在方法頭聲明,由方法 調(diào)用者處理。/throw后不允許有其他的語句。void 空數(shù)據(jù)類型boole

8、an值只能是true和false,而不能用0和1代替,并且一定要 小寫。byte字節(jié)型char字符型double雙精度浮點型float單精度浮點型int整形long長整形short短整形流程控制break中斷switch語句的執(zhí)行,在循環(huán)語句中,同樣也是結(jié)束循環(huán)語 句的執(zhí)行。continue只跳出本次循環(huán),述要繼續(xù)執(zhí)行下一次的循環(huán)。break完全 跳出所在或者是所標記的循環(huán)。do和while連用,格式為:do 循環(huán)體;while (循環(huán)條件);/不要忘記分號;for格式為:for (表達式1;表達式2;表達式3) 循環(huán)體汀final如果不希望某個類被其他的類繼承,在這種情況下需要使用修飾 符f

9、inal來說明一個類是終極的,不能夠做父類。if格式為:if (條件表達式)功能代碼塊1else功能代碼塊/條件表達式返回值為真,則執(zhí)行功能塊,否則執(zhí)行else 功能塊。returnswitch格式為:switch (表達式)case 值 1:功能代碼1;break;case 值 2:功能代碼2;break;; case 值 n:功能代碼mbreak;default:功能代碼 others; wh ilc格式為:while (循環(huán)條件)循環(huán)體;訪問范圍protected表明被它修飾的成員變量為保護類型,在同一個包里和 public類型是一樣的,也是能夠訪問到的。但是如果在不同包里的 prote

10、cted類型的成員變量就只能通過子類來訪問,這個修飾符是區(qū)別于 其他的修飾符的。public公共的,他表示某個變量或者函數(shù)是全局函數(shù),例如:public int a表示a這個整型變量是全局變量。private私有地,private語句在模塊級別中使用,用于聲明私有變 量及分配存儲空間。類的實例new該子句創(chuàng)建一個新的對彖實例。new子句必須指定一個可以用來 創(chuàng)建實例的已定義類。可以在聲明語句或賦值語句中使用newo執(zhí)行該語 句時,它將調(diào)用指定類的構(gòu)造函數(shù),傳遞提供的所有參數(shù)。this引用屬性,當方法中的參數(shù)和某個屈性有相同的名字時,這是應(yīng) 部變量優(yōu)先,屬性被隱藏。然而,有時為了能夠在方法中以用

11、隱藏的屈性, 就可以用this區(qū)分,由this引用的就是展性,沒有this引用的則是局部 變量或者是參數(shù)。super被繼承的類稱為超類,繼承的類稱為子類。其它1、catch捕獲錯誤的語句。2、finally為了完成執(zhí)行的代碼而設(shè)計的,主要是為了程序的健壯性 和完整性,無論有沒有異常發(fā)生都執(zhí)行代碼。3> native是方法修飾符。native方法是由另外一種語言(如c/c+, fortran,匯編)實現(xiàn)的本地方法。因為在外部實現(xiàn)了方法,所以在java 代碼中,就不需要聲明了,有點類似于接口方法。native可以和其他一些 修飾符連用,但是abstract方法和interface方法不能用n

12、ative來修飾。4、strictfp修飾類和方法,意思是fp-strict,精確浮點,符合 ieee-754規(guī)范的。當一個class或interfaec用strictfp聲明,內(nèi)部所有 的float和double表達式都會成為strictfp的。interface method不能 被聲明為strictfp的,class的可以。5、try當try子句中的某行代碼發(fā)生異常,會終止程序的運行,跳傳 到catch子句來執(zhí)行。6、transilent變量修飾符。標記為transient的變量,在對象存儲 時,這些變量狀態(tài)不會被持久化。當對象序列化的保存在存儲器上時,不 希望有些字段數(shù)據(jù)被保存,為了保

13、證安全性,可以把這些字段聲明為transiento7、volat訂e volatile修飾變量。在每次被線程訪問時,都強迫從共 享內(nèi)存中重讀該成員變量的值。而且,當成員變量發(fā)生變化時,強迫線程 將變化值回寫到共享內(nèi)存。這樣在任何時刻,兩個不同的線程總是看到某 個成員變量的同一個值。8、gotojava中關(guān)鍵字表中雖然沒有g(shù)oto關(guān)鍵字但是在聲明變量時是不可以使 用該單詞的2標示符標識符概念ja腹語言中,對于變量,常量,函數(shù),語句塊也有名字,我們統(tǒng)統(tǒng)稱 之為java標識符.標識符組成javd標識符由數(shù)字,字母和下劃線(_),美元符號($)組成。在javei 中是區(qū)分大小寫的。而且還要求首位不能是

14、數(shù)字。最重要的是,java關(guān)鍵 字不能當作java標識符3注釋java注釋主要種類對于java注釋我們主要了解三種:1, /注釋一行2, /* */注釋若干行3, /*/文檔注釋說明/* */注釋若干行,并寫入javadoc文檔通常這種注釋的多行寫法如下:/*/ javadoc提取注釋的工具/*注釋內(nèi)容*/ (其余兩種和c+注釋一樣). 注:注釋內(nèi)容即不會被編譯的內(nèi)容,只是解釋說明4, 內(nèi)置注釋類型override,deprecated ,supresswarninga、override,只能用于方法(不能用于類,包括聲明或者其他結(jié)構(gòu)) 作用:可以保證編譯時override函數(shù)的聲明正確性。用

15、法:0verride public void fun() b、deprecated同樣只能用于方法。 作用:對不應(yīng)再使用的方法進行注解。用法:©deprecated public void fun/這個注釋與函數(shù)在同一行。c、supresswarnings可以注釋一段代碼。作用:關(guān)閉特定的警告信息。例如你在使用泛型的時候未指定類型。 用法:supresswarnings (value= z,unchecked,z)代碼注釋deprecated 與deprecated 的區(qū)別用deprecated注釋的程序元素,不鼓勵程序員使用這樣的元素,通 常是因為它很危險或存在更好的選擇。在使用不

16、被贊成的程序元素或在不 被贊成的代碼中執(zhí)行重寫時,編譯器會發(fā)出警告。 其次,請注意標題,這兩個標記有大小寫之分,一個是d, 個是d。 源代碼標記dcprecatcd是在jdk1. 5中作為內(nèi)置的annotation引入 的,用于表明類(class).方法(method).字段(field)已經(jīng)不再推薦使用,并且 在以后的jdk版本中可能將其刪除,編譯器在默認情況下檢測到有此標記的時候 會提示警告信息。java注釋中的©deprecated用于在用javadoc工具生成文檔的時候, 標注此類/接口、方法、字段已經(jīng)被廢止。不過后者還有一個功能就是和源代碼標記©deprecate

17、d同樣的功能, 在 jdk1. 4版本之后,該功能被©deprecated所取代。java. lang. deprectated 是 j2se 5. 0 中標準的 annotation 型態(tài)之一, 它對編譯器說明某個方法己經(jīng)不建議使用,如果有人試圖使用或重新定義該方 法,必須提岀警示訊息。舉個例子來說,您可能定義一個customobject類別,并在當中定義有 getsomething ()方法,而在一段時間之后,您不建議使用這個方法了, 并要將這個方法標示為deprectated,您可以這么作:customobject javapublic class customobject d

18、eprecated public string getsomething() return "something"如果有人試圖在繼承這個類別后重新定義getsomethingo ,或是在程 序中呼叫使用getsomethingo方法,則進行編譯時,就會出現(xiàn)這 個警訊:note: subcustomobject java uses or overrides a deprecated api.note: recompile with -xlint:deprecation for details.想要知道 詳細的警訊內(nèi)容的話,可以在編譯時加上-xline:deprecation自

19、變量,例如:>javac -xlint:deprcca.tion subcustomobjcct javasubcustomobjcct java:5: warning: deprcca.tion getsomcthing()incustomobjcct ha s been deprccated objec t get something ();1 warning java .1 ang deprecated 是個 marker annota tion, 簡單的說 就是用于標示,annotation名稱本身即包括了要給工具程序的信息。java注釋例子import java. awt. *

20、; /調(diào)用 awt 包import java. applet.*;import java. awt. color; /調(diào)用 awt 中的 color 類public class extends applet implements runnable image buffer;/定義圖像對象graphics gcontext;/定義圖形上下文thread animate;/ 定義一個線程string s二這是文字動畫;int w, h, x, y, size = 12; /定義整形變量并賦值/* applet初始化* see javaapplet.applet* return 無*/public

21、void init () w = getwidtho ;/返回組件的當前寬度。h = getheight () ;/返回組件的當前高度。buffer = createlmage (w, h) ;/創(chuàng)建一個寬w高h的圖形區(qū)域。(創(chuàng) 建一幅用于雙緩沖的、可在屏幕外繪制的圖像)gcontext = buffer. getgraphics () ;/獲得圖像使用的圖形上下文 gcontext. setcolor (color, blue) ;/設(shè)置圖形上下文的當前顏色為 藍色/* thread線程啟動操作*/public void start () /開始animatc線程if (animate =

22、null) animate = new thread (this);anima te. st art ();/* thread線程終止時的處理操作以釋放資源*/public void stop() /結(jié)束animate線程if (animate != null)animate = null;/* runnable接口的實現(xiàn)*執(zhí)行所需的操作*/public void :run() whi1e (true) /x, y的坐標設(shè)定x = (w - s. length () * size) / 2;y = (h + size) / 2;gcontext. setfont (new font (“宋體,

23、font. plain, size); gcontext. drawstring(s, x, y) ;/繪制一串字符 s 內(nèi)容的文本 repaint () ;/重畫圖形try animate, sleep (50) ;/線程休眠 50ms catch (interruptedexception e) / 捕獲異常gcontext. clearrect(0, 0, w, h) ;/通過使用當前繪圖表面的背景色 進行填充來清除指定的矩形0-要清除矩形的x坐標。0-要清除矩形的 y坐標。w -要清除矩形的寬度。h -要清除矩形的高度。if (+size > 40)size = 12;/* ap

24、plet畫圖操作方法* scc java applet applct public void paint(graphics g) g. drawlmage (buffer, 0, 0, this) ;/繪制指定的 buffer 的圖像/* applet刷新操作,重新繪制圖形* see javaapplet.applet*/public void update (graphics g) paint (g) ;/重新調(diào)用paint函數(shù)繪制圖形作用通過注釋提高java源程序代碼的可讀性;使得java程序條理清晰, 易于區(qū)分代碼行與注釋行。另外通常在程序開頭加入作者,時間,版本, 要實現(xiàn)的功能等內(nèi)容注

25、釋,方便后來的維護以及程序員的交流。速算24游戲規(guī)則如下:1、點擊“開始游戲”按鈕,游戲開始,系統(tǒng)會發(fā)出四張牌2、并把組合的表達式(四張牌的四則混合運算表達式)輸入到輸入框 里(最終結(jié)果二24)3、點擊“確定”按鈕,游戲?qū)嬎隳爿斎氲谋磉_式是否正確,并且 給出提示4、如果輸入的表達式不止確,則會讓用戶重新輸入,如果輸入的表達 式正確,則重新開始游戲猜數(shù)字游戲加注釋import java uti1 random;/ 一上來導(dǎo)入包不用說了吧public class caishuzi /服務(wù)器端口號8181static final int port = 8181;/聲明一個服務(wù)器套接字servcr

26、socket serversockct;/客戶端套接字socket socket;數(shù)據(jù)輸入流datalnputstream netln;數(shù)據(jù)輸出流dataoutputstrearn netout;/隨機數(shù)的數(shù)組int randomnum;/游戲等級int level = 0;public caishuzi () /猜數(shù)字的構(gòu)造函數(shù)initrandomnum();waitcormect ();private void initrandomnum() /初始化隨機數(shù)randomnum = new int 5 ;/數(shù)組初始化,大小為5 random ran = new random() ; /隨機數(shù)

27、類for (int i = 0; i < 5; i+) randomnumi = ran. nextint (100) ;/生成 5 個隨機數(shù),范圍 099 /private void waitconnect () /等待客戶端連接bufferedreader ansiin = new bufferedreader(newinputstreamreader (system, out. printin (z,服務(wù)器啟動.);try serversocket = new serversocket (port) ;/服務(wù)器套接字 system, out. printin (,z等待客戶端連接“

28、);socket二serversocket. accept () ;/偵聽并接受到此套接字的連接, 注意這句話會一直運行直到有客戶端連上system. out.printl" + socket);netln = new datalnputstream(socket getlnputstreamo);netout = new dataoutputstream(socketgctoutputstream();/分 別得到客戶端的輸入輸岀流,這樣就可以client-server間相互傳遞數(shù)據(jù) t catch (exception e) e. printstacktrace ();/priv

29、ate void processanswer() /應(yīng)答客戶端try string clientmsg = net in. readutf () ; /取得客戶端傳過來的字符 while (!clientmsg. equals ("end") /不停循環(huán),但如果客戶端傳 過來的字符是z/end就結(jié)束了sys tem. o ut. print in (客戶端: + die ntmsg);system, out. print c生成隨機數(shù)為 + randomnum);int clientlnputnum = integer parselnt(clientmsg) ;/扌巴客戶端

30、猜 的數(shù)字轉(zhuǎn)成int型if (clientlnputnum < 0 | | clientlnputnum > 100)/小于 0 或大于 100不行哦system, out. print (輸入超過范圍,請輸入0100以內(nèi)的數(shù)字);string servermsg 二"”;if (clientlnputnum = randomnum1evel) servermsg = 恭喜你猜對了 !"; else if (clientlnputnum > randomnumlevel) servermsg ="您輸入太大了 !"; else if (

31、clientlnputnum < randomnumlevel) servermsg ="您輸入太小了 !";以上為猜的數(shù)字和服務(wù)器生成的隨機數(shù)比,究竟是大于小于述是等 于呢,把結(jié)果設(shè)到servermsg變量netout. writeutf(servermsg) ;/然后把信息傳到客戶端if (servermsg. equals ("end") return;clientmsg = netln. readutfo ;/繼續(xù)下一次猜數(shù)字 catch (exception e) /system, out. print (連接關(guān)閉或數(shù)據(jù)處理錯誤);pub

32、lic static void main(string args) caishuzi s = new caishuzi();java模塊注釋1、源文件注釋源文件注釋采用/*/,在每個源文件的頭部要有必要的注釋 信息,包括:文件名;文件編號;版本號;作者;創(chuàng)建時間;文件描述包 括本文件歷史修改記錄等。中文注釋模版:/*文件名:* copyrright*文件編號:*創(chuàng)建人:* h期:*修改人:* h期:*描述:*版本號:*/類(模塊)注釋:類(模塊)注釋采用/*/,在每個類(模塊)的頭部要有必 要的注釋信息,包括:工程名;類(模塊)編號;命名空間;類可以運行 的jdk版本;版本號;作者;創(chuàng)建時間;

33、類(模塊)功能描述(如功能、 主要算法、內(nèi)部各部分之間的關(guān)系、該類與其類的關(guān)系等,必要時還要有 一些如特別的軟碩件要求等說明);主要函數(shù)或過程清單及本類(模塊) 歷史修改記錄等。英文注釋模版:/* copyrright* project:* module id:* comments:* jdk version used:* namespace:* author:* create date:* modified by:* modified date:* why & wha.t is modified* version:java注解annotation (注解)是jdk5. 0及以后版本引

34、入的。它可以用于創(chuàng)建文檔, 跟蹤代碼中的依賴性,甚至執(zhí)行基本編譯時檢查。注解是以注解名'在 代碼中存在的,根據(jù)注解參數(shù)的個數(shù),我們可以將注解分為:標記注解、 單值注解、完整注解三類。它們都不會直接影響到程序的語義,只是作為 注解(標識)存在,我們可以通過反射機制編程實現(xiàn)對這些元數(shù)據(jù)的訪問。 另外,你可以在編譯時選擇代碼里的注解是否只存在于源代碼級,或者它 也能在class文件中出現(xiàn)。元數(shù)據(jù)的作用如果要對于元數(shù)據(jù)的作用進行分類,目前述沒有明確的定義,不過我 們可以根據(jù)它所起的作用,大致可分為三類:編寫文檔:通過代碼里標識的元數(shù)據(jù)生成文檔。代碼分析:通過代碼里標識的元數(shù)據(jù)對代碼進行分析。編

35、譯檢查:通過代碼里標識的元數(shù)據(jù)讓編譯器能實現(xiàn)基本的編譯檢查基本內(nèi)置注解©overridejava代碼package com. iwtxokhtd.annotation;/*測試override注解* author administrator*/publicclass overridedemotest /©overridepublic string tostring()return'7測試注解;dcprccatcd的作用是對不應(yīng)該在使用的方法添加注解,當編程人員使 用這些方法時,將會在編譯時顯示提示信息,它與javadoc里的dcprccatcd 標記有相同的功能,準

36、確的說,它還不如javadoc dcprccatcd,因為它不 支持參數(shù),使用deprecatcd的示例代碼示例如下:java代碼package com. iwtxokhtd. annotation;/*測試deprecated注解* author administrator*/ publicclassdeprecateddemotest publicstaticvoid main(string args) /使用deprecatedclass里聲明被過時的方法 deprecatedclass. deprecatedmethod();class deprecatedclass ©de

37、precatedpublicstaticvoiddeprecatedmethod () suppresswarnings,其參數(shù)有: deprecation,使用了過時的類或方法時的警告 unchecked,執(zhí)行了未檢查的轉(zhuǎn)換時的警告fallthrough,當switch程序塊直接通往下一種情況而沒有break 時的警告path,在類路徑、源文件路徑等中有不存在的路徑時的警告 serial,當在可序列化的類上缺少serialversionllld定義時的警告 finally ,任何finally子句不能止常完成時的警告 all,關(guān)于以上所有情況的警告java代碼package com. iwt

38、xokhtd. annotation;import java. util. arraylist;import java> util. list;publicclass supprcsswarningsdemotcst publicstaticlist77 5z-=newarraylist ();suppresswarnings ("unchecked") publicvoid add(string data) list, add (data);自定義注解它類似于新創(chuàng)建一個接口類文件,但為了區(qū)分,我們需要將它聲明為 ©interface,如下例:java代碼p

39、ackage com iwtxokhtd.annotation; publicinterfacenewannotation 使用自定義的注解類型java代碼package com iwtxokhtd.annotation;publicclass annotationtest newannotation publicstaticvoid main(string args) 為自定義注解添加變量java代碼package com iwtxokhtd. annotation;publicinterfacenewannotation string value ();java代碼 publicclass

40、 annotationtest newannotation (''main method") publicstaticvoid main(string args) saying);ncwannotation(value = "say method") publicstatievoidsaying() 定義一個枚舉類型,然后將參數(shù)設(shè)置為該枚舉類型,并賦予默認值 publicinterfacegreeting pub1icenum fontcolor blue, red, green;st ring name ();fontcolor fontcolo

41、r() default fontcolor. red這里有兩種選擇,其實變數(shù)也就是在賦予默認值的參數(shù)上,我們可以 選擇使用該默認值,也可以重新設(shè)置一個值來替換默認值java代碼 publicclass annotationtest newannotation("main method") publicstaticvoid main(string args) saying);sayhcllowithdefaultfontcolorc);sayhcllowithredfontcolor);newannotation("say mcthod,) publicstatic

42、void saying() /此時的fontcolor為默認的red©greeting(name = "dcfaultfontcolor") publicstaticvoid sayhcllowithdefaultfontcolor() /現(xiàn)在將fontcolor改為blue©greeting(name = "notdefault", fontcolor =greeting. fontcolor. blue)publicstaticvoid sayhcllowithredfontcolor() 注解的高級應(yīng)用1. 1.限制注解的使用范

43、圍用targct 指定 elcmcnttypc 屬性 java 代碼(jdk)packagejava, lang annotation; public cnum elementtype type,/用于類,接口,枚舉但不能是注解field,/字段上,包括枚舉值method,/方法,不包括構(gòu)造方法 parameter,/方法的參數(shù)constructor,/構(gòu)造方法local_variable,/本地變量或catch語句ann0tat10n_type,/注解類型(無數(shù)據(jù))package/ java 包1.2.注解保持性策略java代碼/限制注解使用范圍target (elementtype. me

44、thod, elementtype. constructor)public interface greeting /使用枚舉類型public enum fontcolorblue, red, green;string name ();fontcolor fontcolor() defauitfontcolor.red;在java編譯器編譯時,它會識別在源代碼里添加的注解是否還會保留, 這就是 rctcntionpolicvo 下而是 java 定義的 rctcntionpolicy 枚舉:編譯器的處理有三種策略:將注解保留在編譯后的類文件中,并在第一次加載類時讀取它將注解保留在編譯后的類文件中

45、,但是在運行時忽略它按照規(guī)定使用注解,但是并不將它保留到編譯后的類文件中java代碼packagejavalang annotation;public enum rctcntionpolicysource,/此類型會被編譯器丟棄class,/此類型注解會保留在class文件中,但jvm會忽略它runtime/此類型注解會保留在class文件中,jvm會讀取它java代碼/讓保持性策略為運行時態(tài),即將注解編碼到class文件中,讓虛擬 機讀取©retention(retentionpolicy. runtime)public interface greeting /使用枚舉類型publ

46、ic enum fontcolorblue, red, green;string name ();fontcolor fontcolor() defauitfontcolor.red;1.3. 文檔化功能java提供的documented元注解跟javadoc的作用是差不多的,其實它 存在的好處是開發(fā)人員可以定制javadoc不支持的文檔屬性,并在開發(fā)中 應(yīng)用。它的使用跟前兩個也是一樣的,簡單代碼示例如下:java代碼/讓它定制文檔化功能/使用此注解時必須設(shè)置retentionpolicy為runtime©documentedpublic interface greeting /使用

47、枚舉類型public enum fontcolorblue, red, green;st ring name ();fontcolor fontcolor() defaultfontcolor.red;1.4. 標注繼承java代碼/讓它允許繼承,可作用到子類©inheritedpublic interface greeting /使用枚舉類型public enum fontcolorblue, red, green;st ring name ();fontcolor fontcolor() defaultfontcolor.red;2.讀取注解信息屬于重點,在系統(tǒng)中用到注解權(quán)限時非

48、常有用,可以精確控制權(quán)限的 粒度注意:要想使用反射去讀取注解,必須將retention的值選為runtime java代碼package com. iwtxokhtd. annotation;importjava. lang, annotation. annotation;import java. lang, reflect. method;/讀取注解信息publicclass readannotationlnfotest publicstaticvoid main(string args) throws exception /測試annotationtest類,得到此類的類對象class c

49、 =class. fornameccom. iwtxokhtd. annotation. annotationtest);/獲取該類所有聲明的方法method methods =c. getdcclaredmethods ();/聲明注解集合annota.tion annotations ;/遍歷所有的方法得到各方法上而的注解信息for (method method : methods) /獲取每個方法上而所聲明的所有注解信息annotations 二method.getdcclaredannotations();/再遍歷所有的注解,打印其基本信息system, out. println (m

50、ethod. getnamc ();for (annotation an :annotations) system, out. println(z/方法名為:"+ method. getname () + "其上而 的注解為:+an. annotat iontypc () getsimplenamc ();method meths =an< annotationtypc() getdeclaredmcthods();/遍歷每個注解的所有變量for (method meth :meths) system, out. println(z,注解的變量名為:"+ m

51、eth. getname4常量和變量java常量很簡單就是一個固定值,比如說1, 2,3,4都屬于常量就是一個固定值,變量是比如 我們說的x我們可以任意的賦值在java中常量比如定義a為常量那么a就是一個固定的值一、常量java中的常量值是用文字串表示的,它區(qū)分為不同的類 型,如整型常量123,實型常量1.23,字符常量',布爾常量 true> false 以 及字 符串常 量"this is a constant string.與c、c+不同,java屮不能通過sdefine命令把一個標識符定 義為常量,而是用關(guān)鍵字final來實現(xiàn),如final double pi二

52、3. 14159(有關(guān) final 的用法見6.2.3)。二、變量變量是jave程序中的基本存儲單元,它的定義包括變量 名、變量類型和作用域幾個部分。 變量名是一個合法的標識符,它是字母、數(shù)字、下劃 線或美元符 $ 的序列,java對變量名區(qū)分大小寫,變量名 不能以數(shù)字開頭,而且不能為保留字。合法的變量名如:myname> valuet、dollar $ 等。非法的 變量名女口: 2mail > room#, class (保留字)等,變量名應(yīng)具有一定的含義,以增加 程序的可讀性。 變量類型可以為上面所說的任意一種數(shù)據(jù)類型。碼乍 代按 段o 一域 的用 量.pf 變鮎量 “量部 站

53、變局 ii了和 可月砂nl qd rz 砂匕口 指蒯面 域也卜 用吋有 作同以參 的的可理 量量量處 變變俠外 個分例一 明來 聲域、類變量、方法參數(shù)、局部變量在方法 它所在的代碼塊或方法的一塊碼中聲明,它的作用域為 (整個方塊代碼)。類變量在類中聲 的作用 域是整個類。明,而不法中聲明,它方法參數(shù)傳遞給方法,它個方法。例外處理參數(shù)傳 外處理部分。遞給例外處理代碼,它作用域就是例在 用大括個定的域來劃定。中,變量名應(yīng)該是唯一o通常,一個域變量的聲明格式為:type identifier=value , identifier=value -;例如:int a, b, c;double dl, (

54、12=0. 0;初而 25®的出 變初時 型賦用 實樣 村這由 ox-以是 2=0.可值 ,d2是量 開量變 隔變5 號類數(shù) 逗和參 用量理 間變處量部夕變局0-1 個有嬸 多只龜 hr o 匚/ 匚o、丫其值方5運算符java運算符一、算術(shù)運算符:單目:+(取正)-(取負)+(自增1)-(自減1)雙目:+ - * / % (取余)三目:ab?true: false說明:當a大于b的時候,為true (也就是冒 號之前的值),否則為false;這整個運算符包括一個關(guān)系運算符(可以是 “” w等等),一個“? ”,一個”,冒號前后需要有兩個表 達式或者是值或者是對象。二、關(guān)系運算:等于符號:二二,不等于符號:!二,大于符號:,小于符號:,大于等 于符號: 二,小于等于符號:二。三、位運算符 邏輯運算符:位運算符與(&)、非()、或(丨)、異或(&:當兩邊操作數(shù)的位同時為1時,結(jié)果為1,否則為0。如 1100&1010二1000:當兩邊操作數(shù)的位有一邊為i時,結(jié)果為i,否則為0。如 110011010=1110二0變1, 1變0兩邊的位不同時,結(jié)果為1,否則為0如11001010=0110邏輯運算符四、賦值運算符=+=-=*二/=%=&二八二|二<<=>>=五、instanceof運算符該運算符是雙目

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論