山東財經(jīng)大學(xué)JAVA程序設(shè)計基礎(chǔ)(06200081)復(fù)習(xí)提綱及練習(xí)題_第1頁
山東財經(jīng)大學(xué)JAVA程序設(shè)計基礎(chǔ)(06200081)復(fù)習(xí)提綱及練習(xí)題_第2頁
山東財經(jīng)大學(xué)JAVA程序設(shè)計基礎(chǔ)(06200081)復(fù)習(xí)提綱及練習(xí)題_第3頁
山東財經(jīng)大學(xué)JAVA程序設(shè)計基礎(chǔ)(06200081)復(fù)習(xí)提綱及練習(xí)題_第4頁
山東財經(jīng)大學(xué)JAVA程序設(shè)計基礎(chǔ)(06200081)復(fù)習(xí)提綱及練習(xí)題_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、復(fù)習(xí)參考考試題型:1 .單項選擇題(本大題共15小題,每小題1分,共15分)2 .判斷題(10小題,每小題1分,共10分)3 .填空題(本大題共10空,每個空2分,共20分)4 .閱讀程序,寫出程序運(yùn)行后的輸出結(jié)果(本大題共3小題,每小題6分,共18分)5 .編程題(本大題共3小題,共37分),其中第1題:9分(位操作),第2題14(分排序或字符串處理),第3題14分(類與對象)。涉及數(shù)組、排序、字符串處理、類和對象(實(shí)例)、位操作(手寫推算步驟及最終結(jié)果,要求看樣題)等。考試涉及的相關(guān)知識點(diǎn):1. java程序類型:( 1) javaapplication(需主類)、java程序、源程序、類

2、、接口、字節(jié)碼文件、包、JDKJVMjavac.exejava.exe跨平臺java開發(fā)步驟一二維數(shù)組等( 2) javaapplet:java小程序(可以沒有主類,是圖形界面),主要用于網(wǎng)頁( 3) javascript:網(wǎng)頁或網(wǎng)站的“腳本”程序2. 標(biāo)識符和關(guān)鍵字:class、interfacefinalabstractstaticvoidbyteshortintlongfloatdoublebooleanStringreturn異常常用的關(guān)鍵字(trycatchfinallythrowthrows)3. 表達(dá)式:比較運(yùn)算符:>>=<<=!=邏輯運(yùn)算符:&&

3、amp;|!位運(yùn)算符:&I八>>>>><<instanceof+-前后關(guān)系?:算合語句s+=5s-=5s*=5s/=5inta=b=10;4. 程序控制結(jié)構(gòu):順序、選擇、循環(huán)(1) 單路選擇結(jié)構(gòu)if()(2) 多路選擇結(jié)構(gòu)if().else.(3) elseif結(jié)構(gòu)(4) switch(break);while()do.while();breakcontinuefor(;)5. 面向?qū)ο蟮某绦蛟O(shè)計:類:class成員變量方法成員修飾符(訪問、特征)static變量成員或方法實(shí)例變量成員或方法UML圖對象:Object創(chuàng)造對象new方法:void

4、方法、非void方法、static方法(類方法)、非static方法(實(shí)例方法)方法參數(shù)傳遞:實(shí)參形參傳值傳引用(數(shù)組對象接口)多態(tài):重載重寫this、super構(gòu)造方法(在類的繼承中可能用到的關(guān)鍵字super)包:關(guān)鍵字import、package繼承(組合:主類main()與繼承):繼承創(chuàng)新改造子類不能降低父類的訪問級別Super、this、上轉(zhuǎn)型對象Abstract、final接口:interface(1) 實(shí)現(xiàn):implements也是一種繼承(包括一般類與抽象類,多實(shí)現(xiàn))(2) 繼承:extends(與類相比的“多繼承”)(3)靜態(tài)塊(靜態(tài)初始化器)static、構(gòu)造塊、構(gòu)造方法以及

5、在類的繼承和實(shí)例生成中的相互關(guān)系和執(zhí)行順序。6. java關(guān)于異常的相關(guān)知識點(diǎn):( 1) 錯誤與異常:錯誤:程序在執(zhí)行過程中由于硬件或操作系統(tǒng)出錯,而導(dǎo)致的程序員無法控制的錯誤。異常:指硬件或操作系統(tǒng)正常時,程序遇到的運(yùn)行錯。由于語句中產(chǎn)生的語法錯(不能通過編譯)、語義錯(能通過編譯)、邏輯錯(能通過編譯)而使程序無法運(yùn)行或運(yùn)行后不能產(chǎn)生正確結(jié)果的現(xiàn)象。(2)異常類(Exception)java中常用到的跟異常有關(guān)的關(guān)鍵字:trycatchfinallythrowthrows參考復(fù)習(xí)題:一、單項選擇題1 以下說法正確的是。(A)Java中所有的方法都必須在類內(nèi)定義(B)Java中主方法可以不在

