版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Good is good, but better carries it.精益求精,善益求善。MyEclipse和Java學(xué)習(xí)中的問題集錦-MyEclipse和Java學(xué)習(xí)中的問題集錦1、在MyEclipse環(huán)境中如何運(yùn)行帶有main()方法的class?2、字符型和字符串型:字符型:用單引號(hào)引起來的單個(gè)(個(gè))字符;字符串型:用雙引號(hào)引起來的個(gè)或多個(gè)字符;轉(zhuǎn)義字符:Java還允許使用一種特殊形式的字符常量值來表示一些難以用一般字符來表示的字符,這種特殊形式的字符是以一個(gè)“”開頭的字符序列,稱為轉(zhuǎn)義字符。1.八進(jìn)制轉(zhuǎn)義序列:+1到3位5數(shù)字;范圍0003770:空字符2.Unicode轉(zhuǎn)義字符:u
2、+四個(gè)十六進(jìn)制數(shù)字;065535u0000:空字符3.特殊字符:就3個(gè):雙引號(hào):?jiǎn)我?hào):反斜線4.控制字符:5個(gè)單引號(hào)字符反斜杠字符r回車n換行f走紙換頁t橫向跳格b退格點(diǎn)的轉(zhuǎn)義:.=u002E美元符號(hào)的轉(zhuǎn)義:$=u0024乘方符號(hào)的轉(zhuǎn)義:=u005E左大括號(hào)的轉(zhuǎn)義:=u007B左方括號(hào)的轉(zhuǎn)義:=u005B左圓括號(hào)的轉(zhuǎn)義:(=u0028豎線的轉(zhuǎn)義:|=u007C右圓括號(hào)的轉(zhuǎn)義:)=u0029星號(hào)的轉(zhuǎn)義:*=u002A加號(hào)的轉(zhuǎn)義:+=u002B問號(hào)的轉(zhuǎn)義:?=u003F反斜杠的轉(zhuǎn)義:=u005C3、上溢、下溢問題:、變量的作用域:變量的作用域變量的定義不但包括變量名和變量類型,同時(shí)還包括它的作用
3、域,變量的作用域指明可以訪問該變量的程序代碼的范圍。按作用域來分,變量可分為以下幾種:局部變量、成員變量、方法參數(shù)和異常處理參數(shù)。局部變量定義在方法中或方法內(nèi)的一個(gè)代碼塊中,其作用域?yàn)樗诘拇a塊。局部變量必須初始化。例如,在方法中定義變量:變量a的作用域?yàn)榻缍ǚ椒w的兩個(gè)大括號(hào)之間的區(qū)域。在方法內(nèi)的一個(gè)代碼塊中定義變量時(shí):變量i的作用域?yàn)閒or循環(huán)所確定的一對(duì)大括號(hào)(加下劃波浪線部分)之間的區(qū)域。成員變量定義在類里面,但不在類里面的某個(gè)方法中,其作用域?yàn)檎麄€(gè)類。關(guān)于類成員變量的概念將在其它章節(jié)中向大家作進(jìn)一步介紹。方法參數(shù)用于將方法外的數(shù)據(jù)傳遞給方法,其作用域就是方法的方法體。關(guān)于方法參數(shù)
4、的概念將在其它章節(jié)中向大家作進(jìn)一步介紹。異常處理參數(shù)是將數(shù)據(jù)傳遞給異常處理代碼,其作用域是異常處理部分。關(guān)于異常處理參數(shù)的概念將在其它章節(jié)中向大家作進(jìn)一步介紹。成員變量和局部變量有什么區(qū)別?答:classAinta;/成員變量publicstaticvoidmain(Stringargs)intb;/局部變量類體由2部分構(gòu)成:一部分是變量的定義;一部分是方法的定義(一個(gè)類中可以有多個(gè)方法)。在變量定義部分定義的變量叫做類的成員變量,成員變量在整個(gè)類中都有效。(全局變量應(yīng)該是成員變量的俗稱)。在方法體中定義的變量叫做局部變量,局部變量只在定義它的方法中有效。成員變量又分為實(shí)例變量和類變量(sta
5、tic靜態(tài)變量)。classOnefloatx;/x為實(shí)例變量staticinty;/只要有關(guān)鍵字static,y為類變量1.成員變量可以被public,protect,private,static等修飾符修飾,而局部變量不能被控制修飾符及static修飾;兩者都可以定義成final型;2.成員變量存儲(chǔ)在堆,局部變量存儲(chǔ)在棧;3.存在時(shí)間不同;4.成員變量有默認(rèn)值,(被final修飾且沒有static的必須顯式賦值),局部變量不會(huì)自動(dòng)賦值;先看下面兩段程序:程序一:publicclassVariableinti;voidtest()intj=8;if(j=i)System.out.printl
6、n(相等);elseSystem.out.println(不相等);publicstaticvoidmain(Stringargs)Variablev=newVariable();v.test();程序二:publicclassVariablevoidtest()inti;intj=8;if(j=i)System.out.println(相等);elseSystem.out.println(不相等);publicstaticvoidmain(Stringargs)Variablev=newVariable();v.test();第一個(gè)程序很正常,編譯時(shí)不會(huì)出錯(cuò)。第二個(gè)程序編譯時(shí)會(huì)提示如下錯(cuò)誤:
7、D:ProgramjavatestjavacVariable.javaVariable.java:9:可能尚未初始化變量iif(j=i)1錯(cuò)誤:之所以會(huì)出現(xiàn)這樣的錯(cuò)誤是因?yàn)椋撼蓡T變量有默認(rèn)值,(被final修飾且沒有static的必須顯式賦值),局部變量不會(huì)自動(dòng)賦值。類體分為兩部分。變量定義部分所定義的變量被稱為類的成員變量,在方法體中定義的變量和方法的參數(shù)都被稱為局部變量。java中成員變量和局部變量的區(qū)別:1.成員變量可以被public,protect,private,static等修飾符修飾,而局部變量不能被控制修飾符及static修飾;兩者都可以定義成final型。2.成員變量存儲(chǔ)在堆
8、,局部變量存儲(chǔ)在棧。3.存在時(shí)間不同。4.成員變量有默認(rèn)值,(被final修飾且沒有static的必須顯式賦值),局部變量不會(huì)自動(dòng)賦值。顧名思意:什么是局部,方法內(nèi)部,塊內(nèi)部都是局部,執(zhí)行指令退出那個(gè)局部,局部變量自動(dòng)清除。比如方法中,不用說塊中inti=0;/這是一個(gè)局部變量,它的作用范圍就在其中成員變量就會(huì)涉及到誰的成員,類的成員?實(shí)例的成員?classAinti=0;/實(shí)例的成員staticj=1;/類的成員static的差別,是否依賴于實(shí)例而存在成員變量:作為類的成員而存在,直接存在于類中。局部變量:作為方法或語句塊的成員而存在,存在于方法的參數(shù)列表和方法定義中。局部變量在使用前必須被
9、程序員主動(dòng)的初始化,和此形成對(duì)比,系統(tǒng)中的成員變量則會(huì)被系統(tǒng)提供一個(gè)默認(rèn)的初始值。所以在語法上,類的成員變量能夠定義后直接使用,而局部變量在定義后先要賦初值,然后才能使用。所有類的成員變量可以通過this來引用。成員變量又分成倆中類型:實(shí)例變量和靜態(tài)變量。靜態(tài)變量在定義時(shí)要使用static關(guān)鍵字。靜態(tài)變量的類型說明符是static。靜態(tài)變量當(dāng)然是屬于靜態(tài)存儲(chǔ)方式,但是屬于靜態(tài)存儲(chǔ)方式的量不一定就是靜態(tài)變量,例如外部變量雖屬于靜態(tài)存儲(chǔ)方式,但不一定是靜態(tài)變量,必須由static加以定義后才能成為靜態(tài)外部變量,或稱靜態(tài)全局變量。對(duì)于自動(dòng)變量,它屬于動(dòng)態(tài)存儲(chǔ)方式。但是也可以用static定義它為靜態(tài)
10、自動(dòng)變量,或稱靜態(tài)局部變量,從而成為靜態(tài)存儲(chǔ)方式。由此看來,一個(gè)變量可由static進(jìn)行再說明,并改變其原有的存儲(chǔ)方式。1.靜態(tài)局部變量在局部變量的說明前再加上static說明符就構(gòu)成靜態(tài)局部變量。例如:staticinta,b;staticfloatarray5=1,2,3,4,5;靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)方式,它具有以下特點(diǎn):(1)靜態(tài)局部變量在函數(shù)內(nèi)定義,但不象自動(dòng)變量那樣,當(dāng)調(diào)用時(shí)就存在,退出函數(shù)時(shí)就消失。靜態(tài)局部變量始終存在著,也就是說它的生存期為整個(gè)源程序。(2)靜態(tài)局部變量的生存期雖然為整個(gè)源程序,但是其作用域仍與自動(dòng)變量相同,即只能在定義該變量的函數(shù)內(nèi)使用該變量。退出該函數(shù)后,
11、盡管該變量還繼續(xù)存在,但不能使用它。(3)允許對(duì)構(gòu)造類靜態(tài)局部量賦初值。若未賦以初值,則由系統(tǒng)自動(dòng)賦以0值。(4)對(duì)基本類型的靜態(tài)局部變量若在說明時(shí)未賦以初值,則系統(tǒng)自動(dòng)賦予0值。而對(duì)自動(dòng)變量不賦初值,則其值是不定的。根據(jù)靜態(tài)局部變量的特點(diǎn),可以看出它是一種生存期為整個(gè)源程序的量。雖然離開定義它的函數(shù)后不能使用,但如再次調(diào)用定義它的函數(shù)時(shí),它又可繼續(xù)使用,而且保存了前次被調(diào)用后留下的值。因此,當(dāng)多次調(diào)用一個(gè)函數(shù)且要求在調(diào)用之間保留某些變量的值時(shí),可考慮采用靜態(tài)局部變量。雖然用全局變量也可以達(dá)到上述目的,但全局變量有時(shí)會(huì)造成意外的副作用,因此仍以采用局部靜態(tài)變量為宜。給讀者一個(gè)簡(jiǎn)單直白的例子(區(qū)
12、別靜態(tài)局部變量和動(dòng)態(tài)局部變量):*intfun(intn)staticintf=1;/*請(qǐng)注意這行的修改*/這是static結(jié)果:f=f*n;return(f);main()inti;for(i=1;i=5;i+)printf(%d!=%dn,i,fun(i);*intfun(intn)intf=1;/*請(qǐng)注意這行的修改*/結(jié)果是:這是auto的結(jié)果f=f*n;return(f);main()inti;for(i=1;i=5;i+)printf(%d!=%dn,i,fun(i);2.靜態(tài)全局變量:全局變量(外部變量)的說明之前再冠以static就構(gòu)成了靜態(tài)的全局變量。全局變量本身就是靜態(tài)存儲(chǔ)方
13、式,靜態(tài)全局變量當(dāng)然也是靜態(tài)存儲(chǔ)方式。這兩者在存儲(chǔ)方式上并無不同。這兩者的區(qū)別雖在于非靜態(tài)全局變量的作用域是整個(gè)源程序,當(dāng)一個(gè)源程序由多個(gè)源文件組成時(shí),非靜態(tài)的全局變量在各個(gè)源文件中都是有效的。而靜態(tài)全局變量則限制了其作用域,即只在定義該變量的源文件內(nèi)有效,在同一源程序的其它源文件中不能使用它。由于靜態(tài)全局變量的作用域局限于一個(gè)源文件內(nèi),只能為該源文件內(nèi)的函數(shù)公用,因此可以避免在其它源文件中引起錯(cuò)誤。從以上分析可以看出,把局部變量改變?yōu)殪o態(tài)變量后是改變了它的存儲(chǔ)方式即改變了它的生存期。把全局變量改變?yōu)殪o態(tài)變量后是改變了它的作用域,限制了它的使用范圍。因此static這個(gè)說明符在不同的地方所起的
14、作用是不同的。應(yīng)予以注意。靜態(tài)變量:除范圍之外,變量還有存活期,在這一期間變量能夠保持它們的值。在應(yīng)用程序的存活期內(nèi)一直保持模塊級(jí)變量和公用變量的值。但是,對(duì)于Dim聲明的局部變量以及聲明局部變量的過程,僅當(dāng)過程在執(zhí)行時(shí)這些局部變量才存在。通常,當(dāng)一個(gè)過程執(zhí)行完畢,它的局部變量的值就已經(jīng)不存在,而且變量所占據(jù)的內(nèi)存也被釋放。當(dāng)下一次執(zhí)行該過程時(shí),它的所有局部變量將重新初始化。但可將局部變量定義成靜態(tài)的,從而保留變量的值。在過程內(nèi)部用Static關(guān)鍵字聲明一個(gè)或多個(gè)變量,其用法和Dim語句完全一樣:1.動(dòng)態(tài)存儲(chǔ)方式與靜態(tài)存儲(chǔ)方式的定義1)所謂靜態(tài)存儲(chǔ)方式是指在程序編譯期間分配固定的存儲(chǔ)空間的方式
15、;2)所謂動(dòng)態(tài)存儲(chǔ)方式是指在程序運(yùn)行期間根據(jù)需要進(jìn)行動(dòng)態(tài)的分配存儲(chǔ)空間的方式。2.內(nèi)存中用戶存儲(chǔ)空間的分配情況(分為三部分)1)程序區(qū):存放程序語句2)靜態(tài)存儲(chǔ)區(qū):存放全局變量,在程序開始執(zhí)行時(shí)給全局變量分配存儲(chǔ)區(qū),程序執(zhí)行完畢就釋放。3)動(dòng)態(tài)存儲(chǔ)區(qū):存放以下數(shù)據(jù):函數(shù)形式參數(shù)。在調(diào)用函數(shù)時(shí)給形參分配存儲(chǔ)空間;自動(dòng)變量(未加static聲明的局部變量);函數(shù)調(diào)用時(shí)的現(xiàn)場(chǎng)保護(hù)和返回地址等。棧,就是那些由編譯器在需要的時(shí)候分配,在不需要的時(shí)候自動(dòng)清楚的變量的存儲(chǔ)區(qū)。里面的變量通常是局部變量、函數(shù)參數(shù)等。堆,就是那些由new分配的內(nèi)存塊,他們的釋放編譯器不去管,由我們的應(yīng)用程序去控制,一般一個(gè)new
16、就要對(duì)應(yīng)一個(gè)delete。如果程序員沒有釋放掉,那么在程序結(jié)束后,操作系統(tǒng)會(huì)自動(dòng)回收。類變量、實(shí)例變量、局部變量類變量是類中獨(dú)立于方法之外的變量,用static修飾。實(shí)例變量也是類中獨(dú)立于方法之外的變量,不過沒有static修飾。局部變量是類的方法中的變量??聪旅娴膫未a說明:publicclassVariablestaticintallClicks=0;/類變量Stringstr=helloworld;/實(shí)例變量publicvoidmethod()inti=0;/局部變量實(shí)例變量也稱為:“域”,“成員變量”,在實(shí)體類或數(shù)據(jù)類中被稱為“屬性”或“字段”。當(dāng)實(shí)例變量可以改變時(shí),被稱為對(duì)象的狀態(tài)。
17、final用于常量的聲明,規(guī)范要求常量的變量名是大寫的。statci在java里面用于對(duì)類方法和屬性進(jìn)行修飾,其作用是什么呢?有兩種情況是non-static無法做到的,這時(shí)你就要使用statice。第一種:你希望不論產(chǎn)生了多少個(gè)對(duì)象,或不存在任何對(duì)象的情形下,那些特定數(shù)據(jù)的存儲(chǔ)空間都只有一份;第二種:你希望某個(gè)函數(shù)不要和classobject綁在一起。即使沒有產(chǎn)生任何object,外界還是可以調(diào)用其static函數(shù),或是取用其staticdata。Java中關(guān)于類變量和實(shí)例變量問:實(shí)例方法可直接調(diào)用本類的類方法嗎?先一一分析一下這幾個(gè)東東:實(shí)例方法,實(shí)例變量,類方法,類變量。實(shí)例變量(ins
18、tancevariable):或叫實(shí)例域、實(shí)例字段(instancefield),或叫成員變量(membervariable)。實(shí)例的變量,每個(gè)實(shí)例的變量可能不同。實(shí)例方法(instancemethod):或叫成員方法(membermethod)。供實(shí)例用的方法,必須要先有實(shí)例,才能通過此實(shí)例調(diào)用實(shí)例方法。類變量(classvariable):或叫靜態(tài)域、靜態(tài)字段(staticfield),或叫靜態(tài)變量(staticvariable)。出現(xiàn)在這樣的情況下:一個(gè)類的所有實(shí)例需要一個(gè)公有的屬性,比如,一,統(tǒng)計(jì)實(shí)例個(gè)數(shù);二,常量。類變量與類直接關(guān)聯(lián)在一起。內(nèi)存當(dāng)中只有一個(gè)地方存放這個(gè)變量。任何實(shí)例都
19、可以修改它的值(前提是它沒有被final修飾符修飾,不然就是常量),但是,訪問類變量并不需要實(shí)例,用類就可以操作了。類方法(classmethod):跟類變量的基本特點(diǎn)一樣。供類用的方法,可以沒有實(shí)例,直接通過類來調(diào)用類方法。從形式上看,類變量和類方法,比一般的變量和方法多了一個(gè)static修飾符。因?yàn)檫@個(gè)原因,類變量和類方法也被叫做靜態(tài)變量和靜態(tài)方法。它們的使用方法:實(shí)例方法可以直接訪問實(shí)例變量,調(diào)用實(shí)例方法;實(shí)例方法可以直接訪問類變量,調(diào)用類方法。但不推薦這么做,原因是不清晰,容易把類變量誤認(rèn)為是實(shí)例變量,把類方法誤認(rèn)為是實(shí)例方法(借助IDE,它會(huì)給出警告信息。);類方法可以直接調(diào)用類變量
20、和類方法;類方法不能直接調(diào)用實(shí)例變量和實(shí)例方法;類方法里面不能使用“this”關(guān)鍵字,因?yàn)闆]有實(shí)例存在,“this”不知道引用哪個(gè)實(shí)例。程序代碼:1234567891011121314151617181920212223242526272829303132333435publicclassMyClasspublicstaticStringclassVariable=Classvariable.;publicStringinstanceVariable=Instancevariable.;publicstaticvoidclassMethod()System.out.println(Classm
21、ethod.);publicvoidinstanceMethod()System.out.println(Instancemethod.);publicstaticvoidmain(Stringargs)/callanotherclassmethodviaaclassmethodclassMethod();/callclassmethodviaclassMyClass.classMethod();/accessclassvariableviaclassSystem.out.println(MyClass.classVariable);System.out.println(classVariable);MyClassinstance=newMyClass();/callcla
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 文學(xué)視角下園林植物的文化寓意探析
- 石河子大學(xué)《土壤肥料學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《人事測(cè)評(píng)》2021-2022學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《地籍測(cè)量》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《現(xiàn)場(chǎng)總線控制系統(tǒng)》2022-2023學(xué)年期末試卷
- 沈陽理工大學(xué)《汽車檢測(cè)與診斷技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《計(jì)算機(jī)程序設(shè)計(jì)》2022-2023學(xué)年期末試卷
- 沈陽理工大學(xué)《工程制圖A》2021-2022學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《大學(xué)生健康教育》2021-2022學(xué)年第一學(xué)期期末試卷
- 光合同化物的下運(yùn)途徑
- 學(xué)術(shù)規(guī)范與學(xué)術(shù)道德課件
- 中考數(shù)學(xué)復(fù)習(xí)《圓》專題訓(xùn)練-附帶有答案
- 數(shù)據(jù)倉庫與AI應(yīng)用整合
- 2023年版勞動(dòng)合同法全文
- 《交換機(jī)基礎(chǔ)原理》培訓(xùn)課件
- 人教版-初中-道德與法治-《共圓中國夢(mèng)》說課稿
- 短視頻的拍攝與剪輯
- 成人疝護(hù)理查房課件
- 東北林業(yè)大學(xué)電子電工學(xué)21-22年階段一考試試卷-答案
- 產(chǎn)品設(shè)計(jì)-淺談智能藍(lán)牙音響的外觀創(chuàng)新設(shè)計(jì)
- 擋土墻基礎(chǔ)混凝土檢驗(yàn)批質(zhì)量檢驗(yàn)記錄表標(biāo)準(zhǔn)范本
評(píng)論
0/150
提交評(píng)論