




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、MyEclipse和Java學(xué)習(xí)中的問(wèn)題集錦1、在MyEclipse環(huán)境中如何運(yùn)行帶有main()方法的class?2、字符型和字符串型:字符型:用單引號(hào)引起來(lái)的單個(gè)(個(gè))字符;字符串型:用雙引號(hào)引起來(lái)的個(gè)或多個(gè)字符;轉(zhuǎn)義字符:Java還允許使用一種特殊形式的字符常量值來(lái)表示一些難以用一般字符來(lái)表示的字符,這種特殊形式的字符是以一個(gè)“”開(kāi)頭的字符序列,稱為轉(zhuǎn)義字符。1.八進(jìn)制轉(zhuǎn)義序列:+1到3位5數(shù)字;范圍'000''377'0:空字符2.Unicode轉(zhuǎn)義字符:u+四個(gè)十六進(jìn)制數(shù)字;065535u0000:空字符3.特殊字符:就3個(gè)":雙引號(hào)'
2、;:?jiǎn)我?hào):反斜線4.控制字符:5個(gè)'單引號(hào)字符反斜杠字符r回車(chē)n換行f走紙換頁(yè)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問(wèn)號(hào)的轉(zhuǎn)義:?=>u003F反斜杠的轉(zhuǎn)義:=>u005C3、上溢、下溢問(wèn)題:、變量的作用域:變量的作用域變量的定義不但包括變量名
3、和變量類型,同時(shí)還包括它的作用域,變量的作用域指明可以訪問(wèn)該變量的程序代碼的范圍。按作用域來(lái)分,變量可分為以下幾種:局部變量、成員變量、方法參數(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é)中向大家
4、作進(jìn)一步介紹。方法參數(shù)用于將方法外的數(shù)據(jù)傳遞給方法,其作用域就是方法的方法體。關(guān)于方法參數(shù)的概念將在其它章節(jié)中向大家作進(jìn)一步介紹。異常處理參數(shù)是將數(shù)據(jù)傳遞給異常處理代碼,其作用域是異常處理部分。關(guān)于異常處理參數(shù)的概念將在其它章節(jié)中向大家作進(jìn)一步介紹。成員變量和局部變量有什么區(qū)別?答:class Aint a;/成員變量public static void main(String args)int b;/局部變量類體由2部分構(gòu)成: 一部分是變量的定義; 一部分是方法的定義(一個(gè)類中可以有多個(gè)方法) 。在變量定義部分定義的變量叫做類的成員變量,成員變量在整個(gè)類中都有效。(全局變量應(yīng)該是成員變量的俗
5、稱) 。在方法體中定義的變量叫做局部變量,局部變量只在定義它的方法中有效。成員變量又分為實(shí)例變量和類變量(static靜態(tài)變量)。class Onefloat x; /x為實(shí)例變量static int y; /只要有關(guān)鍵字static,y為類變量1.成員變量可以被public,protect,private,static等修飾符修飾,而局部變量不能被控制修飾符及static修飾;兩者都可以定義成final型;2.成員變量存儲(chǔ)在堆,局部變量存儲(chǔ)在棧;3.存在時(shí)間不同;4.成員變量有默認(rèn)值,(被final修飾且沒(méi)有static的必須顯式賦值),局部變量不會(huì)自動(dòng)賦值;先看下面兩段程序:程序一:pub
6、lic class Variableint i;void test() int j=8; if(j=i) System.out.println("相等"); else System.out.println("不相等");public static void main(String args) Variable v=new Variable(); v.test();程
7、序二:public class Variable void test() int i; int j=8; if(j=i) System.out.println("相等"); else System.out.println("不相等");public static void main(String args) Variable v=new V
8、ariable(); v.test();第一個(gè)程序很正常,編譯時(shí)不會(huì)出錯(cuò)。第二個(gè)程序編譯時(shí)會(huì)提示如下錯(cuò)誤:D:Programjavatest>javac Variable.javaVariable.java:9: 可能尚未初始化變量 i if(j=i)
9、60; 1 錯(cuò)誤:之所以會(huì)出現(xiàn)這樣的錯(cuò)誤是因?yàn)椋撼蓡T變量有默認(rèn)值,(被final修飾且沒(méi)有static的必須顯式賦值),局部變量不會(huì)自動(dòng)賦值。類體分為兩部分。變量定義部分所定義的變量被稱為類的成員變量,在方法體中定義的變量和方法的參數(shù)都被稱為局部變量。java中成員變量和局部變量的區(qū)別:1.成員變量可以被public,protect,private,static等修飾符修飾,而局部變量不能被控制修飾符及static修飾;兩者都可以定義成final型。2.成員變量存儲(chǔ)在堆,局部變量存儲(chǔ)在棧
10、。3.存在時(shí)間不同。4.成員變量有默認(rèn)值,(被final修飾且沒(méi)有static的必須顯式賦值),局部變量不會(huì)自動(dòng)賦值。顧名思意:什么是局部,方法內(nèi)部,塊內(nèi)部都是局部,執(zhí)行指令退出那個(gè)局部,局部變量自動(dòng)清除。比如方法中,不用說(shuō)塊中int i=0; /這是一個(gè)局部變量,它的作用范圍就在其中成員變量就會(huì)涉及到誰(shuí)的成員,類的成員?實(shí)例的成員?class Aint i=0; /實(shí)例的成員static j=1;/類的成員static 的差別,是否依賴于實(shí)例而存在成員變量:作為類的成員而存在,直接存在于類中。局部變量:作為方法或語(yǔ)句塊的成員而存在,存在于方法的參數(shù)列表和方法定義中。局部變量在使用前必須被程序
11、員主動(dòng)的初始化,和此形成對(duì)比,系統(tǒng)中的成員變量則會(huì)被系統(tǒng)提供一個(gè)默認(rèn)的初始值。所以在語(yǔ)法上,類的成員變量能夠定義后直接使用,而局部變量在定義后先要賦初值,然后才能使用。所有類的成員變量可以通過(guò)this來(lái)引用。成員變量又分成倆中類型:實(shí)例變量和靜態(tài)變量。靜態(tài)變量在定義時(shí)要使用static關(guān)鍵字。靜態(tài)變量的類型說(shuō)明符是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定義它為靜
12、態(tài)自動(dòng)變量,或稱靜態(tài)局部變量,從而成為靜態(tài)存儲(chǔ)方式。由此看來(lái),一個(gè)變量可由static進(jìn)行再說(shuō)明,并改變其原有的存儲(chǔ)方式。1. 靜態(tài)局部變量在局部變量的說(shuō)明前再加上static說(shuō)明符就構(gòu)成靜態(tài)局部變量。例如:static int a,b;static float array5=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)局部變量始終存在著,也就是說(shuō)它的生存期為整個(gè)源程序。(2)靜態(tài)局部變量的生存期雖然為整個(gè)源程序,但是其作用域仍與自動(dòng)變量相同,即只能在定義該變量的函數(shù)內(nèi)使用該變量。
13、退出該函數(shù)后, 盡管該變量還繼續(xù)存在,但不能使用它。(3)允許對(duì)構(gòu)造類靜態(tài)局部量賦初值。若未賦以初值,則由系統(tǒng)自動(dòng)賦以0值。(4)對(duì)基本類型的靜態(tài)局部變量若在說(shuō)明時(shí)未賦以初值,則系統(tǒng)自動(dòng)賦予0值。而對(duì)自動(dòng)變量不賦初值,則其值是不定的。 根據(jù)靜態(tài)局部變量的特點(diǎn),可以看出它是一種生存期為整個(gè)源程序的量。雖然離開(kāi)定義它的函數(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è)
14、簡(jiǎn)單直白的例子(區(qū)別靜態(tài)局部變量和動(dòng)態(tài)局部變量):* int fun(int n)static int f=1; /*請(qǐng)注意這行的修改*/ 這是 static 結(jié)果: f=f*n;return(f);main()int i;for(i=1;i<=5;i+)printf("%d!=%dn",i,fun(i);* int fun(int n)int f=1; /*請(qǐng)注意這行的修改*/ 結(jié)果是:這是auto 的結(jié)果f=f*n;return(f);main()int i;for(i=1;i<=5;i+)printf("%d!=%dn",i,fun(i
15、); 2.靜態(tài)全局變量:全局變量(外部變量)的說(shuō)明之前再冠以static 就構(gòu)成了靜態(tài)的全局變量。全局變量本身就是靜態(tài)存儲(chǔ)方式, 靜態(tài)全局變量當(dāng)然也是靜態(tài)存儲(chǔ)方式。這兩者在存儲(chǔ)方式上并無(wú)不同。這兩者的區(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ǔ)方式
16、即改變了它的生存期。把全局變量改變?yōu)殪o態(tài)變量后是改變了它的作用域,限制了它的使用范圍。因此static 這個(gè)說(shuō)明符在不同的地方所起的作用是不同的。應(yīng)予以注意。靜態(tài)變量:除范圍之外,變量還有存活期,在這一期間變量能夠保持它們的值。在應(yīng)用程序的存活期內(nèi)一直保持模塊級(jí)變量和公用變量的值。但是,對(duì)于 Dim 聲明的局部變量以及聲明局部變量的過(guò)程,僅當(dāng)過(guò)程在執(zhí)行時(shí)這些局部變量才存在。通常,當(dāng)一個(gè)過(guò)程執(zhí)行完畢,它的局部變量的值就已經(jīng)不存在,而且變量所占據(jù)的內(nèi)存也被釋放。當(dāng)下一次執(zhí)行該過(guò)程時(shí),它的所有局部變量將重新初始化。但可將局部變量定義成靜態(tài)的,從而保留變量的值。在過(guò)程內(nèi)部用 Static 關(guān)鍵字聲明一
17、個(gè)或多個(gè)變量,其用法和 Dim 語(yǔ)句完全一樣:1.動(dòng)態(tài)存儲(chǔ)方式與靜態(tài)存儲(chǔ)方式的定義1)所謂靜態(tài)存儲(chǔ)方式是指在程序編譯期間分配固定的存儲(chǔ)空間的方式;2)所謂動(dòng)態(tài)存儲(chǔ)方式是指在程序運(yùn)行期間根據(jù)需要進(jìn)行動(dòng)態(tài)的分配存儲(chǔ)空間的方式。 2.內(nèi)存中用戶存儲(chǔ)空間的分配情況(分為三部分) 1)程序區(qū):存放程序語(yǔ)句2)靜態(tài)存儲(chǔ)區(qū):存放全局變量,在程序開(kāi)始執(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ù)和返回地址等。 棧,就是那
18、些由編譯器在需要的時(shí)候分配,在不需要的時(shí)候自動(dòng)清楚的變量的存儲(chǔ)區(qū)。里面的變量通常是局部變量、函數(shù)參數(shù)等。堆,就是那些由new分配的內(nèi)存塊,他們的釋放編譯器不去管,由我們的應(yīng)用程序去控制,一般一個(gè)new就要對(duì)應(yīng)一個(gè)delete。如果程序員沒(méi)有釋放掉,那么在程序結(jié)束后,操作系統(tǒng)會(huì)自動(dòng)回收。類變量、實(shí)例變量、局部變量類變量是類中獨(dú)立于方法之外的變量,用static 修飾。實(shí)例變量也是類中獨(dú)立于方法之外的變量,不過(guò)沒(méi)有static修飾。局部變量是類的方法中的變量??聪旅娴膫未a說(shuō)明:public class Variable static int allClicks=0;/類變量 String str
19、="hello world"/實(shí)例變量 public void method() int i =0;/局部變量 實(shí)例變量也稱為:“域”,“成員變量”,在實(shí)體類或數(shù)據(jù)類中被稱為“屬性”或“字段”。當(dāng)實(shí)例變量可以改變時(shí),被稱為對(duì)象的狀態(tài)。final用于常量的聲明,規(guī)范要求常量的變量名是大寫(xiě)的。statci 在java 里面用于對(duì)類方法和屬性進(jìn)行修飾,其作用是什么呢?有兩種情況是non-static無(wú)法做到的,這時(shí)你就要使用statice。第一種:你希望不論產(chǎn)生了多少個(gè)對(duì)象,或不存在 任何對(duì)象的情形下,那些特定數(shù)據(jù)的存儲(chǔ)空間都只有一份; 第二種:你希望某個(gè)函數(shù)不要和class o
20、bject綁在一起。即使沒(méi)有產(chǎn)生任何object,外界還是可以調(diào)用其static函數(shù),或是取用其static data。Java中關(guān)于類變量和實(shí)例變量問(wèn):實(shí)例方法可直接調(diào)用本類的類方法嗎?先一一分析一下這幾個(gè)東東:實(shí)例方法,實(shí)例變量,類方法,類變量。實(shí)例變量(instance variable):或叫實(shí)例域、實(shí)例字段(instance field),或叫成員變量(member variable)。實(shí)例的變量,每個(gè)實(shí)例的變量可能不同。實(shí)例方法(instance method):或叫成員方法(member method)。供實(shí)例用的方法,必須要先有實(shí)例,才能通過(guò)此實(shí)例調(diào)用實(shí)例方法。類變量(clas
21、s variable):或叫靜態(tài)域、靜態(tài)字段(static field),或叫靜態(tài)變量(static variable)。出現(xiàn)在這樣的情況下:一個(gè)類的所有實(shí)例需要一個(gè)公有的屬性,比如,一,統(tǒng)計(jì)實(shí)例個(gè)數(shù);二,常量。類變量與類直接關(guān)聯(lián)在一起。內(nèi)存當(dāng)中只有一個(gè)地方存放這個(gè)變量。任何實(shí)例都可以修改它的值(前提是它沒(méi)有被final修飾符修飾,不然就是常量),但是,訪問(wèn)類變量并不需要實(shí)例,用類就可以操作了。類方法(class method):跟類變量的基本特點(diǎn)一樣。供類用的方法,可以沒(méi)有實(shí)例,直接通過(guò)類來(lái)調(diào)用類方法。從形式上看,類變量和類方法,比一般的變量和方法多了一個(gè)static修飾符。因?yàn)檫@個(gè)原因,類
22、變量和類方法也被叫做靜態(tài)變量和靜態(tài)方法。它們的使用方法:實(shí)例方法可以直接訪問(wèn)實(shí)例變量,調(diào)用實(shí)例方法;實(shí)例方法可以直接訪問(wèn)類變量,調(diào)用類方法。但不推薦這么做,原因是不清晰,容易把類變量誤認(rèn)為是實(shí)例變量,把類方法誤認(rèn)為是實(shí)例方法(借助IDE,它會(huì)給出警告信息。);類方法可以直接調(diào)用類變量和類方法;類方法不能直接調(diào)用實(shí)例變量和實(shí)例方法;類方法里面不能使用“this”關(guān)鍵字,因?yàn)闆](méi)有實(shí)例存在,“this”不知道引用哪個(gè)實(shí)例。 程序代碼:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
23、32 33 34 35 public class MyClass public static String classVariable = "Class variable." public String instanceVariable = "Instance variable." public static void classMethod() System.out.println("Class method."); public void instanceMethod() System.out.println("Instance method."); public static void main(String args) /call another class method via a class method classMethod(); /call class method via class MyClass.classMethod(); /access class variable via class System.out.println(MyCla
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 腦梗死飲食護(hù)理
- 企業(yè)擔(dān)保抵押合同范本
- 商城平臺(tái)搭建合同范本
- 2025年省養(yǎng)老護(hù)理員職業(yè)技能競(jìng)賽參考試指導(dǎo)題庫(kù)(含答案)
- 修車(chē)欠款合同范本模板
- 2025至2030年中國(guó)光柵圖像處理軟件數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)絲扣式鋼塑接頭數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 系統(tǒng)集成商銷售流程管理
- 財(cái)務(wù)顧問(wèn)聘用合同-2025年度專項(xiàng)審計(jì)服務(wù)
- 二零二五年度房屋漏水應(yīng)急搶修和解協(xié)議
- 中小學(xué)領(lǐng)導(dǎo)班子包級(jí)包組包班制度
- 汽車(chē)掛靠經(jīng)營(yíng)合同協(xié)議書(shū)模板
- 基坑土方開(kāi)挖專項(xiàng)施工方案(完整版)
- 電網(wǎng)工程設(shè)備材料信息參考價(jià)(2024年第四季度)
- 2025年江蘇農(nóng)牧科技職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 數(shù)據(jù)中心運(yùn)維服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 2024-2025學(xué)年山東省濰坊市高一上冊(cè)1月期末考試數(shù)學(xué)檢測(cè)試題(附解析)
- 電玩城培訓(xùn)課件
- 2025年全年日歷-含農(nóng)歷、國(guó)家法定假日-帶周數(shù)豎版
- 2024年重大事項(xiàng)內(nèi)部會(huì)審制度(3篇)
- 2024年湖南鐵道職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析word版
評(píng)論
0/150
提交評(píng)論