6、類內(nèi)定義,其他方法都必須定義在類內(nèi)(C)Java中主方法必須定義在類內(nèi),其他方法可以不必定義在類內(nèi)(D)Java中所有方法都不必在類內(nèi)定義2 Java源文件和編譯后的文件擴(kuò)展名分別是。( A).class和.java(B).class和.class( C).java和.class(D).java和.java3要開發(fā)Java程序,需要安裝的開發(fā)包是。(A)jdk(B)eclipse(C)notepad(D)記事本4 Java中所有類的默認(rèn)超類為。( A)Object(B)Class( C)Main(D)Super5 .下列語句中能建立scu包的語句是。( A)importjava.scu;(B)

7、importscu;( C)packagescu;(D)packagejava.scu;6關(guān)于Object類中定義的toString方法,以下說法正確的是_。( A) toString方法可以將java預(yù)定義的類型轉(zhuǎn)換為字符串類型( B) toString方法可以將字符串類轉(zhuǎn)換為java預(yù)定義的類型C)toString方法可以將所有其他類型轉(zhuǎn)換為字符串類型(D)toString方法可以將字符串類型轉(zhuǎn)換為所有其他類型7在子類的構(gòu)造函數(shù)中要調(diào)用父類的構(gòu)造函數(shù),需要用哪個關(guān)鍵字_。(A)final(B)extends(C)implements(D)super8在Java語言中,下列哪個包是編譯器自動

8、導(dǎo)入的?_。( A)java.lang(B)( C)javax.swing(D)java.util9以下語句中,沒有創(chuàng)建出字符串對象的是。( A)Stringstr;(B)Stringstr=“hello”;( C)Stringstr=newString();(D)newString(“hello”);10關(guān)于布爾類型說法正確的是_。(A)boolean表示布爾類型,它的取值只有true和false(B)bool表示布爾類型,它的取值只有true和false(C)boolean表示布爾類型,它的取值只有1和0(D)bool表示布爾類型,它的取值只有1和011. 編譯JavaApplicatio

9、n源程序文件將產(chǎn)生相應(yīng)的字節(jié)碼文件,這些字節(jié)碼文件的擴(kuò)展名為。A.javaB.classC.htmlD.exe12.設(shè)x=1,y=2,z=3,則表達(dá)式y(tǒng)+=z/+x的值是()。A.3B.3.5C.4D.513 不能作為類及類成員的訪問控制符的是()。A.publicB.privateC.staticD.protected14 為AB類的一個無形式參數(shù)無返回值的方法method書寫方法頭,使得使用類名AB作為前綴就可以調(diào)用它,該方法頭的形式為。A.staticvoidmethod()B.publicvoidmethod()C.finalvoidmethod()D.abstractvoidmeth

10、od()15 Javaapplication中的主類需包含main方法,以下哪項是main方法的正確形參?A、StringsargsB、StringargsC、StringargD、StringBufferargs16以下關(guān)于繼承的敘述正確的是。A、在Java中類只允許單一繼承B、在Java中一個類只能實(shí)現(xiàn)一個接口C、在Java中一個類不能同時繼承一個類和實(shí)現(xiàn)一個接口D、在Java中接口只允許單一繼承17以下哪個不是Java的原始數(shù)據(jù)類型A、intB、BooleanC、floatD、char18給出下面代碼,關(guān)于該程序以下哪個說法是正確的?publicclassPersonstaticinta

11、rr=newint5;publicstaticvoidmain(Stringa)System.out.println(arr0);A、編譯時將產(chǎn)生錯誤B、編譯時正確,運(yùn)行時將產(chǎn)生錯誤C、輸出零D、輸出空19下列哪些語句關(guān)于Java內(nèi)存回收的說明是正確的?A、程序員必須創(chuàng)建一個線程來釋放內(nèi)存B、內(nèi)存回收程序負(fù)責(zé)釋放無用內(nèi)存C、內(nèi)存回收程序允許程序員直接釋放內(nèi)存D、內(nèi)存回收程序可以在指定的時間釋放內(nèi)存對象20以下代碼段執(zhí)行后的輸出結(jié)果為intx=3;inty=10;System.out.println(y%x);A、-1B、2C、1D、321 .將字符串s中的小寫字母轉(zhuǎn)換成大寫字母的正確方法是:a

