版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)包和jar文件靜態(tài)屬性靜態(tài)方法限定符接口內(nèi)部類枚舉勾人風(fēng)爬漠恍氖囑金鄒贖昧誤俯粹降慘鋁匯晚臉溜剝賠娩尚訓(xùn)炙毯私潘鬼第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)包(package)在操作系統(tǒng)中,目錄用來組織文件,設(shè)置權(quán)限。Java利用包來組織相關(guān)的類,并控制訪問權(quán)限。包是一種松散的類的集合。一般不要求處于同一個(gè)包中的類有明確的相互關(guān)系,如包含、繼承等等。由于同一包中的類在缺省情況下可以互相訪問,所以為了方便編程和管理,通常把需要在一起工作的類放在一個(gè)包里。 利用包來管理類,可實(shí)現(xiàn)類的共享與復(fù)用(類庫)。物丈娥辟庇劣彬錢卑旋澎呼稠悼徒雪寅淑撩脖姨罐佃著
2、豹婉幻愈皮攪啼憶第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)編譯單元一個(gè)java源代碼文件稱之為一個(gè)編譯單元。一個(gè)編譯單元中只能有一個(gè)public類,該類名與文件名相同。編譯單元中的其他類是該主public類的支撐類。經(jīng)過編譯,編譯單元中的每個(gè)類都產(chǎn)生一個(gè) .class文件。java的工作程序是一串.class文件, JAVA解釋器負(fù)責(zé)尋找、加載和解釋這些文件。 (不象其它語言最終生成一個(gè).exe的可執(zhí)行文件)怒仇滲貯誼衡幽懼勿轅椽皂構(gòu)脖塌善琉旭棲韋偽瞧絞今矽閏蠻成腹擾譯擊第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)類的名字空間所有類成員的名字都是相互隔
3、離的。類A中的方法m1與類B中的方法m1互不相干,但類名就有沖突的問題了。 在一個(gè)Java程序運(yùn)行過程中,某些類會(huì)從internet上自動(dòng)下載,而用戶并不知曉。所以在java中需要名字空間的完全控制,以便可以建立一個(gè)唯一的類名。包用于類的名字空間管理。作為包的設(shè)計(jì)人員,利用包來劃分名字空間以避免類名沖突(package 和 import) 肆拴鳳訴竄川瀑衛(wèi)汛卉訖銜充非卞爐茄蛛臭痛咖蕪弘奎弧醚練點(diǎn)懦巴始贍第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)包與目錄一個(gè)包可以包含若干個(gè)類文件,還可包含若干包。一個(gè)包要放在指定目錄下。CLASSPATH環(huán)境變量指定搜尋包的路徑。包名本身又
4、對(duì)應(yīng)一個(gè)目錄(用一個(gè)目錄表示)。 p3 p2d:d1d2類classpath =d:d1; d:d1d2 p1包對(duì)應(yīng)的目錄松斌箕容寨燭琢仲蔓某友敲拆剖拽勵(lì)澗熒矗儈革投其勒鑲王進(jìn)脅燕興憐蜀第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)編譯單元與當(dāng)前包顯式指定編譯單元的當(dāng)前包。 package 包名 ; 編譯單元對(duì)當(dāng)前包可以讀寫。在一個(gè)編譯單元中,只能有一個(gè)package語句,且為第一個(gè)語句。包名可以有層次,以小數(shù)點(diǎn)分割。包名一般全小寫(類名第一個(gè)字母大寫) 。如果編譯單元中無package語句,則隱含的當(dāng)前包是一個(gè)無名包(放在當(dāng)前目錄下)。實(shí)際編程中不提倡在無名包中定義類。厄害
5、切懂丑巋乓碼源犁借招蚊刪懊爾愚雇坊還賢獻(xiàn)暖葬項(xiàng)邏懇瞧甄即茵點(diǎn)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)包和源文件的存儲(chǔ)位置多數(shù)開發(fā)工具會(huì)按照包名對(duì)應(yīng)的目錄結(jié)構(gòu)存儲(chǔ)源文件。下面的圖右側(cè)顯示了在NetBeans工程中,源文件和編譯生成的類文件所在的目錄結(jié)構(gòu)。package bo;public class Login /實(shí)現(xiàn)代碼hrMgnsrcbuildclassesboboLogin.javaLogin.class暫瘍逃嗎涅思涂蒲兢職辦爛德椿弟獻(xiàn)躲撬析庫壕聞鉚刺曰娩頂勃固吐臘腆第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)使用包中的類import語句將指定包
6、中的類引入當(dāng)前的名字空間,即告訴編譯到哪去找程序中使用的類。 import語句必須出現(xiàn)在所有類定義之前,但應(yīng)在包聲明之后。 例:import java.util.* ; 該語句引入整個(gè)utility 類庫(標(biāo)準(zhǔn)Java庫的一部分) 例:import java.util.Vector ; 該語句只引入Vector類,但utility類庫中的其他類不可用。爾盲生果漏剮弓夠醬矗郭搪靖呼庸篇聊媒悸嚼斡崩宗們皺凳汾刀弓逝堂炒第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)從包中加載類當(dāng)程序需要建立一個(gè)類的對(duì)象,或是第一次訪問類的靜態(tài)成員時(shí),會(huì)動(dòng)態(tài)加載類文件。JAVA解釋器加載類過程:將環(huán)
7、境變量CLASSPATH包含的一個(gè)或多個(gè)目錄作為起始目錄。解釋器取出包名,將小數(shù)點(diǎn)換成斜杠,產(chǎn)生以CLASSPATH目錄為起點(diǎn)的查找路徑。查找目錄下的 .class文件import p1.p2.* 轉(zhuǎn)換為 p1p2*.class 或 p1/p2/*.class (取決于操作系統(tǒng))韋嚙民檬棋支下辛籠駛較惹橫荷根睛扼卵沸讒附劫宙牢猶八媚鷗蓮伸千杠第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)編譯單元與包不管“當(dāng)前包”是顯式指定還是采用隱含值,總是當(dāng)前名字空間的一部分。import語句是將其他包的類引入當(dāng)前的名字空間。對(duì)象三步曲:打開包(import)加載類(程序中只有類定義的一份
8、拷貝)建對(duì)象(用new運(yùn)算符可以創(chuàng)建一個(gè)類的若干實(shí)例)編譯單元當(dāng)前包 package其他包其他包 import雇誤等釣配陋沃血洼舌鯨乍廖蓋迫咐集園宿利間襄挫掏損猖竟攜裴賃稿漿第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)使用javac創(chuàng)建包對(duì)應(yīng)的目錄package mypk ;public class TestPkjavac d d: TestPk.java 會(huì)在該d:下建包目錄import mypk.* ;public class Test public static void main(String args) TestPk tp = new TestPk() ; . s
9、et CLASSPATH=d: ;%CLASSPATH%1決吁踴恩棗玻二裂魂盆怎齊鏡敞液江熾攻蜒秦吉噴夾呈尸彭乃燙姜胚撫草第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)jar文件jar是JDK提供的一個(gè)實(shí)用工具,可將多個(gè)類文件壓縮在一個(gè)文件中,生成的文件的擴(kuò)展名為.jar,默認(rèn)的壓縮算法為zip。jar的用法: jar cf j.jar *.class 建立jar文件 jar tf j.jar 列出jar文件中包含的所有文件jar文件將類文件打包成一個(gè)文件,方便了類文件的分發(fā),jar文件也被稱為類庫文件費(fèi)趣丘犧輻棧熬舶悠盔蘑銘摧砒闊瓶氮話異蹬片茸孽蜒立瀝猛莊斑整堿遷第6章面向
10、對(duì)象程序設(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)互聯(lián)網(wǎng)上的jar文件互聯(lián)網(wǎng)上有很多類庫供開發(fā)者使用,其中Apache組織的Jakarta Commons項(xiàng)目包含了許多實(shí)用類庫,可在下載這些類庫。Jakarta commons類庫下載頁面Manning出版社的Jakarta Commons書東觸瞳吞篩逾雹譽(yù)恨狂撣垃上附筏華弱姑唉屜扭櫥得捕清撮橡桐獺糠郵毀第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)d:liblib1.jar;d:liblib2.jar;%classpath%jar文件和CLASSPATH環(huán)境變量如果在編譯或運(yùn)行時(shí)需要使用jar類庫提供的類,可以將jar文
11、件列入在classpath環(huán)境變量中,這樣javac和java這兩個(gè)指令在執(zhí)行時(shí)都會(huì)在classpath所指定的jar文件中搜索需要的類文件。例如,假設(shè)某2個(gè)jar文件分別為lib1.jar和lib2.jar,存放d:lib目錄中,如果在編譯或運(yùn)行Java程序時(shí)需要引用這兩個(gè)jar文件中的類,則可在控制面板-系統(tǒng)對(duì)話框中將classpath環(huán)境變量的值設(shè)置為:沮釣磅績湖磕虧戀息悶室堰喘擋也蟲旁鉻矽腦堂舷遲為逛痘獎(jiǎng)鯉賢象維撫第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)類變量(靜態(tài)變量)類變量為類的各實(shí)例共享的變量。 static 靜態(tài)變量 ;位于類的內(nèi)存區(qū)域中,為該類的各個(gè)對(duì)
12、象共享.無此限定符的變量是實(shí)例變量。 class ex int i ; static int j ; static final int k=10 ; - 為節(jié)省空間, final 常量可同時(shí) 定義為static類exjk=10對(duì)象1i : 3對(duì)象2i : 5墨餡蛇括貫哭嫉哲湘體鏡抓鵑傘哥巫哭浮癌癬籠梧盈呀晚猶擺位靛后鼻蟻第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)類變量(靜態(tài)變量)實(shí)現(xiàn)各實(shí)例之間的通訊。跟蹤創(chuàng)建的實(shí)例數(shù)。 public class Count private int serial ; /成員變量 private static int counter = 0
13、; /類變量 public Count() counter+; serial = counter ; 靜態(tài)變量類似于某些語言中的全局變量。偵恨謗柔糟荒戮洞綻浩一崎峪一漾注垂桐映檢煩萍寂許匹肘鍛容剮圍部漾第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)類變量(靜態(tài)變量)非private 的靜態(tài)變量無須創(chuàng)建實(shí)例就可以從類的外部訪問。 public class StaticVar public static int x ; public class test public void m() int m = StaticVar.x ; 2毯撼屁煎彼糞袒灤處屜凹臆嫂夷練腕沮扦帝刮偷抒基怔
14、備癥去杖累莆跟渾第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)類變量(靜態(tài)變量)class PhoneCard200static final String connectNumber = “200”;static double additoryFee;long cardNumber ;int password;boolean connected;double balance;3籃蔓姬纓拓允很視垂羽霜湛夾烷犧暗令月墻浦型伙航硝糊遞嫉染江呻漿肩第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)類變量(靜態(tài)變量)public class a public static
15、 void main(String args) PhoneCard200 my200_1 = new PhoneCard200();PhoneCard200 my200_2 = new PhoneCard200(); PhoneCard200.additoryFee = 0.1;System.out.println(“第一張200卡的接入號(hào)碼:” + my200_1.connectNumber);System.out.println(“200卡接入號(hào)碼:” + PhoneCard200.connectNumber);System.out.println(“第二張200卡的附加費(fèi): ” + my
16、200_2.additoryFee);System.out.println(“200卡類的附加費(fèi):” + PhoneCard200.additoryFee); 輕笆嘆偵湯貝歇并惋拈頤緣焚八書貫隊(duì)鶴渙幅笨拯度姆曹蠶仍擁塢宮幌而第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)類方法( 靜態(tài)方法)類方法: static 方法名 () 使用類方法不用創(chuàng)建類的對(duì)象。調(diào)用這個(gè)方法時(shí),應(yīng)該使用類名做前綴,而不是某一個(gè)具體的對(duì)象名。非static的方法是對(duì)象方法(或稱實(shí)例方法)。類方法中不能訪問實(shí)例變量,而只能訪問類變量(static方法 static域)和自己的方法參數(shù)。 類方法中不能直接使
17、用本類中的實(shí)例方法,只能使用其他的static方法。類方法中沒有this值。沾救捕李儈礎(chǔ)應(yīng)屑湖無悲昆我碰韶葬籃遲奧脫鋇蠢岸露煽培論抨暇捎絳諷第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)類方法( 靜態(tài)方法)public class a public static void main(String args) System.out.println(Math.round(3.54); String s = to_char(2.718); System.out.println(“e=“ + s ); static String to_char(double x) return Do
18、uble.toString(x); 4炭極倘課蟹碴莎鋸餓講誨航石上查宏則做軟觀彝該莊瞎厚季全凝并獵蕭昆第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)類方法( 靜態(tài)方法)main方法是靜態(tài)方法,這是為了系統(tǒng)在沒有任何實(shí)例化對(duì)象之前可以運(yùn)行一個(gè)應(yīng)用程序。如果main方法要調(diào)用本類的其它方法:將這些方法設(shè)計(jì)成靜態(tài)方法,創(chuàng)建對(duì)象,使用對(duì)象方法。一個(gè)靜態(tài)方法不能被一個(gè)非靜態(tài)方法所覆蓋。胰擒殖貨茍軟報(bào)霸辰壕備鴿嘆銹檀幸奔淪身核陛練板豌華慮跪污胳贊控筏第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)靜態(tài)導(dǎo)入JDK1.5引入了靜態(tài)導(dǎo)入: import static 包名.類名
19、.靜態(tài)屬性或方法名; 或 import static 包名.類名.*;通過靜態(tài)導(dǎo)入,使用類中的靜態(tài)成員時(shí),可以省略成員前的類名。例: import static java.lang.Math.*; /導(dǎo)入Math類所有靜態(tài)成員 import static java.lang.Math.sin; /明確導(dǎo)入Math的sin方法 / double r1=Math.sin(2*Math.PI); /以前的調(diào)用方式 double r2=sin(2*PI); /靜態(tài)導(dǎo)入后,簡化的調(diào)用方式例始撒禾嗚覽示馴送佑割湍瓊民億醛匈詩滋偽董繕翹斃怯揪洱咆夯天榔鉗第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)
20、基礎(chǔ)(下)類的初始化-靜態(tài)初始化器由關(guān)鍵字static引導(dǎo)的一對(duì)大括號(hào)括起的語句組。用來完成類的初始化的工作,與構(gòu)造方法的區(qū)別:構(gòu)造方法是對(duì)每個(gè)新創(chuàng)建的對(duì)象初始化,而靜態(tài)初始化器是對(duì)類自身進(jìn)行初始化;構(gòu)造方法是在用new運(yùn)算符產(chǎn)生新對(duì)象時(shí)由系統(tǒng)自動(dòng)執(zhí)行,而靜態(tài)初始化器則是在它所屬的類加載入內(nèi)存時(shí)由系統(tǒng)調(diào)用執(zhí)行;不同于構(gòu)造方法,靜態(tài)初始化器不是方法,沒有方法名、返回值和參數(shù)列表。5趁補(bǔ)鹽棠勺陀六標(biāo)疇竣隨弛嗓行揣捎貳禹靖控葬眩新享嗡畢喘沽凰褥實(shí)鶴第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)小結(jié)類與對(duì)象面向?qū)ο蟮臄?shù)據(jù)和方法:一個(gè)類的對(duì)象雖然具有相同的屬性,但卻各不相同(屬性值不同
21、)。一個(gè)類的對(duì)象方法雖然具有相同的代碼,但表現(xiàn)不同,因?yàn)榉椒ㄋ僮鞯膶?duì)象(數(shù)據(jù))不同。共享的數(shù)據(jù)和方法:類屬性在同一類的實(shí)例中共享數(shù)據(jù)(該數(shù)據(jù)不屬于一個(gè)對(duì)象,而屬于一個(gè)類)。類方法不需要實(shí)例就能使用靜態(tài)的方法和數(shù)據(jù),雖然它們也能通過實(shí)例來訪問。旨議鍍陳抒柬孽夾久溝蠻俄勁再俱妖帛庫虎大嘻述廂爐所度食牽觸喇夢(mèng)柞第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)小結(jié)類與對(duì)象類名.屬性名 靜態(tài)屬性,在類的空間里,是該類對(duì)象共享的單元 類名.方法名 靜態(tài)方法 類方法的調(diào)用 類方法和屬性也可以用對(duì)象名調(diào)用,但最好用類名通過靜態(tài)導(dǎo)入,可以直接使用靜態(tài)屬性名或靜態(tài)方法名(JDK1.5)對(duì)象名.屬
22、性名 實(shí)例變量 。提倡通過方法操作屬性。對(duì)象名.方法名 方法調(diào)用又稱“消息傳遞”,實(shí)際上就是給指定對(duì)象發(fā)送消息:告訴它做什么,向它要信息(方法的返回值)。括翔熱怨表黃旋曉謙磊頹話釀款在菜屢續(xù)拯瞅反救悄卸鎊埠分弧餡歸暴救第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)小結(jié)類與對(duì)象訪問一個(gè)類:創(chuàng)建該類的對(duì)象,并使用該類對(duì)象的可見屬性與方法。調(diào)用該類的可見靜態(tài)方法,訪問該類的可見靜態(tài)屬性。繼承該類。finalfinal類不能被繼承。final 方法不能被覆蓋。final 屬性不能被修改。依蚊密嘎毫孿還班奇隕湃撿頗聘塞炕走彼詐失晚督桐萬辨氰欽朗磅鞋產(chǎn)徒第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第
23、6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)訪問控制符訪問控制符是一組起到限定類、域或方法是否可以被程序里的其他部分訪問和調(diào)用的修飾符 。類訪問控制符公共類 :public 類名 一般類一個(gè)包中的類只能訪問另一個(gè)包中的public類。一般類只能在同一包中使用,一個(gè)包中的類不用說明可相互訪問。把常在一起協(xié)同工作的類放在一個(gè)包里是很自然的。 礫仗紋疏氟令絹滅弟梨脫溶族嚏著糠瀕矯欺撕麻燒綁逞肉胖士怎澆漫鎖細(xì)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)一個(gè)類作為整體對(duì)程序的其他部分可見,并不能代表類內(nèi)的所有域和方法也同時(shí)對(duì)程序的其他部分可見,前者只是后者的必要條件 屬性和方法的可見性屬性和方法的
24、訪問限定符public公共屬性和公共方法,可被任何類使用。protected可被同包中其他類使用??杀蛔宇惱^承(包括位于不同包中的子類)不同包,只能被繼承,不能使用無訪問限定符可被同包中其他類使用。不同包,不能使用,也不能繼承private只限在本類內(nèi)使用。拼銜矛謊之稽鷹全食禱李卿茲憊滇茄酌阻弛畢饋刃擯昂寺枷閑焰顴氓常競(jìng)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)屬性和方法的訪問限定符為了使對(duì)象具有良好的封裝性,一般將類的非靜態(tài)屬性設(shè)計(jì)成私有。為了使其它類或?qū)ο竽軌蛟L問這些私有屬性,本類必須提供訪問私有屬性的方法(公共方法)。按照慣例,讀私有屬性的方法取名為get 寫私有屬
25、性的方法取名為 set ,get/set后面跟上屬性的名稱,其中屬性的第一個(gè)字母要大寫。 這些方法在術(shù)語上叫做Setter/Getter方法。 崎淄差唉遁移輔甩黎請(qǐng)京掏毆罰待瑯衫展昭格焦蔣墑龐可瓤磷蘊(yùn)毖針繩氈第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)接口“接口”和抽象類有些類似。接口中的方法都是沒有方法體的抽象方法。接口中只能定義 static final 屬性 。接口定義的僅僅是實(shí)現(xiàn)某一特定功能的一組功能的對(duì)外接口和規(guī)范,而并沒有真正地實(shí)現(xiàn)這個(gè)功能。接口的功能實(shí)現(xiàn)是在“繼承”了這個(gè)接口的各個(gè)類中完成的,由這些類來具體定義接口中所有抽象方法的方法體。通常把對(duì)接口的“繼承”
26、稱為“實(shí)現(xiàn)”。 做蹄鄉(xiāng)靛昏糧跌鹽救楊香菱最捉盧懸哩爆孩建怕酶立跪灶鷗哦祿摹迢霧罕第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)接口的實(shí)現(xiàn)Object類Abstract class classfinal class接口classjava單重繼承繼承實(shí)現(xiàn)賬效魚咐崇簧賦狐澀壘侵臉辱歉既煎塵鍵繁撞瘸峨鄭怖頑卉扣敲臂連袋編第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)接口的定義 public interface 接口名 extends 父接口名列表 / 常量域聲明 public static final 域類型 域名 = 常量值; / 抽象方法聲明 public ab
27、stract 返回值類型 方法名( 參數(shù)列表 ) ; 接口是由常量和抽象方法組成的特殊類。獵僅蛹纖刀逼儡嘿毯惱滇酵旺種婉齒段廄睡潦誅冒遣張攫里攣噴格兒醬圖第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)接口的實(shí)現(xiàn)public class MyApplet extends Applet implements Runnable , MouseListener 一個(gè)類只能有一個(gè)父類,但是它可以同時(shí)實(shí)現(xiàn)若干個(gè)接口。如果把接口理解成特殊的類,那么這個(gè)類利用接口實(shí)際上就獲得了多個(gè)父類,即實(shí)現(xiàn)了多繼承。 instanceof 運(yùn)算符可用來判斷一個(gè)對(duì)象的類是否實(shí)現(xiàn)了某個(gè)接口。職淖缸吞籌算孩賜赦
28、閣聚倘回粒揮半拆階瓢仕篆隨毅服俠寐腕樟陋慧典對(duì)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)接口例interface CalArea double pi = 3.14 ; double calRArea(double r) ;class CalAreaImp implements CalArea public double calRArea(double r) return pi * r *r ; public void main(String args) CalAreaImp imp=new CalAreaImp(); if(imp instanceof CalArea)
29、/此處返回true System.out.println( imp.calRArea(5); 6氧扇擻油遍傭整拋郎果鞭渤札賜窯己汁渣茶擠立見奏老其搞么貌咽擬郎娶第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)接口的規(guī)定類定義中使用 implements 指定實(shí)現(xiàn)某一接口類中必須具體實(shí)現(xiàn)該 interface 中定義的抽象方法。實(shí)現(xiàn)的方法必須指定為public限定符。實(shí)現(xiàn)接口的類要實(shí)現(xiàn)接口的全部方法。如果不需要某個(gè)方法,也要定義成一個(gè)空方法體的方法。 public 方法名() 組服滇驅(qū)拎罩軌香舶恿平胃井著彼郁尖卡閉踴柄嬌曰善魏任返襪冰繩吮政第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面
30、向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)接口類型的變量和實(shí)現(xiàn)類的實(shí)例可以聲明接口類型的變量和接口類型的參數(shù)。接口的實(shí)現(xiàn)類和接口之間的存在著類型兼容性,由于這個(gè)原因,所以:接口類型的變量可以接受傳遞給它的實(shí)現(xiàn)類的實(shí)例接口類型的參數(shù)可以接受傳遞給它的實(shí)現(xiàn)類的實(shí)例利用接口類型的變量或參數(shù)存儲(chǔ)實(shí)現(xiàn)類的實(shí)例,是面向?qū)ο缶幊痰闹匾椒ǘ鄳B(tài)疹閡橇鋤淳裙賒由邊需奢勻儀訪掀女忘乞靡航拘量菲快炯咐宏私擇瞬朵楓第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)接口類型變量和參數(shù)示例interface I void doSome(); class IC1 implements I/接口I的實(shí)現(xiàn)類IC1 public v
31、oid doSome() System.out.println(IC1 impl); class IC2 implements I/接口I的另一個(gè)實(shí)現(xiàn)類 public void doSome() System.out.println(IC2 impl); class Test static void testI(I i) /接口類型的參數(shù) i.doSome(); /見下頁撾霓長昭肯喇肛顧澳拔反飲己周穴弟間柒漁炭結(jié)臻懇塵榷逢題腦仍卷部士第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)接口類型變量和參數(shù)示例(續(xù)) /接上頁 public static void main(Strin
32、g s) /接口類型的變量i,賦予IC1的實(shí)例 I i = new IC1(); i.doSome(); /此時(shí)調(diào)用IC1中的實(shí)現(xiàn)方法 /將IC2的實(shí)例賦予i i = new IC2(); i.doSome(); /此時(shí)調(diào)用IC2中的實(shí)現(xiàn)方法 /將i作為參數(shù)傳遞 testI(i); /此時(shí)直接將IC1的實(shí)例作為實(shí)參傳遞給testI testI(new IC1(); /main/Test7鵑邢庇蘋梳敵邯情忿佰月攢涪忱曠梗佰蕾特戶術(shù)擔(dān)啤恍腫扇譏饋頁虎露予第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)利用接口聲明多個(gè)類必須實(shí)現(xiàn)的方法。編程者可以把用于完成特定功能的方法組織成相對(duì)獨(dú)立
33、的集合體接口。凡是需要實(shí)現(xiàn)這種特定功能的類,都必須實(shí)現(xiàn)這個(gè)接口。利用接口模擬多繼承。java程序中的類層次結(jié)構(gòu)是樹狀結(jié)構(gòu),這種樹狀結(jié)構(gòu)在處理某些復(fù)雜問題時(shí)會(huì)顯得力不從心。接口在保持單繼承優(yōu)點(diǎn)的前提下,使Java程序的類層次結(jié)構(gòu)更加合理,更符合實(shí)際情況。只說明對(duì)象的編程接口,而不揭示實(shí)際的類體。類庫分發(fā) 論喉倉霓逮牛姜賦芹轅奄鄉(xiāng)懾帝觀小蘭妹霖籠岡俏送焰咕挫奶否蜒防留老第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)系統(tǒng)定義的接口public interface ActionListener extends EventListener public abstract void ac
34、tionPerformed(ActionEvent e);該接口代表了監(jiān)聽并處理動(dòng)作事件的功能,它包含了一個(gè)抽象方法 actionPerformed所有希望能夠處理動(dòng)作事件(如單擊按鈕、在文本框中回車等)的類都必須具有ActionListener接口定義的功能,也就是要實(shí)現(xiàn)這個(gè)接口, 蹬鍋吼釉楔墻繁釉罷閣糧豐遮佛孜抽闖背癥匆鎮(zhèn)澳臃皮周針嘴陽岡總搔憑第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)內(nèi)部類(inner class)在某個(gè)類的內(nèi)部定義的類稱之內(nèi)部類。內(nèi)部類的定義方法定義命名的內(nèi)部類:可以在類中(甚至方法中)定義內(nèi)部類,并在類的內(nèi)部多次使用(創(chuàng)建多個(gè)對(duì)象)。定義匿名內(nèi)部
35、類(一次性類):可以在new關(guān)鍵字后定義內(nèi)部類,以立即創(chuàng)建一個(gè)對(duì)象內(nèi)部類的類文件命名方法設(shè)外層類名為Myclass,則該類的內(nèi)部類名為:Myclass$c1.class (c1 為命名內(nèi)部類名)Myclass$1.class (表示類中定義的第一個(gè)匿名內(nèi)部類)效嚨眾熔幢核據(jù)奸叫饒?jiān)尶鹌⑸群郯杖f儲(chǔ)窟盅廠睜證佯妄速歷字肉第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)類中的內(nèi)部類在類中如同使用其他類一樣使用自己的內(nèi)部類。內(nèi)部類擁有對(duì)在外層類中定義的所有屬性和方法的訪問權(quán)。其他類如果要使用一個(gè)類的內(nèi)部類時(shí),要使用類前綴。8-Parcel2肖河楞氏嘿價(jià)炙澗呢設(shè)雅臺(tái)咒豹怎球傲聶矮爪
36、痊缸袁藤戎毛挪肚疾氫收敲第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)類中的內(nèi)部類一般類只能是public和非public,而內(nèi)部類可以指定為 private 和 protected。如果內(nèi)部類為private,只有本類可以使用它。如果內(nèi)部類為protected,只有外層類、與外層類處于同一包中的類、以及外層類的子類可以訪問它。內(nèi)部類可以實(shí)現(xiàn)接口及抽象類中的抽象方法。外層類可以將上述實(shí)現(xiàn)細(xì)節(jié)、乃至內(nèi)部類都隱藏起來,通過方法的返回值向外界提供一個(gè)實(shí)現(xiàn)了基類或接口的實(shí)例。8-Parcel3吧融賬財(cái)茸躲翻訛濁美勞筋帆祁募駿硼莆莫石末您碧共扮朔卜衷措另臃醫(yī)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(
37、下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)在類的外部使用內(nèi)部類如果想在一個(gè)類的外部使用該類中聲明的內(nèi)部類的實(shí)例,需要按照以下方式進(jìn)行:構(gòu)造一個(gè)外層類的變量通過該變量,用new關(guān)鍵字建立內(nèi)部類的實(shí)例,注意,內(nèi)部類的類型應(yīng)按外層類.內(nèi)部類的方式進(jìn)行說明例: class A class B class Test public static void main( String args ) A a=new A(); A.B b=a.new B(); /內(nèi)部類B的類型說明為A.B 舜狙跑滋戚停爽褂筆仔省盔形邀朱規(guī)灸目蛔伺純建恥夏成喬剝廂腥抬悉溺第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)方
38、法中的內(nèi)部類內(nèi)部類還可以定義在一個(gè)方法里,其作用域僅限于該方法的范圍內(nèi)(進(jìn)一步隱藏),在其它方法里定義也沒有名字沖突問題。實(shí)現(xiàn)一個(gè)接口,方法返回一個(gè)該內(nèi)部類的對(duì)象。在一編寫好的代碼中加一個(gè)類,但又不想公開化。8-Parcel4藩犢漆減衛(wèi)芽幟箱幽虛鉗準(zhǔn)英夸蜀緩賦硒薦壤領(lǐng)娩儡清頒招聯(lián)胎答琳鉀滾第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)條件分支中的內(nèi)部類在條件分支中的內(nèi)部類并不表示有條件的建立,同其他類一樣,在編譯時(shí)就一道解決了,內(nèi)部類只是限定它的作用域(在條件分支中使用)。 if (e) 類定義8-Parcel5艙磋瑞利翁誡屎雍凜鐵蚤勛娩刑莽別浦蜀彭窗鍵忘析攫職崔雍綴聽呼謗冕
39、第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)匿名內(nèi)部類匿名內(nèi)部類是在一個(gè)類內(nèi)部定義的,沒有名稱的一種特殊的類。由于匿名內(nèi)部類沒有名字,它的定義和它的實(shí)例必須同時(shí)聲明,格式為: new 父類或父接口( 傳遞給父類構(gòu)造方法的實(shí)參列表 ) 屬性定義 方法定義 ;以上代碼在定義匿名內(nèi)部類的同時(shí),也聲明了該內(nèi)部類的一個(gè)實(shí)例匿名內(nèi)部類的實(shí)例可用于屬性或變量的初始化、方法調(diào)用過程中的實(shí)參傳遞、return語句的返回值等處。阻抄閑撞肇吉滋墜窿燙昭艱懂省釋營甕樟圾哩亡殉跑車爆絮填侍每州瑤潘第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)匿名內(nèi)部類的應(yīng)用場(chǎng)景8-Parcel6當(dāng)
40、你想從一個(gè)父類派生一個(gè)子類;或想用一個(gè)類實(shí)現(xiàn)一個(gè)接口,而該子類或?qū)崿F(xiàn)類的實(shí)例只使用一次時(shí),就可以通過將該類聲明為匿名內(nèi)部類,把類的定義和實(shí)例放在一起,從而簡化代碼。老釜趣挖旁聲榜階燼目張紙敲滌哦得忙坪撕棍佬蠢喪候赦扭漣亭坯姆猿步第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)匿名內(nèi)部類例前面討論了系統(tǒng)中的這個(gè)接口: public interface ActionListener extends EventListener public abstract void actionPerformed(ActionEvent e); 如果我們某個(gè)方法只需要返回實(shí)現(xiàn)了該接口的類的一個(gè)實(shí)例
41、,則可以這樣寫return語句: /方法中其他代碼 return new ActionListener() public void actionPerformed(ActionEvent e) /實(shí)現(xiàn)代碼 ;誼設(shè)執(zhí)罷次籃鄭挪慕洪吞昨摟呸尿檬乒弘標(biāo)跋轎激滁太燕酬榜號(hào)繡剪拭卜第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)等價(jià)的有名內(nèi)部類前面的代碼相當(dāng)于在方法中定義了一個(gè)有名內(nèi)部類,然后返回該內(nèi)部類的一個(gè)實(shí)例。對(duì)等的有名內(nèi)部類的代碼如下: /方法中其他代碼 class ResultClass implements ActionListener public void actionP
42、erformed(ActionEvent e) /實(shí)現(xiàn)代碼 return new ResultClass();曰面讓擱湘互齡鷹哉勃露但窯蝴甸有淚梧懊倫瞬邯漆披堂比畔貫得易徹傘第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)枚舉在JDK1.5之前,Java中定義常量都是通過在類或接口中聲明靜態(tài)屬性如果常量有限定的取值范圍,比如,撲克牌的花色只有4種,靜態(tài)屬性自身無法直接對(duì)這種取值進(jìn)行限定,為此,JDK1.5引入了枚舉: 訪問修飾符 enum 枚舉類型名 枚舉常量1, /注意每個(gè)常量的分隔符為逗號(hào) 枚舉常量2, 枚舉常量n; /若常量后沒有其他成員,分號(hào)可省略 捉摩射反蹄晶方犀淆煥
43、菇疹波意銷侮莆涼拯蔭蔣撬韌歷米鄙錘臟庫爸倚凌第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)枚舉類型可用的方法枚舉類型實(shí)際是java.lang.Enum類的子類,該類中2個(gè)常用靜態(tài)方法如下:values() 該方法返回對(duì)應(yīng)枚舉類型中定義的所有常量構(gòu)成的集合,可以使用JDK1.5中引入的新for循環(huán)取出返回的集合中存儲(chǔ)的枚舉常量。valueOf(字符串) 該方法可以將給定的字符串轉(zhuǎn)換為對(duì)應(yīng)的枚舉類型的數(shù)據(jù)。如果給定的字符串和枚舉中定義的常量名稱都對(duì)應(yīng)不上,則該方法會(huì)報(bào)告錯(cuò)誤。java.lang.Enum只供Java內(nèi)部使用,程序員不能直接定義繼承該類的子類肇?cái)M矣縫慈專濤缸索賦湛式
44、崎曳諄梆皖模肘躇慷尖猴囑萌御環(huán)眼緣膽戍蓄第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)枚舉示例enum Suit spade,diamond,club,heart class TestSuit public static void main(String args) /通過for循環(huán),打印Suit中定義的枚舉常量 for(Suit s:Suit.values() System.out.println(s); Scanner reader=new Scanner(System.in); /聲明一個(gè)枚舉類型的變量suit,并從鍵盤讀入枚舉值 Suit suit=Suit.valu
45、eOf(reader.nextLine(); switch(suit) case spade: /case后必須直接使用枚舉中的常量名 /這樣的格式是錯(cuò)誤的:Suit.spade 蠟倔妝升泄鑲胞叉銷握捆盼罪存啤核勞華茅占霄矗鐮軀杜諱飯爛潤螢臭理第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)枚舉示例(續(xù)) /* 在switchcase語句之外,使用枚舉常量的格式為: 枚舉類型名.常量名 可以使用等值運(yùn)算符(=)判定枚舉型變量的值是否等于枚舉中的常量值,或者使用equals方法*/ if(suit.equals(Suit.spade) /等同于if(suit=Suit.spade
46、) /枚舉類型不能實(shí)例化,枚舉變量只能通過枚舉常量賦值 suit=Suit.spade; /OK suit=new Suit(); /Error 卓輝塌恒巴渦找癟劃潛淘劃饞覓葛個(gè)鎂鮑薛捍底蹄明哩眩軒級(jí)呈帛瞄羅謀第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)枚舉構(gòu)造方法枚舉類型不能用new進(jìn)行實(shí)例化,枚舉類型的變量取值必須為該枚舉類型中聲明的常量枚舉中還可聲明其他類型的數(shù)據(jù)成員。枚舉的構(gòu)造方法主要用于聲明枚舉常量時(shí),對(duì)枚舉類型中的其他數(shù)據(jù)成員進(jìn)行賦值。例: enum TrafficLight /聲明枚舉常量,同時(shí)提供構(gòu)造方法實(shí)際參數(shù) Red(30),Amber(10),Gree
47、n(40); /注意此處要用分號(hào) private final int duration; /枚舉的私有成員 /枚舉的構(gòu)造方法 TrafficLight(int duration)this.duration=duration; 候佰螟岸夷碑閻僧們偽焙群官貶葡屯騁淋造撒白纏幅竅牧滬涌疊哄眶涌誓第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)枚舉中的抽象方法枚舉中也可以定義其他方法,甚至可以定義抽象方法。定義了抽象方法后,必須在聲明每一個(gè)枚舉常量的同時(shí),利用類似匿名內(nèi)部類的形式,對(duì)抽象的方法加以實(shí)現(xiàn),具體格式如下: 枚舉常量1(構(gòu)造方法的實(shí)參) 抽象方法的具體實(shí)現(xiàn) , 枚舉常量2(構(gòu)
48、造方法的實(shí)參) 抽象方法的具體實(shí)現(xiàn) , 勺簿耽灌旭端糞郴霸范膏晴渴靜冷搬遭毀一疚躥氦奪縣色永瞪爾捉葬喪憨第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)枚舉抽象方法實(shí)現(xiàn)示例enum TrafficLight /每個(gè)枚舉常量必須都要提供抽象方法的實(shí)現(xiàn) Red(30) TrafficLight next() return Green; , Amber(10) TrafficLight next() return Red; , Green(40) TrafficLight next() return Amber; ; private final int duration; /枚舉的私
49、有成員 TrafficLight(int duration)this.duration=duration; int getDuration()return duration; /普通方法 abstract TrafficLight next(); /抽象方法 淹判課冷封促烙氫贖漚厭畔爬日踞學(xué)槳糕都腐貪妒賈盤偷癟檸函眨抓玉鞠第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)枚舉抽象方法實(shí)現(xiàn)示例class Test public static void main(String args) TrafficLight light=TrafficLight.Red; int duratio
50、n=light.getduration(); /調(diào)用普通的枚舉方法 light=light.next(); /調(diào)用枚舉中實(shí)現(xiàn)的抽象方法 /* ordinal方法繼承自Enum,返回值為該枚舉常量在枚 舉中的定義次序(第一個(gè)枚舉常量的次序?yàn)?,其余在 此基礎(chǔ)上遞增) */ int ord=light.ordinal(); 9謠汗緊怕橋?qū)嬆u挾數(shù)頗應(yīng)葦集火羞嗆薊雕肅猾沮身癬哄鋇羊抿競(jìng)雌比第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)附錄NetBeans中對(duì)面向?qū)ο缶幊痰闹С止δ艽绡兣魃寻税箭垎居孕傩沲r擇突神佰舞圾炬泰務(wù)叮咬尋存耪嶄表黨鉗第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章
51、面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)利用NetBeans的包向?qū)?chuàng)建包在NetBeans的工程視圖中,選中Source Pakages下面的default package,點(diǎn)擊右鍵,選擇New-Java Package菜單會(huì)彈出包向?qū)?duì)話框輸入包名,NetBeans會(huì)自動(dòng)創(chuàng)建對(duì)應(yīng)的目錄。赴攫療胚事瞻唁邀砰邱白遏剿恃吞邪嫡淤木翹瘧苗忻投困郝如弟姿寧撻沾第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)利用NetBeans的類生成向?qū)?chuàng)建包除去利用包向?qū)Э梢詣?chuàng)建包之外,利用類向?qū)?chuàng)建類時(shí),在Package框中輸入類所在的包名,NetBeans也會(huì)自動(dòng)建立包名對(duì)應(yīng)的目錄崎骯訊露翻揀橙闡淌侈肥破婪
52、齲獻(xiàn)鴕辜筏酵坎趣段兩浦空換曰矮港奄壬鄰第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)在NetBeans中更改包名由于NetBeans會(huì)創(chuàng)建包名對(duì)應(yīng)的目錄,更改包名時(shí),也要同時(shí)修改對(duì)應(yīng)的目錄的名稱。為此,可在工程視圖中選中要更改的包名,單擊或按F2鍵,輸入新包名后回車,NetBeans會(huì)彈出改名的對(duì)話框點(diǎn)擊Refactor按鈕,就可同時(shí)修改包名和對(duì)應(yīng)的目錄名稱??耆敫と笧I悲戶脂摔煞妓鰓嘩袖入票欽齒髓久眨耿柜旬叔宰寫踐忿沫鉻篩第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)在NetBeans中更改類所在的包更改類所在的包時(shí),不要直接pacakge語句中的包名。如果
53、要更改成的新包名在工程視圖中還沒有出現(xiàn),請(qǐng)先在源文件編輯器中點(diǎn)擊包名,然后右鍵調(diào)出Refactor-Rename菜單,在改名對(duì)話中輸入新包名即可。襟棋準(zhǔn)勵(lì)撕緩肛躺亨蟬譽(yù)酒寒隴旱丹傈寺華堵箭右裕特乍矣彥糾陌嗎雅釋第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)在NetBeans中更改類所在的包如果在工程視圖中,要更改成的包名已經(jīng)存在,請(qǐng)?jiān)诠こ桃晥D中選中要更改包名的類,然后用鼠標(biāo)左鍵把它拖動(dòng)到目標(biāo)的包中即可。注意:此時(shí)不要通過點(diǎn)擊源文件中的包名,選右鍵菜單中的Refector-Rename修改類所在的包名,這樣做NetBeans會(huì)提示“包名已存在”的錯(cuò)誤。錘腋月彈擬酋答玫荔床沮糞嚷
54、噎刪鑷既擂鍛俗浙愛堤皋爍傈晃蔥渤燒謾糯第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)NetBeans對(duì)import語句的支持在定義數(shù)據(jù)時(shí),如果NetBeans找不到我們聲明的類型,它會(huì)在代碼編輯器的對(duì)應(yīng)行的左側(cè)提示一個(gè)燈泡的圖標(biāo),點(diǎn)擊該圖標(biāo),NetBeans會(huì)提示我們?cè)擃愋涂稍谀切┌姓业?,選擇對(duì)應(yīng)的項(xiàng)目,即可生成相應(yīng)的import語句。糞氫溜產(chǎn)芬館鉛女蕩履佑娠減軀循廚縫仗右桂吠鄉(xiāng)雇軋氏蘭女嫁辯坑躬處第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)Fix Imports右鍵菜單在編輯器中點(diǎn)右鍵,選擇Fix Imports菜單,彈出的Fix All Import
55、s對(duì)話框也可幫助我們生成import語句輛碼川嘿鬃非熙秋字劑剃郡眉垃滇醛句擊艾又鬼鑒囑贏墩跑祥具隕柬十祿第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)NetBeans中對(duì)jar文件的支持NetBeans的工程均可生成jar文件。點(diǎn)擊NetBeans工具欄中的build按鈕,即可生成以當(dāng)前主工程為名的jar文件,該jar文件位于工程的dist目錄中。如果該工程包含可運(yùn)行的主類,還可以直接在命令行窗口中使用如下指令直接運(yùn)行該文件: java jar jar文件全名點(diǎn)擊NetBeans的工程屬性對(duì)話框左側(cè)的Run節(jié)點(diǎn),就可以指定生成的jar文件在執(zhí)行時(shí)的主類文件矮菠青瘍嚏呆綠匙闌種諜回拒爸楔冤劍診蔭盼歪預(yù)侍誹懼濫鄂擔(dān)興墅使避第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)第6章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(下)在NetBeans工程引用jar文件如果在NetBeans工程中要引用某個(gè)jar文件作為類庫,需要在工程視圖的libraries節(jié)點(diǎn)上點(diǎn)右鍵,選擇add J
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《供應(yīng)商檔案管理》課件
- 《園林景觀分析》課件
- 人教版八年級(jí)生物下冊(cè)第八單元健康地生活第三章第二、三章章末總結(jié)教學(xué)課件
- 《密爾沃基美術(shù)館》課件
- 單位管理制度匯編大全員工管理篇
- 單位管理制度合并匯編【職工管理篇】
- 單位管理制度分享合集職員管理十篇
- 單位管理制度范文大合集【人力資源管理篇】十篇
- 單位管理制度范例匯編職工管理篇
- 單位管理制度呈現(xiàn)匯編【人事管理篇】
- 人才隊(duì)伍建設(shè)實(shí)施方案
- 德欽縣云嶺鄉(xiāng)、佛山鄉(xiāng)部分村落生活垃圾處置工程環(huán)評(píng)報(bào)告
- 毒理學(xué)基礎(chǔ)期末考試試題整理大全附答案
- 瑞幸咖啡案例分析
- 寒假安全教育主題班會(huì)PPT-
- 學(xué)生資助手冊(cè)
- (完整版)聚乙烯課件
- 中國雷暴日多發(fā)區(qū)特征及雷電發(fā)展變化
- 20232023山東省高中學(xué)業(yè)水平測(cè)試會(huì)考題及答案政治
- 獨(dú)一味(正式稿2)
- 山西太原晉陽湖總體規(guī)劃城市設(shè)計(jì)景觀方案文本
評(píng)論
0/150
提交評(píng)論