版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
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、字符型和字符串型:字符型:用單引號引起來的單個(個)字符;字符串型:用雙引號引起來的個或多個字符;轉(zhuǎn)義字符:Java還允許使用一種特殊形式的字符常量值來表示一些難以用一般字符來表示的字符,這種特殊形式的字符是以一個“”開頭的字符序列,稱為轉(zhuǎn)義字符。1.八進(jìn)制轉(zhuǎn)義序列:+1到3位5數(shù)字;范圍0003770:空字符2.Unicode轉(zhuǎn)義字符:u
2、+四個十六進(jìn)制數(shù)字;065535u0000:空字符3.特殊字符:就3個:雙引號:單引號:反斜線4.控制字符:5個單引號字符反斜杠字符r回車n換行f走紙換頁t橫向跳格b退格點的轉(zhuǎn)義:.=u002E美元符號的轉(zhuǎn)義:$=u0024乘方符號的轉(zhuǎn)義:=u005E左大括號的轉(zhuǎn)義:=u007B左方括號的轉(zhuǎn)義:=u005B左圓括號的轉(zhuǎn)義:(=u0028豎線的轉(zhuǎn)義:|=u007C右圓括號的轉(zhuǎn)義:)=u0029星號的轉(zhuǎn)義:*=u002A加號的轉(zhuǎn)義:+=u002B問號的轉(zhuǎn)義:?=u003F反斜杠的轉(zhuǎn)義:=u005C3、上溢、下溢問題:、變量的作用域:變量的作用域變量的定義不但包括變量名和變量類型,同時還包括它的作用
3、域,變量的作用域指明可以訪問該變量的程序代碼的范圍。按作用域來分,變量可分為以下幾種:局部變量、成員變量、方法參數(shù)和異常處理參數(shù)。局部變量定義在方法中或方法內(nèi)的一個代碼塊中,其作用域為它所在的代碼塊。局部變量必須初始化。例如,在方法中定義變量:變量a的作用域為界定方法體的兩個大括號之間的區(qū)域。在方法內(nèi)的一個代碼塊中定義變量時:變量i的作用域為for循環(huán)所確定的一對大括號(加下劃波浪線部分)之間的區(qū)域。成員變量定義在類里面,但不在類里面的某個方法中,其作用域為整個類。關(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)成:一部分是變量的定義;一部分是方法的定義(一個類中可以有多個方法)。在變量定義部分定義的變量叫做類的成員變量,成員變量在整個類中都有效。(全局變量應(yīng)該是成員變量的俗稱)。在方法體中定義的變量叫做局部變量,局部變量只在定義它的方法中有效。成員變量又分為實例變量和類變量(sta
5、tic靜態(tài)變量)。classOnefloatx;/x為實例變量staticinty;/只要有關(guān)鍵字static,y為類變量1.成員變量可以被public,protect,private,static等修飾符修飾,而局部變量不能被控制修飾符及static修飾;兩者都可以定義成final型;2.成員變量存儲在堆,局部變量存儲在棧;3.存在時間不同;4.成員變量有默認(rèn)值,(被final修飾且沒有static的必須顯式賦值),局部變量不會自動賦值;先看下面兩段程序:程序一: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();第一個程序很正常,編譯時不會出錯。第二個程序編譯時會提示如下錯誤:
7、D:ProgramjavatestjavacVariable.javaVariable.java:9:可能尚未初始化變量iif(j=i)1錯誤:之所以會出現(xiàn)這樣的錯誤是因為:成員變量有默認(rèn)值,(被final修飾且沒有static的必須顯式賦值),局部變量不會自動賦值。類體分為兩部分。變量定義部分所定義的變量被稱為類的成員變量,在方法體中定義的變量和方法的參數(shù)都被稱為局部變量。java中成員變量和局部變量的區(qū)別:1.成員變量可以被public,protect,private,static等修飾符修飾,而局部變量不能被控制修飾符及static修飾;兩者都可以定義成final型。2.成員變量存儲在堆
8、,局部變量存儲在棧。3.存在時間不同。4.成員變量有默認(rèn)值,(被final修飾且沒有static的必須顯式賦值),局部變量不會自動賦值。顧名思意:什么是局部,方法內(nèi)部,塊內(nèi)部都是局部,執(zhí)行指令退出那個局部,局部變量自動清除。比如方法中,不用說塊中inti=0;/這是一個局部變量,它的作用范圍就在其中成員變量就會涉及到誰的成員,類的成員?實例的成員?classAinti=0;/實例的成員staticj=1;/類的成員static的差別,是否依賴于實例而存在成員變量:作為類的成員而存在,直接存在于類中。局部變量:作為方法或語句塊的成員而存在,存在于方法的參數(shù)列表和方法定義中。局部變量在使用前必須被
9、程序員主動的初始化,和此形成對比,系統(tǒng)中的成員變量則會被系統(tǒng)提供一個默認(rèn)的初始值。所以在語法上,類的成員變量能夠定義后直接使用,而局部變量在定義后先要賦初值,然后才能使用。所有類的成員變量可以通過this來引用。成員變量又分成倆中類型:實例變量和靜態(tài)變量。靜態(tài)變量在定義時要使用static關(guān)鍵字。靜態(tài)變量的類型說明符是static。靜態(tài)變量當(dāng)然是屬于靜態(tài)存儲方式,但是屬于靜態(tài)存儲方式的量不一定就是靜態(tài)變量,例如外部變量雖屬于靜態(tài)存儲方式,但不一定是靜態(tài)變量,必須由static加以定義后才能成為靜態(tài)外部變量,或稱靜態(tài)全局變量。對于自動變量,它屬于動態(tài)存儲方式。但是也可以用static定義它為靜態(tài)
10、自動變量,或稱靜態(tài)局部變量,從而成為靜態(tài)存儲方式。由此看來,一個變量可由static進(jìn)行再說明,并改變其原有的存儲方式。1.靜態(tài)局部變量在局部變量的說明前再加上static說明符就構(gòu)成靜態(tài)局部變量。例如:staticinta,b;staticfloatarray5=1,2,3,4,5;靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:(1)靜態(tài)局部變量在函數(shù)內(nèi)定義,但不象自動變量那樣,當(dāng)調(diào)用時就存在,退出函數(shù)時就消失。靜態(tài)局部變量始終存在著,也就是說它的生存期為整個源程序。(2)靜態(tài)局部變量的生存期雖然為整個源程序,但是其作用域仍與自動變量相同,即只能在定義該變量的函數(shù)內(nèi)使用該變量。退出該函數(shù)后,
11、盡管該變量還繼續(xù)存在,但不能使用它。(3)允許對構(gòu)造類靜態(tài)局部量賦初值。若未賦以初值,則由系統(tǒng)自動賦以0值。(4)對基本類型的靜態(tài)局部變量若在說明時未賦以初值,則系統(tǒng)自動賦予0值。而對自動變量不賦初值,則其值是不定的。根據(jù)靜態(tài)局部變量的特點,可以看出它是一種生存期為整個源程序的量。雖然離開定義它的函數(shù)后不能使用,但如再次調(diào)用定義它的函數(shù)時,它又可繼續(xù)使用,而且保存了前次被調(diào)用后留下的值。因此,當(dāng)多次調(diào)用一個函數(shù)且要求在調(diào)用之間保留某些變量的值時,可考慮采用靜態(tài)局部變量。雖然用全局變量也可以達(dá)到上述目的,但全局變量有時會造成意外的副作用,因此仍以采用局部靜態(tài)變量為宜。給讀者一個簡單直白的例子(區(qū)
12、別靜態(tài)局部變量和動態(tài)局部變量):*intfun(intn)staticintf=1;/*請注意這行的修改*/這是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;/*請注意這行的修改*/結(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)存儲方
13、式,靜態(tài)全局變量當(dāng)然也是靜態(tài)存儲方式。這兩者在存儲方式上并無不同。這兩者的區(qū)別雖在于非靜態(tài)全局變量的作用域是整個源程序,當(dāng)一個源程序由多個源文件組成時,非靜態(tài)的全局變量在各個源文件中都是有效的。而靜態(tài)全局變量則限制了其作用域,即只在定義該變量的源文件內(nèi)有效,在同一源程序的其它源文件中不能使用它。由于靜態(tài)全局變量的作用域局限于一個源文件內(nèi),只能為該源文件內(nèi)的函數(shù)公用,因此可以避免在其它源文件中引起錯誤。從以上分析可以看出,把局部變量改變?yōu)殪o態(tài)變量后是改變了它的存儲方式即改變了它的生存期。把全局變量改變?yōu)殪o態(tài)變量后是改變了它的作用域,限制了它的使用范圍。因此static這個說明符在不同的地方所起的
14、作用是不同的。應(yīng)予以注意。靜態(tài)變量:除范圍之外,變量還有存活期,在這一期間變量能夠保持它們的值。在應(yīng)用程序的存活期內(nèi)一直保持模塊級變量和公用變量的值。但是,對于Dim聲明的局部變量以及聲明局部變量的過程,僅當(dāng)過程在執(zhí)行時這些局部變量才存在。通常,當(dāng)一個過程執(zhí)行完畢,它的局部變量的值就已經(jīng)不存在,而且變量所占據(jù)的內(nèi)存也被釋放。當(dāng)下一次執(zhí)行該過程時,它的所有局部變量將重新初始化。但可將局部變量定義成靜態(tài)的,從而保留變量的值。在過程內(nèi)部用Static關(guān)鍵字聲明一個或多個變量,其用法和Dim語句完全一樣:1.動態(tài)存儲方式與靜態(tài)存儲方式的定義1)所謂靜態(tài)存儲方式是指在程序編譯期間分配固定的存儲空間的方式
15、;2)所謂動態(tài)存儲方式是指在程序運(yùn)行期間根據(jù)需要進(jìn)行動態(tài)的分配存儲空間的方式。2.內(nèi)存中用戶存儲空間的分配情況(分為三部分)1)程序區(qū):存放程序語句2)靜態(tài)存儲區(qū):存放全局變量,在程序開始執(zhí)行時給全局變量分配存儲區(qū),程序執(zhí)行完畢就釋放。3)動態(tài)存儲區(qū):存放以下數(shù)據(jù):函數(shù)形式參數(shù)。在調(diào)用函數(shù)時給形參分配存儲空間;自動變量(未加static聲明的局部變量);函數(shù)調(diào)用時的現(xiàn)場保護(hù)和返回地址等。棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變量的存儲區(qū)。里面的變量通常是局部變量、函數(shù)參數(shù)等。堆,就是那些由new分配的內(nèi)存塊,他們的釋放編譯器不去管,由我們的應(yīng)用程序去控制,一般一個new
16、就要對應(yīng)一個delete。如果程序員沒有釋放掉,那么在程序結(jié)束后,操作系統(tǒng)會自動回收。類變量、實例變量、局部變量類變量是類中獨立于方法之外的變量,用static修飾。實例變量也是類中獨立于方法之外的變量,不過沒有static修飾。局部變量是類的方法中的變量??聪旅娴膫未a說明:publicclassVariablestaticintallClicks=0;/類變量Stringstr=helloworld;/實例變量publicvoidmethod()inti=0;/局部變量實例變量也稱為:“域”,“成員變量”,在實體類或數(shù)據(jù)類中被稱為“屬性”或“字段”。當(dāng)實例變量可以改變時,被稱為對象的狀態(tài)。
17、final用于常量的聲明,規(guī)范要求常量的變量名是大寫的。statci在java里面用于對類方法和屬性進(jìn)行修飾,其作用是什么呢?有兩種情況是non-static無法做到的,這時你就要使用statice。第一種:你希望不論產(chǎn)生了多少個對象,或不存在任何對象的情形下,那些特定數(shù)據(jù)的存儲空間都只有一份;第二種:你希望某個函數(shù)不要和classobject綁在一起。即使沒有產(chǎn)生任何object,外界還是可以調(diào)用其static函數(shù),或是取用其staticdata。Java中關(guān)于類變量和實例變量問:實例方法可直接調(diào)用本類的類方法嗎?先一一分析一下這幾個東東:實例方法,實例變量,類方法,類變量。實例變量(ins
18、tancevariable):或叫實例域、實例字段(instancefield),或叫成員變量(membervariable)。實例的變量,每個實例的變量可能不同。實例方法(instancemethod):或叫成員方法(membermethod)。供實例用的方法,必須要先有實例,才能通過此實例調(diào)用實例方法。類變量(classvariable):或叫靜態(tài)域、靜態(tài)字段(staticfield),或叫靜態(tài)變量(staticvariable)。出現(xiàn)在這樣的情況下:一個類的所有實例需要一個公有的屬性,比如,一,統(tǒng)計實例個數(shù);二,常量。類變量與類直接關(guān)聯(lián)在一起。內(nèi)存當(dāng)中只有一個地方存放這個變量。任何實例都
19、可以修改它的值(前提是它沒有被final修飾符修飾,不然就是常量),但是,訪問類變量并不需要實例,用類就可以操作了。類方法(classmethod):跟類變量的基本特點一樣。供類用的方法,可以沒有實例,直接通過類來調(diào)用類方法。從形式上看,類變量和類方法,比一般的變量和方法多了一個static修飾符。因為這個原因,類變量和類方法也被叫做靜態(tài)變量和靜態(tài)方法。它們的使用方法:實例方法可以直接訪問實例變量,調(diào)用實例方法;實例方法可以直接訪問類變量,調(diào)用類方法。但不推薦這么做,原因是不清晰,容易把類變量誤認(rèn)為是實例變量,把類方法誤認(rèn)為是實例方法(借助IDE,它會給出警告信息。);類方法可以直接調(diào)用類變量
20、和類方法;類方法不能直接調(diào)用實例變量和實例方法;類方法里面不能使用“this”關(guān)鍵字,因為沒有實例存在,“this”不知道引用哪個實例。程序代碼: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等.壓縮文件請下載最新的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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度農(nóng)貿(mào)場農(nóng)產(chǎn)品質(zhì)量檢測中心建設(shè)合同4篇
- 2025年金融衍生品交易總合同2篇
- 2025年度牛只運(yùn)輸車輛GPS定位與實時監(jiān)控服務(wù)合同4篇
- 2025版人工智能語音助手定制開發(fā)合同4篇
- 房屋出租委托代理合同(2篇)
- 2025年度學(xué)校教室窗簾更換項目承包合同4篇
- 二零二五版人工智能教育平臺合作合并合同2篇
- 2025年度物流倉儲設(shè)施承包招商合同范本4篇
- 二零二五版南山磚廠產(chǎn)品認(rèn)證與質(zhì)量檢測服務(wù)合同2篇
- 二零二五版精神衛(wèi)生中心心理治療師專業(yè)合同3篇
- 2024版塑料購銷合同范本買賣
- JJF 2184-2025電子計價秤型式評價大綱(試行)
- GB/T 44890-2024行政許可工作規(guī)范
- 2024年安徽省中考數(shù)學(xué)試卷含答案
- 2025屆山東省德州市物理高三第一學(xué)期期末調(diào)研模擬試題含解析
- 2024年滬教版一年級上學(xué)期語文期末復(fù)習(xí)習(xí)題
- 兩人退股協(xié)議書范文合伙人簽字
- 2024版【人教精通版】小學(xué)英語六年級下冊全冊教案
- 汽車噴漆勞務(wù)外包合同范本
- 微項目 探討如何利用工業(yè)廢氣中的二氧化碳合成甲醇-2025年高考化學(xué)選擇性必修第一冊(魯科版)
- 2024年重慶南開(融僑)中學(xué)中考三模英語試題含答案
評論
0/150
提交評論