12、)s.toLowercase()b)s.toUppercase()c)s.toUpperCase()d)s.toLowerCase()22 .在Java中,所有類的根類是()。a)java.lang.Objectb)java.lang.Classc)java.applet.Appletd)java.awt.Frame23有以下程序片段,下列哪個選項不能插入到行1。1 .2 .publicclassInteresting3 ./dosth4 .A、importjava.awt.*;B、packagemypackage;C、classOtherClassD、publicclassMyClass24

13、在使用interface聲明一個接口時,只可以使用()修飾符修飾該接口。A、privateB、protectedC、privateprotectedD、public25、有以下方法的定義,請選擇該方法的返回類型()。ReturnTypemethod(bytex,doubley)return(short)x/y*2;A、byteB、shortC、intD、double26、如下哪個是Java中的標(biāo)識符()A、publicB、superC、3numberD、width27. 如下哪個是Java中的標(biāo)識符()A、fieldnameB、superC、3numberD、#number28. 已知如下定義

14、:Strings="story"下面哪個語句不是合法的()A、s+="books"B、s=s+100;C、intlen=s.length;D、Stringt=s+“abc”;應(yīng)該是s.length()29. 如下哪個是Java中有效的關(guān)鍵字()A、nameB、helloC、falseD、good30、下面的代碼段執(zhí)行之后count的值是什么()intcount=1;for(inti=1;i<=5;i+)count+=i;System.out.println(count);A、5B、1C、15D、1631. 定義一個類,必須使用的關(guān)鍵字是()A、pu

15、blicB、classC、interfaceD、static32. 定義一個接口必須使用的關(guān)鍵字是()A、publicB、classC、interfaceD、static33. 下列程序段執(zhí)行后的結(jié)果是()。Strings=newString("abcdefg");for(inti=0;i<s.length();i+=2)/i=0246System.out.print(s.charAt(i);A)acegB)ACEGC)abcdefgD)abcd34. 應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是()。Strings1=newString("abc&q

16、uot;);Strings2=newString("abc");booleanb1=s1.equals(s2);booleanb2=(s1=s2);System.out.print(b1+""+b2);falseA)truefalseB)falsetrueC)truetrueD)false35. 下面程序段執(zhí)行后b的值是()。Integerinteg=newInteger(9);booleanb=integinstanceofObject;A)9B)trueC)1D)false36. 應(yīng)用程序Test.java的源程序如下,在命令行鍵入:javaTest

17、aaabbc回車后輸出的結(jié)果是()。publicclassTestpublicstaticvoidmain(Stringargs)intk1=args.length;/3intk2=args1.length();/2System.out.print(k1+""+k2);A)32B)12C)13D)3337、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是()。intb=1,2,2,2,2,2;intsum=0;/此處應(yīng)該出錯了for(inti=0;i<b.length;i+)for(intj=0;j<bi.length;j+)sum*=bij;System.o

18、ut.println("sum="+sum);A)32B)11C)2D)338. 應(yīng)用程序的main方法中有以下語句,則執(zhí)行后輸出的結(jié)果是()。intx=125,21,5,168,98;intmax=x0;for(inti=1;i<x.length;i+)if(xi>max)max=xi;System.out.println(max);A)125B)5C)98D)16839. 程序Test.java編譯運(yùn)行后輸出的結(jié)果是()。publicclassTestStrings1="java"publicstaticvoidmain(Stringar

19、gs)intz=2;Testt=newTest();System.out.println(t.s1+z);A)java2B)2C)沒有輸出結(jié)果D)java40 應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是()。Strings1="0.5",s2="12"doublex=Double.parseDouble(s1);inty=Integer.parseInt(s2);System.out.println(x+y);A)12.5B)120.5C)12D)“12.5”41 .關(guān)于下面的程序Test.java說法正確的是()。publicclassTest

20、Stringx="1"inty;publicstaticvoidmain(Stringargs)intz=2;System.out.println(x+y+z);A)3B)102C)12D)程序有編譯錯誤說明:staticStringx=”1”;staticinty;)。42 .應(yīng)用程序的main方法中有以下語句,則執(zhí)行后輸出的結(jié)果是(intx=125,21,5,168,98;intmin=x0;for(inti=1;i<x.length;i+)if(xi<min)min=xi;System.out.println(min);A)125B)5C)98D)1684

21、3關(guān)于選擇結(jié)構(gòu)下列哪個說法正確?()A.if語句和else語句必須成對出現(xiàn)B. if語句可以沒有else語句對應(yīng)C. switch結(jié)構(gòu)中每個case語句中必須用break語句Dswitch結(jié)構(gòu)中必須有default語句44while循環(huán)和do,while循環(huán)的區(qū)別是:()A.沒有區(qū)別,這兩個結(jié)構(gòu)任何情況下效果一樣Bwhile循環(huán)比do,while循環(huán)執(zhí)行效率高Cwhile循環(huán)是先循環(huán)后判斷,所以循環(huán)體至少被執(zhí)行一次()B public finalB 方法體為空D. 定義方法時必須使用Ddo,while循環(huán)是先循環(huán)后判斷,所以循環(huán)體至少被執(zhí)行一次45下列修飾符中與訪問控制無關(guān)的是Aprivate

22、CprotectedD46 void的含義:()A.方法沒有返回值C.沒有意義47 return語句:()A.只能讓方法返回數(shù)值B.方法都必須含有C.方法中可以有多句returnD.不能用來返回對象48關(guān)于對象成員占用內(nèi)存的說法哪個正確?()A.同一個類的對象共用同一段內(nèi)存B、同一個類的對象使用不同的內(nèi)存段,但靜態(tài)成員共享相同的內(nèi)存空間C.對象的方法不占用內(nèi)存D以上都不對說明:同一個類的不同對象使用不同的內(nèi)存段,但靜態(tài)成員共享相同的內(nèi)存空間49下列說法哪個正確?A.不需要定義類,就能創(chuàng)建對象B.對象中必須有屬性和方法C.屬性可以是簡單變量,也可以是一個對象D、屬性必須是簡單變量50下列說法哪個

23、正確?()A、一個程序可以包含多個源文件B、一個源文件中只能有一個類C、一個源文件中可以有多個公共類D、一個源文件只能供一個程序使用51.關(guān)于方法main()的說法哪個正確?()A.方法main()只能放在公共類中Bmain()的頭定義可以根據(jù)情況任意更改C.一個類中可以沒有main()方法D.所有對象的創(chuàng)建都必須放在main()方法中52構(gòu)造函數(shù)何時被調(diào)用?()A、創(chuàng)建對象時B、類定義時C、使用對象的方法時D、使用對象的屬性時53抽象方法:()A、可以有方法體B、可以出現(xiàn)在非抽象類中C、是沒有方法體的方法D、抽象類中的方法都是抽象方法54關(guān)于繼承的說法正確的是:()A、子類將繼承父類所有的屬

24、性和方法。B、子類將繼承父類的非私有屬性和方法。C、子類只繼承父類public方法和屬性D、子類只繼承父類的方法,而不繼承屬性55關(guān)于構(gòu)造函數(shù)的說法哪個正確?()A、一個類只能有一個構(gòu)造函數(shù)B、一個類可以有多個不同名的構(gòu)造函數(shù)C、構(gòu)造函數(shù)與類同名D、構(gòu)造函數(shù)必須自己定義,不能使用父類的構(gòu)造函數(shù)56 this和super:A、都可以用在main()方法中B、都是指一個內(nèi)存地址C、不能用在main()方法中D、意義相同57 .關(guān)于super的說法正確的是:A、是指當(dāng)前對象的內(nèi)存地址B、是指當(dāng)前對象的父類對象的內(nèi)存地址C、是指當(dāng)前對象的父類D、可以用在main()方法中58覆蓋與重載的關(guān)系是()A、

25、覆蓋只有發(fā)生在父類與子類之間,而重載可以發(fā)生在同一個類中B.覆蓋方法可以不同名,而重載方法必須同名Cfinal修飾的方法可以被覆蓋,但不能被重載D覆蓋與重載是同一回事59. 請說出下列代碼的執(zhí)行結(jié)果:Strings="abcd"Strings1=newString(s);if(s=s1)System.out.println("thesame");if(s.equals(s1)System.out.println("equals");A.thesameequalsB.equalsC.thesameD.什么結(jié)果都不輸出60. 下列有關(guān)Ja

26、va中接口的說法哪個是正確的?A. 接口中含有具體方法的實(shí)現(xiàn)代碼B. 若一個類要實(shí)現(xiàn)一個接口,則用到“implements”關(guān)鍵字C. 若一個類要實(shí)現(xiàn)一個接口,則用到“extends”關(guān)鍵字D. 接口不允許繼承61. 關(guān)于接口哪個正確?A. 類實(shí)現(xiàn)一個接口必須實(shí)現(xiàn)接口的所有方法B. 一個類只能實(shí)現(xiàn)一個接口C.接口間不能有繼承關(guān)系D.接口和抽象類是同一回事二、判斷題:1、Java是不區(qū)分大小寫的語言。錯:Java是區(qū)分大小寫的語言2、Java的源代碼中定義幾個類,編譯結(jié)果就生成幾個以.class為后綴的字節(jié)碼文件。對3、 JavaApplet是由獨(dú)立的解釋器程序來運(yùn)行的。錯:是有瀏覽器來運(yùn)行的4

27、、 JavaApplication是由獨(dú)立的解釋器程序來運(yùn)行的。對5、 JavaApplet的字節(jié)碼文件必須嵌入HTML的文件中并由負(fù)責(zé)解釋HTML文件的WWW瀏覽器充當(dāng)解釋器來解釋運(yùn)行。對6、 JavaApplet只能在圖形界面下工作。對7、 JavaApplication只能在字符界面下工作。錯8、Java的字符類型采用的是ASCII編碼。錯:采用Unicode碼9、 Java的字符類型采用的是Unicode編碼,每個Unicode碼占16個比特對10、 Java的各種數(shù)據(jù)類型占用固定長度,與具體的軟硬件平臺環(huán)境無關(guān)。對/錯11、 JavaApplication源程序是由類定義組成的,每個

28、程序可以定義若干個類,但只有一個類是主類。對12、方法的覆蓋與域的隱藏一樣,父類的同名方法在子類中仍然占有自己獨(dú)立的內(nèi)存空間。對/錯13、子類的域和方法的數(shù)目一定大于等于父類的域和方法的數(shù)目。對/錯14、類在實(shí)現(xiàn)接口的方法時,必須顯示地使用public修飾符。對15、 System類不能實(shí)例化,即不能創(chuàng)建System類的對象。對/錯16、 Java中數(shù)組的元素只能是簡單數(shù)據(jù)類型的量。錯/17、Vector類中的對象不能是簡單數(shù)據(jù)類型。錯18、Java中的String類的對象既可以是字符串常量,也可以是字符串變量。對19、用戶自定義的圖形界面元素也可以響應(yīng)用戶的動作,具有交互功能。對/20、Ja

29、va的屏幕坐標(biāo)是以像素為單位,容器的左上角被確定為坐標(biāo)的起點(diǎn)。對/21、Java中,并非每個事件類都只對應(yīng)一個事件。?22、一個類只能有一個父類,但一個接口可以有一個以上的父接口。對23. 實(shí)現(xiàn)接口的類不能是抽象類。錯24. Java程序里,創(chuàng)建新的類對象用關(guān)鍵字new,回收無用的類對象使用關(guān)鍵字free。錯25 Java有垃圾回收機(jī)制,內(nèi)存回收程序可在指定的時間釋放內(nèi)存對象。錯26構(gòu)造方法用于創(chuàng)建類的實(shí)例對象,構(gòu)造方法名應(yīng)與類名相同,類型為void。錯27擁有abstract方法的類是抽象類,但抽象類中可以沒有abstract方法。對28靜態(tài)初始化器是在其所屬的類加載內(nèi)存時由系統(tǒng)自動調(diào)用執(zhí)行

30、。對29在Java中對象可以賦值,只要使用賦值號(等號)即可,相當(dāng)于生成了一個各屬性與賦值對象相同的新對象。錯30. 實(shí)現(xiàn)接口的類不能是抽象類。錯31. 方法中形參的名字可以和方法體中聲明的局部變量名字相同。錯32. 構(gòu)造方法必須自己定義,不能使用父類的構(gòu)造方法。對33. 子類可以繼承父類所有成員。錯34. 擁有abstract方法的類是抽象類,但抽象類中只能含有abstract方法。錯35. 一個類不能既是子類又是父類。錯36. 不可以為某一個類定義多個構(gòu)造方法。錯37. final類不可以有子類。對38. 抽象類不能實(shí)例化。對39. 接口中所有方法均為抽象方法。對40. final類可以有

31、子類。錯三、填空:1、根據(jù)結(jié)構(gòu)組成和運(yùn)行環(huán)境的不同,Java程序可分為兩類:和。、2、類的修飾符分為、。3、 Java程序中定義類使用的關(guān)鍵字是,每個類的定義由類頭定義、類體定義兩部分組成,其中類體部分包括、。4、 Java程序中定義接口所使用的關(guān)鍵字是_,接口中的屬性都是_,接口中的方法都是。5、 是Java程序中所有類的直接或間接父類,也是類庫中所有類的父類。7、結(jié)構(gòu)化程序設(shè)計的三種基本流程控制結(jié)構(gòu)包括_、。8、 面向?qū)ο蟮娜齻€特征是、_、。9、 類的定義、類及類成員的修飾符:包括public、無修飾符、protected、privateprotected、abstract、final、s

32、tatic、接口(interface)等10、數(shù)組、構(gòu)造方法、void方法、非void方法、方法調(diào)用(無參、有參)等。11、“包”的定義、引入非同包中的類等。12、表達(dá)式13、求“質(zhì)數(shù)”14.程序填空,例如:在程序中引入Scanner類,完成由鍵盤交互輸入若干數(shù)字,并由程序輸出所輸入數(shù)字的平方數(shù),當(dāng)輸入字符串“quit”時,程序結(jié)束運(yùn)行。不完整程序如下:【importjava.util.Scanner】;publicclassTest2publicstaticvoidmain(Stringargs)Scannerbuf=newScanner(_【System.in】_);while(_【tru

33、e】_)Stringstr=buf.【nextLine()】;if(【str.equals("quit")】)_【break】;intx=Integer.parseInt(str);System.out.println(_【x*x】_);四、程序閱讀題:涉及類型題包括:數(shù)組、循環(huán)、字符串處理、五、編程題:1 .排序(冒泡、選擇排序法,可能用到類方法、實(shí)例方法或形參是一維數(shù)組,注意是升序還是降序)2 .字符串處理(類似書上的課后習(xí)題)3 .有關(guān)類的編程(包括類的繼承、構(gòu)造方法、生成實(shí)例、類方法、實(shí)例方法、求階乘等,不要求UML圖)4 .手工位運(yùn)算(包括、&、I、A、)

34、類和類成員的修飾符修飾符:1. 訪問修飾符( 1) 類:a) 省略訪問修飾符(default或friendly):即具有包訪問特性,這時類只能被同一個包中的類使用(Java將目錄或文件夾稱為“包”)。b) public修飾符:對外公開,可以被所有其他類所使用(也具有包訪問特性),如果不在同一目錄中,必須用import引入或在代碼中通過“包名.類名”引用。在一個java源程序中最多只能有一個類是public類。( 2) 類成員:a) 無(default或friendly):可以在本類內(nèi)和同包中的其它類訪問b) public:可以被所有類訪問c) private:只能在本類“內(nèi)”訪問d) prot

35、ected:可被本類、同包中的其他類、其他包中的子類所訪問訪問權(quán)限(從高到低):public、protected、無、private2. 特征修飾符(1)類:a) abstract:抽象類。類中可能含有只有方法頭,而沒有方法體的抽象類。它必須用子類繼承(必須重寫所有的父類中的抽象方法)或用抽象類繼承該父類抽象類(可重寫所有父類中的抽象方法或只寫其中一部分或不寫,但最終必須由一般類做子類來完成類的實(shí)例化)。b) final類:終止類。該類不能有“子”類。( 2) 類成員:a) abstract:用于抽象方法(只有方法頭沒有方法體的方法)b) static:被修飾的成員變量或方法為類所有(若沒有f

36、inal關(guān)鍵字且沒有被賦值,則成員變量自動被賦予初值,可以在不生成實(shí)例的情況下用類名直接引用)c) native:用于修飾類的方法,本地方法是外部模塊,用其他編程語言編寫方法體d) synchronized(同步):用于修飾類的方法。適用于"多線程”編程e) final:用于成員變量則被修飾的類為常量(必須在定義時賦值),或用于修飾方法則此方法為終止方法(即子類不能重寫此方法)。java訪問權(quán)限修飾符publicprotectedfriendlyprivate用法總結(jié)首先聲明:java中,friendly這個修飾符并沒有顯式的聲明,在成員變量和方法前什么修飾符也不用,默認(rèn)的就是fri

37、endly。為了條理清晰,分三種不同情況來總結(jié)。一訪問權(quán)限修飾符修飾成員變量和方法public:表明該成員變量和方法是共有的,能在任何情況下被訪問。protected:必須在同一包中才能被訪問。(說的比較簡單,看個例子就明白了)eg:classAprotectedintweight;protectedintf(inta,intb)/方法體假設(shè)B與A在同一個包中,則classBvoidg()Aa=newA();A.weight=100;/合法A.f(3,4);/合法特別說明:什么是在同一個包中?答:用package打包在一起的class,叫在同一個包中。(不明白,舉個例子)eg:在JDK的src

38、javaio中,你會看到許多java類,第一句源代碼都是packagejava.io;沒有使用package打包的,在同一目錄下的類也會被視做同一個包。friendly:在這種情況下中,同protected。區(qū)別在第二和第三種情況中。eg:classAintweight;intf(inta,intb)/方法體假設(shè)B與A在同一個包中,則classBvoidg()Aa=newA();A.weight=100;/合法A.f(3,4);/合法private:只能在本類中訪問。eg:classTestprivateintmoney;Test()money=2000;privateintgetMoney(

39、)returnmoney;publicstaticvoidmain(Stringargs)Testte=newTest();te.money=3000;/合法intm=te.getMoney();/合法System.out.println("money="+m);PS:實(shí)際上,把重要的數(shù)據(jù)修飾為private,然后寫一個public的函數(shù)訪問它,正好體現(xiàn)了OOP的封裝特性,是OOP安全性的體現(xiàn)。二訪問權(quán)限修飾符修飾類1 ,不能用protected和private修飾類。2 ,用friendly修飾的類叫友好類,在另外一個類中使用友好類創(chuàng)建對象時,要保證它們在同一包中。三訪問

40、權(quán)限修飾符與繼承這里的訪問修飾符指的是修飾成員變量和方法??梢苑譃閮煞N情況:1 ,子類與父類在同一包中此時只有聲明為private的變量與方法不能被繼承(訪問)。eg:classFatherprivateintmoney;intweight=100;classSonextendsFatherviodf()money=10000;/非法weight=100;/合法2 ,子類與父類不在同一包中此時private與friendly均不能被繼承(訪問),protected與public可以。eg:Father.javapackagecom.aaapublicclassFatherintheight;p

41、rotectedintmoney=120;publicintweight;protectedintgetMoney()returnmoney;voidsetMoney(intnewMoney)money=newMoney;Son.javapackagecom.bbbimportcom.aaa.Father;publicclassSonextendsFathervoidf()money=10000;/合法輸出結(jié)果是10000合法輸出結(jié)果是10000/height=170;/非法,height為friendly修飾的變量System.out.println(money);/setMoney(300

42、);/非法intnumber=getMoney();/System.out.println(number);/publicstaticvoidmain(Stringargs)Sonsss=newSon();sss.f();所以,訪問權(quán)限修飾符權(quán)限從高到低排列是public,protected,friendly,private/*/P6211題importjava.util.Scanner;classU20_3publicstaticvoidmain(Stringargs)Scannerreader=newScanner(System.in);System.out.print("n=?

43、");/輸入5則顯示書上的結(jié)果intn=reader.nextInt();inta=newintnn;inti,j,c=0,p;for(i=0;i<n;i+)p=i+1;for(j=0;j<=i;j+)p-;apj=+c;for(i=0;i<n;i+)for(j=0;j<n;j+)System.out.print(aij!=0?aij+"t":"");System.out.println();/*/字符串處理,引入Scanner類完成字符串的交互輸入importjava.util.Scanner;classU20_4pu

44、blicstaticvoidmain(Stringargs)Scannerreader=newScanner(System.in);Strings=reader.nextLine();intn=s.length();chara=newcharn;intc1=0,c2=0,c3=0,i;for(i=0;i<n;i+)ai=s.charAt(i);for(i=0;i<n;i+)if(ai>='A'&&ai<='Z'|ai>='a'&&ai<='z')c1+;elseif(ai>='0'&&ai<='9')c2+;elsec3+;System.out.println("英文字母的個數(shù):"+c1);System.out.println("數(shù)字的個數(shù):"+c2);System.out.println("其它字符的個數(shù)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論