版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
目課程介簡開發(fā)工開發(fā)環(huán)境配基礎(chǔ)語基礎(chǔ)數(shù)據(jù)類Java修飾Java循環(huán)控JavaStringBuffer和StringBuilderJavaJavaJavaJava流(Stream)、文件(File)和JavaJava重寫(Override)與重載JavaJavaJavaJavaJava包Java
課程介一天搞定java基本要求具有一定編程的基礎(chǔ)來快速了解java語簡java1.6中文手需與類名一致),代碼如下:publicpublicoWorldpublicstaticvoidmain(String{ o}}$$o執(zhí)行命令解析以上我們使用了兩個命令javacjavajavac命令用于將java源文件編譯為class字節(jié)碼文件,如:javacoWorld.classjava命令可以運(yùn)行class字節(jié)碼文件,如:java Java平臺的總稱。由JamesGosling和同事們共同研發(fā),并在1995年正式推出。Java分為三系JavaSE(J2SE)(Java2tformStandardEdition,java平臺標(biāo)準(zhǔn)版)JavaEE(J2EE)(Java2tform,EnterpriseEdition,java平臺企業(yè)版)JavaME(J2ME)(Java2tformMicroEdition,java平臺微型版)。本已經(jīng)更名以取消其中的數(shù)字"2":J2EE更名為JavaEE,J2SE更名為JavaSE,J2ME更名為JavaME。主要Java語言是簡單Jva語言的語法與C語言和++語言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用。另一方面,a丟棄了++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強(qiáng)制類型轉(zhuǎn)換。特別地,Java語言不使用指針,而是。并提供了自動的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂。Java語言是面向Jva語言全面支持動態(tài)綁定,而C+Java語言是分布Jvae應(yīng)用的開發(fā),在基本的Java編程接口(a),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括U、Lkeve。Jav(方法激活)機(jī)制也是開發(fā)分布式應(yīng)用的重要。Java語言是健壯Jva的類型機(jī)制、異常處理、的自動收集等是Java。對指針的丟棄是JavaJav的安全檢查機(jī)制使得JavaJava語言是安全Jva通被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一個安全機(jī)制以防代碼的攻了Java語言具有的許多安全特性以外,Java安全防范機(jī)制(類),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機(jī)制(類SecuJav應(yīng)用設(shè)置安全哨Java語言是體系結(jié)構(gòu)中立Java程序(后綴為java的文件)在Java平臺上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格c的文件),然后可以在實(shí)現(xiàn)這個JavaJava語言是可移這種可移植性來源于體系結(jié)構(gòu)中立性,另外,JavaJava系統(tǒng)本身也具有很強(qiáng)的可移植性,JavaJavJvaIJava語言是解釋如前所述,Java程序在Java平臺上被編譯為字節(jié)碼格式,然后可以在實(shí)現(xiàn)這個a平臺的任何系統(tǒng)中運(yùn)行。在運(yùn)行時,Jva平臺中的Jva解釋器對這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過程中需要的類在聯(lián)接階段被載入到運(yùn)行環(huán)境中。Java是高性能與那些解釋型的高級語言相比,Java的確是高性能的。事實(shí)上,Java速JJstn)編譯器技術(shù)的發(fā)展越來越接近于C+。Java語言是多線JavaTh建。通常有兩種方法來創(chuàng)建線程:其一,使用型構(gòu)為Th一個實(shí)現(xiàn)了Th類派生出子類并方法,使用該子類創(chuàng)建的對象即為線程。值得注意的是Th接口,因此,任何一個線程均有它的方法中包含了線程所要運(yùn)行的代碼。線程的活動由一組方法來控制。JavasynchdJava語言是動態(tài)Jva語言的設(shè)計目標(biāo)之一是適應(yīng)于動態(tài)變化的環(huán)境。Java程序需要的類能夠動態(tài)地被載入到運(yùn)行環(huán)境,也可以通過網(wǎng)絡(luò)來載入所需要的類。這也有利于軟件的升級。Java開發(fā)工Linux系統(tǒng)或者Windows95/98/2000/XP,WIN7/8系統(tǒng)JavaJDK7(1)首先我們需要java開發(fā)工具包JDK, 在頁面中你需要選擇接受,并根據(jù)自己的系統(tǒng)選擇對應(yīng)的版本,本文Window64位系統(tǒng)為例J的安裝根據(jù)提示進(jìn)行,還有安裝J的時候也會安裝J安裝JDK,安裝過程中可以自定義安 等信息,例如我們選擇安 C:\ProgramFiles(x86)\Java\jdk1.8.0_91(2)配置環(huán)境變安裝完成后,右擊"我的電腦",點(diǎn)擊"屬性",選擇"高級系統(tǒng)設(shè)置選擇"高級"選項(xiàng)卡,點(diǎn)擊"環(huán)境變量然后就會出現(xiàn)如下圖所畫面系統(tǒng)變量J_L若已存在則點(diǎn)擊編輯,不存在則點(diǎn)擊新建。變量設(shè)置參數(shù)如下:變量變量變量變量JAVA_HOMEPATHCLASSPATH后,你可以啟動Eclipse來編寫代碼,它會自動完成java環(huán)境的配置。注意:如果使用1以上版本的JCL環(huán)境變量,也可以正常編譯和運(yùn)行Java測試JDK是否安裝正所謂工欲善其事必先利其器,我們在開發(fā)很多,本文為大家推薦以下下幾款開發(fā)工具:Eclipse(推薦):另一個免費(fèi)開源的javaIDE,地址orgEclipseIDEforJavaDevelopers:載地址:基礎(chǔ)語Jav類:類是一個模板,它描述一類對象的行為下面看一個簡單的Java程序,它將打印字符 opublicpublicoWorld/*第一個Java*它將打印字符 opublicstaticvoidmain(String oWorld"o}}編寫Java程序時,應(yīng)注意以下幾大小寫敏感:Jav是大小寫敏感的,這就意味著標(biāo)識符與FstJvas。源文件名:源文件名必須和類名相同。當(dāng)保存文件的時候,你應(yīng)該使用類名作為文件名保存(切記Java是大小寫敏感的),文件名的后綴為a。(件名和類名不相同則會導(dǎo)致編譯錯誤)。主方法:所有的Java程序由publicstaticvoidmain(String[]args)方法開始Java重本節(jié)我們重點(diǎn)研究對象和類的概念java中的對軟件對象也有狀態(tài)和行為。軟件對象的狀態(tài)就是屬性,行為通過方法體件開,方作對部狀改變象的相用通過來完java中的類可以看成是創(chuàng)建Java對象的模板通過下面一個簡單的類來理解下Java中類的定義publicclasspublicclassDog{Stringbreed;intage;Stringvoid}void}void}}一個類可以包含以下類型變量和初始化都是在方法中,方法結(jié)束后,變量就會自動銷毀。塊。類變量:類變量也在類中,方法體之外,但必須為static類型每個類都有構(gòu)造方法。如果沒有顯式地為類定義構(gòu)造方法,Java編譯器將會為該類提供一個默認(rèn)構(gòu)造方法。在創(chuàng)建一個對象的時候,至少要調(diào)用一個構(gòu)造方法。構(gòu)造方法的名稱必須與類同名,一個類可以有多個構(gòu)造方法。下面是一個構(gòu)造方法示例publicclasspublicclassPuppy{public}publicPuppy(String}}創(chuàng)建對對象是根據(jù)類創(chuàng)建的。在Java:一個對象,包括對象名稱和對象類型。初始化:使用new創(chuàng)建對象時,會調(diào)用構(gòu)造方法初始化對象publicpublicclasspublicPuppy(StringSystem.out.println("PassedNameisname}publicstaticvoidmain(String下面的語句將創(chuàng)建一個PuppyPuppymyPuppy=newPuppy("tommy"}}編譯并運(yùn)行上面的程序,會打印出下面的結(jié)果PassedPassedNameis實(shí)下面的例子展示如何實(shí)例變量和調(diào)用成員方法publicclasspublicclassPuppy{intpublicPuppy(String//這個構(gòu)造器僅有一個參數(shù):nameSystem.out.println("PassedNameisname}publicvoidsetAge(intage){puppyAge=age;}publicintgetAge(System.out.println("Puppy'sageis:"+puppyAge);returnpuppyAge;}publicstaticvoidmain(String/*創(chuàng)建對象PuppymyPuppy=newPuppy("tommy"/*通過方法來設(shè)定age*/myPuppy.setAge(2);/*調(diào)用另一個方法獲取age*/myPuppy.getAge(); 成員變量System.out.println("VariableValue:"+myPuppy.puppyAge;}}編譯并運(yùn)行上面的程序,產(chǎn)生如下結(jié)果PassedPassedNameis:tommyPuppy'sageis:2VariableValue:2源文件規(guī)節(jié)的部分,源文的。當(dāng)個源中定個類,并且還有k語句時,要特別注意這些規(guī)則。一個源文件可以有多個非public源文件的名稱應(yīng)該和ccEEy。如果一個類定義在某個包中,那么package語句應(yīng)該在源文件的首行如果源文件包含語句,那么應(yīng)該放在cc語句應(yīng)該在源文件中最前面。語句和c語句對源文件中定義的所有類都有效。在同一源文件中,不能給不同的類不同的包。Java包主要用來對類和接口進(jìn)行分類。當(dāng)開發(fā)JavImportJavaJava語句就是用來提供一個合理的路徑,使得編譯器可以找到某個類。例如,下面令行將會命令編譯器載入v_svimportimport一個簡單的例在該例子中,我們創(chuàng)建兩個類:Employee和EmployeeTest。首先打開文本編輯器,把下面的代碼粘貼進(jìn)去。注意將文件保存為Employee.java。Employee類有四個成員變量:name、age、designation和salary。該類顯式了一個構(gòu)造方法,該importimportjava.io.*;publicclassEmployee{intage;doublesalary;EmployeepublicEmployee(Stringname){=name;}設(shè)置agepublicvoidempAge(intempAge){age=empAge;}/*設(shè)置designation的值publicvoidempDesignation(StringempDesig){designation=empDesig;}/*設(shè)置salary的值publicvoidempSalary(doubleempSalary){salary=empSalary;}/**/publicvoidprintEmployee(){System.out.println("Name:"+name);System.out.println("Age:"+age);System.out.println("Designation:"+designation);System.out.println("Salary:"+salary);}}程序都是從方法開始執(zhí)行。為了能運(yùn)行這個程序,必須包含一個實(shí)例對象。類,該類實(shí)例化y類的實(shí)例,并調(diào)用方法設(shè)置變量的值。將下面的代碼保存在Eyvimportimportpublicclasspublicstaticvoidmain(String/*EmployeeempOne=newEmployee("JamesSmith");EmployeeempTwo=newEmployee("MaryAnne");empOne.empDesignation("SeniorSoftwareEngineer");}}編譯這兩個文件并且運(yùn)行EmployeeTest類,可以看到如下結(jié)果$$javac$vi$javac$javaEmployeeTestName:JamesSmithDesignation:SeniorSoftwareEngineer變量就是申請內(nèi)存來值。也就是說,當(dāng)創(chuàng)建變量的時候,需要在內(nèi)存中申請空間。內(nèi)存管理系統(tǒng)根據(jù)變量的類型為變量分配空間,分配的空間只能用來該類型數(shù)據(jù)。因此,通過定義不同類型的變量,可以在內(nèi)存中整數(shù)、小數(shù)或者字符。a的兩大數(shù)據(jù)類型:數(shù)據(jù)類v(四個整數(shù)型,兩個浮點(diǎn)型)字符類型,還有一種布爾型。12byte類型用在大型數(shù)組約空間,主要代替整數(shù),因?yàn)閎yte變量占用的空間只例子:bytea100,byteb50。o數(shù)據(jù)類型是3o數(shù)據(jù)類型也可以像那樣節(jié)省空間。一個sho型變量所占空間的二分之一;默認(rèn)值是例子:shorts1000,shortr20000。最大值是2,147,483,647(2^311);默認(rèn)值是例子:inta100000intb200000。9232064726最大值是 -longa100000L,Longb200000L。默認(rèn)值是例子:floatf1=234.5f。例子:doubled1123.4。例子:booleanonetrue。例子:charletter=‘A’。實(shí)例對于數(shù)值類型的基本類型的取值范圍,我們無需強(qiáng)制去,因?yàn)樗鼈兊闹刀家裵ublicpublicclassPrimitiveTypeTestpublicstaticvoidmain(String[]args)//System.out.println("基本類型:byte二進(jìn)制位數(shù):System.out.println("最小值:Byte.MIN_VALUE=Byte.MIN_V
System.out.println("最大值:Byte.MAX_VALUE=Byte.MAX_V
//System.out.println("基本類型:short二進(jìn)制位數(shù):System.out.println("最大值:Short.MAX_VALUE=Short.MAX
//System.out.println("基本類型:int二進(jìn)制位數(shù):System.out.println("最小值:Integer.MIN_VALUE=Integer
//System.out.println("基本類型:long二進(jìn)制位數(shù):System.out.println("最大值:Long.MAX_VALUE=Long.MAX_V
//System.out.println("基本類型:float二進(jìn)制位數(shù):System.out.println("最大值:Float.MAX_VALUE=Float.MAX
//System.out.println("基本類型:double二進(jìn)制位數(shù):System.out.println("最小值:Double.MIN_VALUE=Double.MSystem.out.println("最大值:Double.MAX_VALUE=Double.M}
//System.out.println("基本類型:char二進(jìn)制位數(shù)://+(int)//+(int)}編譯以上代碼輸出結(jié)果如下所示87基本類型:char二進(jìn)制位數(shù):16字"表示E之前的數(shù)字要乘以10的多少次方。比如3.14E3就是3.14×103=3140,3.14E-33.14x10-30.00314實(shí)際上,JAVA中還存在另外一種基本類型void,它也有對應(yīng)的包裝java.lang.Void,不過我們無法直接對它們進(jìn)行操作在Java中,類型的變量非常類似于C/C++的指針。類型指向一個對象,指向?qū)ο蟮淖兞渴亲兞俊_@些變量在時被指定為一個特定的類型,比如Employee、Pubby等。變量一旦后,類型就不能被改變了。對象、數(shù)組都是數(shù)據(jù)類型。所有類型的默認(rèn)值都是null一個變量可以用來與任何與之兼容的類型。例子:Sitesite=newSite("Runoob")。常量在程序運(yùn)行時,不會被修改的量在Java中使用final關(guān)鍵字來修飾常量,方式和變量類似finalfinaldoublePI= bytebytea=68;chara=sho都可以用十進(jìn)制、進(jìn)制的方式來表示。當(dāng)使用常量的時候,前綴intintdecimal=100;intoctal=0144;inthexa=0x64;和其他語言一樣,Java""o"\"Thisisin字符串常量和字符常量都可以包含任何Unicode字符。例如charchara='\u0001';Stringa="\u0001";java語言支持一些特殊的轉(zhuǎn)義字符序列Java變局部變量在方法、構(gòu)造方法或者語句塊中修飾符不能用于局部變量局部變量只在它的方法、構(gòu)造方法或者語句塊中可見;變量默認(rèn)所以變量被后須經(jīng)始化可以。1在以下實(shí)例中是一個局部變量。定義在方法中,它的作用域就限制在這個方法中。packagepackagepublicTest{publicvoidintage=0;age=age+7; 是:"+}publicstaticvoidmain(Stringargs[]){Testtest=newTest();}}以上實(shí)例編譯運(yùn)行結(jié)果如下小狗小狗 是:實(shí)例在下面的例子中age變量沒有初始化,所以在編譯時會出錯publicpublicTest{publicvoidintage=age+ 是:"+}publicstaticvoidmain(Stringargs[]){Testtest=newTest();}}以上實(shí)例編譯運(yùn)行結(jié)果如下Test.java:Test.java:4:variablenumbermightnothavebeeninitializedage=age+7;^1實(shí)例變量在一個類中,但在方法、構(gòu)造方法和語句塊之外;實(shí)例變量在對象創(chuàng)建的時候創(chuàng)建,在對象被銷毀的時變量應(yīng)該被一法、方法語句塊,外部通過這些方式獲取實(shí)例變量信息;用修飾符可以使實(shí)例變量對子類可見;實(shí)例變量具有默認(rèn)值。數(shù)值型變量的默認(rèn)值是0,布爾型變量的默認(rèn)值是ae用類型變量的默認(rèn)值是l。變量的值可以在時指定,也可以在構(gòu)造方法中指變量直接變量名。靜態(tài)以及類中應(yīng)該完全Oec。importimportjava.io.*;publicclassEmployee{publicStringprivatedoublepublicEmployee(StringempName){name=}publicvoidsetSalary(doubleempSal){salary=}publicprintEmp(){System.out.println("name:+name);System.out.println("salary:"+}publicstaticvoidmain(Stringargs[]){EmployeeempOne=new}以上實(shí)例編譯運(yùn)行結(jié)果如下name:name:Ransikasalary類變量也稱為靜態(tài)變量,在類中以stac字但必方法方法句無論一個類創(chuàng)建了多少個對象,類只擁有類變量的一靜態(tài)變量除了被為常量外很少使用。常量是指為public/private,finalstatic類型的變量。常量初始化后不可改變靜態(tài)變量在靜態(tài)區(qū)。經(jīng)常被為常量,很少單獨(dú)使用sttc。靜態(tài)變量在程序開始時創(chuàng)建,在程序結(jié)束時銷毀。與實(shí)例變量具有相似的可見性。但為了對類的使用者可見,大多數(shù)靜態(tài)變量public類型默認(rèn)值和實(shí)例變量相似。數(shù)值型變量默認(rèn)值是0,布爾型默認(rèn)值是false,類型默認(rèn)值是null。變量的值可以在的時候指定,也可以在構(gòu)造方法中指定。此靜態(tài)變量可以通過:ClassName.VariableName的方式變量不是public和final類型,其命名方式與實(shí)例變量以及局部變量名方式一致實(shí)例importimportjava.io.*;publicclassEmployee{privatestaticdoublepublicstaticfinalStringDEPARTMENT"開發(fā)人員";publicstaticvoidmain(Stringargs[]){salary=}}以上實(shí)例編譯運(yùn)行結(jié)果如下注意:如果其他類想要該變量,可以這樣:Employee.DEPARTMENT修飾Java非修飾publicpublicclassclassName//}privatebooleanstaticfinaldoubleweeks=9.5;protectedstaticfinalintBOXWIDTH=42;publicstaticvoidmain(String[]arguments)}Jva中可以使用控制符來保護(hù)對類、變量、方法和構(gòu)造方法的。Java支種不同的權(quán)限。默認(rèn)的,也稱為default,在同一包內(nèi)可見,不使用任何修飾符。私有的,以private修飾符指定,在同一類內(nèi)可見。共有的,以public修飾符指定,對所有類可見默認(rèn)修飾符-不使用任何關(guān)鍵默認(rèn)修飾符的和方對同包內(nèi)是可。接的變量都隱式為cstac而接口里的方法默認(rèn)情況下權(quán)限為。實(shí)例 如下例所示,變量和方法的可以不使用任何修飾符StringStringversion="1.5.1";booleanprocessOrder(){return}私有修飾符-私有修飾符是最嚴(yán)格的級別,所以被為vae方法只能被所屬類,并且類和接口不能為vat。為私有類型的變量只能通過類中公共的getter方法被外部類。publicpublicclass{privateStringformat;publicStringgetFormat(){return}publicvoidsetFormat(String{this.format=}}Lo變量為私有變量,所以其他類不能直接得到和設(shè)置該變量的值。為了使其他類能夠操作該變量,定義了兩個c(返回format的值)和setFormat(String)(設(shè)置format的值公有修飾符-被為public的類、方法、構(gòu)造方法和接口能夠被任何其他類如果幾個相互的c分布在不同的包中,則需要導(dǎo)入相應(yīng)c包。由于類的繼承性,類所有的公有方法和變量都能被其子類繼承。以下函數(shù)使用了公有控制publicpublicstaticvoidmain(String[]arguments)//}Java程序的 方法必須設(shè)置成公有的,否則,Java解釋器將不能運(yùn)行該類受保護(hù)的修飾符-被為的變量、方法和構(gòu)造器能被同一個包中的任何其他類,也能夠被不同包中的子類。d修飾符不能修飾類和接口,方法和成員變量能夠?yàn)?,但是接口的成員變量和成員方法不能為d。子類能符法,能相使方法和變量。下面的父類使用了protected修飾符,子類重載了父類的openSpeaker()方法classclassyerprotectedbooleanopenSpeaker(Speakersp)}}class{booleanopenSpeaker(Speaker{}}如果把)方法為vate,那么除了dor之外的類將不能訪問該方法。如果把)為c,那么所有的類都能夠該方法。如果我們只想讓該方法對其所在類的子類可見,則將該方法為。請注意以下方法繼承的規(guī)則父類中為public的方法在子類中也必須為public父類中為的方法在子類中要么為么。不能為vat。父類中為private的方法,不能夠被繼承非修飾為了實(shí)現(xiàn)一些其他的功能,Java也提供了許多非修飾符static修飾符,用來創(chuàng)建類方法和類變量F修飾符,用來修飾類、方法和變量,修飾的類不能夠被繼承,修飾的方法不能被繼承類重新定義,修飾的變量為常量,是不可修改的。修飾符,用來創(chuàng)建抽象類和抽象方法靜態(tài)變量Sc關(guān)鍵字用來獨(dú)立于對象的靜態(tài)變量,無論一個類實(shí)例化多少對象,它的靜態(tài)變量只有一份拷貝。靜態(tài)變量也被成為類變量。局部變量不能被為c靜態(tài)方法Sc來立于的靜法。方法使用非靜變量。靜態(tài)方法從參數(shù)列表得到數(shù)據(jù),然后計算這些數(shù)據(jù)。classname.methodname的方式。如下例所示,static修飾符用來創(chuàng)建類方法publicpublicclassInstanceCounterprivatestaticintnumInstances=0;protectedstaticintgetCount(){return}privatestaticvoid{}{}publicstaticvoidmain(String[]{System.out.println("Startingwith"+InstanceCounter.getCount()+"instances");for(inti=0;i<500;++i){new}System.out.println("Created"+InstanceCounter.getCount()+"instances");}}以上實(shí)例運(yùn)行編輯結(jié)果如下StartedStartedwith0instancesCreated500instancesFinal變量F變量能被顯式地初始化并且只能初始化一次。被為的對象的不能指向不同的對象。但是對象里的數(shù)據(jù)可以被改變。也就是說的不能改變,但是里面的值可以改變。Fsta修飾符一起使用來創(chuàng)建類常量publicpublicTest{finalint=//下面 publicstaticfinalintBOXWIDTH=6;staticfinalStringTITLE="Manager";publicvoidchangeValue()value12;//將輸出一個錯誤}Final類中的Final方法可以被子類繼承,但是不能被子類修改。final方法的主要目的是防止該方法的內(nèi)容被修改。如下所示,使用final修飾符方法。publicpublicclasspublicfinalvoid}}FinalFinal類不能被繼承,沒有類能夠繼承final類的任何特性publicpublicfinalclassTest}抽象類:抽象類不能用來實(shí)例化對象,抽象類的唯一目的是為了將來對該類 Caravan{Caravan{privatedoubleprice;privateStringmodel;privateString voidgoFast()// void}抽象方被成sc。任何繼承抽象類的子類必須實(shí)現(xiàn)父類的所有抽象方法,除非該子類也是一個含若抽象,那類必須為類。類可包含抽象方法。抽象方法的以分號結(jié)尾,例如 實(shí)例 m()//}classSubClassextendsvoidm(){}}Java運(yùn)算計算機(jī)的最基本用途之一就是執(zhí)行數(shù)算,作為一門計算機(jī)語言,Jav一套豐富的運(yùn)算符來變量。我們可以把運(yùn)算符分成以下幾組:其他運(yùn)表格中的實(shí)例假設(shè)整數(shù)變量A的值為10,變量B的值為下面的簡單示例程序演示了算術(shù)運(yùn)算符。并粘貼下面的Java程序并保存Test.java文件,然后編譯并運(yùn)行這個程序{a=int=int=int=+b="++-b="+-*b="+*/a="+/%a="+%%a="+%="+="+查看d+與++d="+="+}}publicclassTestpublicstaticvoidmain(StringpublicclassTestpublicstaticvoidmain(Stringa+b=a-b=a*b=b/a=2b%a=0c%a=5====下表為Java支持的關(guān)系運(yùn)表格中的實(shí)例整數(shù)變量A的值為10,變量B的值為下面的簡單示例程序演示了關(guān)系運(yùn)算符。并粘貼下面的Java程序并保存Test.java文件,然后編譯并運(yùn)行這個程序publicpublicclassTestpublicstaticvoidmain(String{inta=10;intb=20;System.out.println("a==b="+(a==b));System.out.println("a!=b="+(a!=b));System.out.println("a>b="+(a>b));System.out.println("a<b="+(a<b));System.out.println("b>=a="+(b>=a));System.out.println("b<=a="+(b<=a)}}以上實(shí)例編譯運(yùn)行結(jié)果如下aa==b=falsea!=b=truea>b=false<b=>=a=trueb<=a=false設(shè)a=60,b=13;它們的二進(jìn)制格式表示將如下:AA=0011B=0000A&b=0000A|B=0011A^B=0011~A=1100下表列出了位運(yùn)算符的基本運(yùn)算,假設(shè)整數(shù)變量A的值為60和變量B的值為下面的簡單示例程序演示了位運(yùn)算符。并粘貼下面的Java程序并保存Test.java文件,然后編譯并運(yùn)行這個程序publicpublicclassTestpublicstaticvoidmain(String{inta=60;/*60=00111100intb=13;/*13=00001101*/intc=0;c=a& /*12=00001100System.out.println("a&b="+cc=a|/*61=00111101System.out.println("a|b="+cc=a^/*49=00110001System.out.println("a^b="+cc=/*-61=11000011System.out.println("~a="+cc=a<</*240=11110000System.out.println("a<<2="+cc=a>>/*15=1111System.out.println("a>>2="+cc=a>>>/*15=00001111System.out.println("a>>>2="+c}}以上實(shí)例編譯運(yùn)行結(jié)果如下aa&b=12a|b=61a^b=~a=-a<<2=a>>a>>>下表列出了邏輯運(yùn)算符的基本運(yùn)算,假設(shè)布爾變量A為真,變量B下面的簡單示例程序演示了邏輯運(yùn)算符。并粘貼下面的Java程序并保存Test.java文件,然后編譯并運(yùn)行這個程序publicpublicclassTestpublicstaticvoidmain(String{booleana=true;booleanb=false;System.out.println("a&&b="+(a&&b));System.out.println("a||b="+(a||b));System.out.println("!(a&&b)="+!(a&&b));}}以上實(shí)例編譯運(yùn)行結(jié)果如aa&&b=falsea||b=true!(a&&b)=下面是Java語言支持的賦值運(yùn)算符面的簡單示例程序演示了賦值運(yùn)算符。并粘貼下面的Java程序并保存Test.java文件,然后編譯并運(yùn)行這個程序publicclassTestpublicstaticvoidmain(String{inta=10;intb=20;intc=0;c=a+System.out.println("c=a+b="+c);c+=a;System.out.println("c+=a="+c);c-=a;System.out.println("c-=a="+c);c*=a;System.out.println("c*=a="+c);a=10;c=c/=aSystem.out.println("c/=a="+c);a=10;c=c%=aSystem.out.println("c%=ac<<=2;System.out.println("c<<=2c>>=2;System.out.println("c>>=2c>>=2;System.out.println("c>>=ac&=a;System.out.println("c&=2c^=a;
="+c="+c="+c="+c="+cSystem.out.println("c^=a ="+c);c|=a;System.out.println("c|= ="+c}}以上實(shí)例編譯運(yùn)行結(jié)果如下c=a+b=c+=a=ca=ca=ca=1ca=c2=c2=c2=ca=ca=ca=條件運(yùn)算符也被稱為三元運(yùn)算符。該運(yùn)算符有variablevariablex=(expression)?valueiftrue:valueifpublicclassTestpublicstaticvoidmain(Stringargs[]){inta,b;a=b=(a==1)?20:System.out.println("Valueofbis:"+b);b=(a==10)?20:30;System.out.println("Valueofbis:"+b}}以上實(shí)例編譯運(yùn)行結(jié)果如下ValueValueofbis:30Valueofbis:instanceOf該運(yùn)算符用于操作對象實(shí)例,檢查該對象是否是一個特定類型(instanceof運(yùn)算符使用格式如下((Objectreferencevariable)instanceOf(class/interface如果運(yùn)算符左側(cè)變量所指的對象,是操作符右側(cè)類或接口cse象,那么結(jié)果為真。下面是一個例子StringStringname=booleanresultnameinstanceOfString;由于name是String類型,如果被比較的對象兼容于右側(cè)類型,該運(yùn)算符仍然返回true 看下面的例子classclassVehiclepublicclassCarextendsVehicle{publicstaticvoidmain(Stringargs[]){Vehiclea=newCar();booleanresult=ainstanceofCar;System.out.println(result);}}以上實(shí)例編譯運(yùn)行結(jié)果如下當(dāng)多個運(yùn)算符出現(xiàn)在一個表達(dá)式中,誰先誰后呢?這就涉及到運(yùn)算符的優(yōu)先級別的問題。在一個多運(yùn)算符的表達(dá)式中,運(yùn)算符優(yōu)先級不同會導(dǎo)致最后得出的結(jié)果差別例如,(+3)+(+2)2,這個表達(dá)式如果按加號最優(yōu)先計算,答案就是8,如果按照乘號最優(yōu)先,答案則是。x=7+3x為乘法運(yùn)算符比加法運(yùn)算符有較高的優(yōu)先級,所以先計算3*。下表中具有最高優(yōu)先級的運(yùn)算符在的表的最上面,最低優(yōu)先級的在表的循環(huán)控 語句:表達(dá)式{}語句:新部變該變類型和數(shù)素的匹配作用域限定在循環(huán)語句塊,其值與此時數(shù)組元素的值相等。表達(dá)式:表達(dá)式是要的數(shù)組名,或者是返回值為數(shù)組的方法publicpublicclassTestpublicstaticvoidargs[]){int[]numbers={10,20,40,for(intxnumbers){System.out.print(x);}String[]names={"James","Larry","Tom","Lacy"};for(Stringname:names){System.out.print(name);}}以上實(shí)例編譯運(yùn)行結(jié)果如下JavaNumber一般地,當(dāng)需要使用數(shù)字的時候,我們通常使用內(nèi)置數(shù)據(jù)類型,如:byte、intlong、doubleintinta=5000;floatb=13.65;bytec=0x4a;所有的包裝類(Integer、Long、Byte、Double、Float、Short)都是抽象Number這種由編譯器特別支持的包裝稱為裝箱,所以當(dāng)內(nèi)置數(shù)據(jù)類型被當(dāng)作對象使用的時候,編譯器會把內(nèi)置類型裝箱為包裝類。相似的,編譯器也可以把一個對象拆箱為內(nèi)置類型。下面是一個使用Integer對象的實(shí)例publicpublicclasspublicstaticvoidmain(Stringargs[]){Integerx=5;x=x+}}以上實(shí)例編譯運(yùn)行結(jié)果如下x被賦為整型值時,由于x是一個對象,所以編譯器要對xx能進(jìn)行加運(yùn)算,所以要對x進(jìn)行拆箱。Number下面的表中列出的是Number子類實(shí)現(xiàn)的方法JavaCharacter 類用于對單個字符進(jìn)行操作Character類在對象中包裝一個基本charcharcharch=UnicodecharuniChar=char[]charArray={'a','b','c','d','e'提供了包裝類c類提供了一系列方法來字符。你可以使用Ch構(gòu)造方法創(chuàng)建c類對象,例如:CharacterCharacterch=new在某些情況下,Java編譯器會自動創(chuàng)建一個Character對象例如,將一個cha類型的參數(shù)傳遞給需要一個Ch類型參數(shù)轉(zhuǎn)換為c這種特征稱為裝箱,反過來稱原始字符'a裝箱到Character對象chCharacterch=原始字符'x用test//返回拆箱的值到'c'charc前面有反斜杠(\)當(dāng)打印語句遇到一個轉(zhuǎn)義序列時,編譯器可以正確地對其進(jìn)行解釋。以下實(shí)例轉(zhuǎn)義雙publicpublicclassTestpublicstaticvoidmain(String }}Character對于方法的完整列表,請參考的java.lang.CharacterAPI規(guī)范JavaString字符串廣泛應(yīng)用在JavaJav中字符串屬于對象,Java創(chuàng)建和操作字符串。創(chuàng)建字符串最簡單的方式如下StringStringgreeting= o在代碼中遇到字符串常量時,這里的值是"o 和其它對象一樣,可以使用關(guān)鍵字和構(gòu)造方法來創(chuàng)建Stringpublicpublicclasspublicstaticvoidmain(StringoArray={'h','e','l','l','o',oString=new oString}}以上實(shí)例編譯運(yùn)行結(jié)果如下SS對象,那它的值就無法改變?nèi)绻枰獙ψ址龊芏嘈薷模敲磻?yīng)該選擇使用Sr&r用于獲取有關(guān)對象的信息的方法稱為器方法類的一個器方法是方法,它返回字符串對象包含的字符數(shù)。下面的代碼執(zhí)行后,publicpublicclassStringDemopublicstaticvoidmain(String{Stringsite=intlen=site.length();(len}}String類提供了連接兩個字符串的方法返回string2連接string1的新字符串。也可以對字符串常量使用concat()方法,如"My"Mynameis更常用的是使用'+'操作符來連接字符 o,"+"world"+結(jié)果如下publicpublicclassStringDemopublicstaticvoidmain(String{Stringstring1= System.out.println("1、string1}}以上實(shí)例編譯運(yùn)行結(jié)果如下 我們知道輸出格式化數(shù)字可以使用printf()和format()方法。String類使用靜態(tài)format()返回一個String對象而不是PrintStream對象fo能用來創(chuàng)建可復(fù)用的格式化字符串,而不僅僅是用于一次打印輸出。如下所示:System.out.printf(System.out.printf(""%f整型變量的值為%d,字符串變量的值為""is%s",floatVar,intVar,你也可以這樣StringStringfsString.format("浮點(diǎn)型變量的的值為"%f整型變量的值為%d,字符串變量的值為""%s",floatVar,intVar,stringVar);String下面是String類支持的方法,詳細(xì),參看JavaStringAPI文檔JavaStringBuffer和StringBuilder當(dāng)對字符串進(jìn)行修改的時候,需要使用StringBuffer和StringBuilder類不同的是,e類的對象能夠被多次的修改,并且不產(chǎn)生新的未使用對象。e有速度優(yōu)勢,所以多數(shù)情況下建議使用類。然而在應(yīng)用程序要求線程安全的情況下,則必須使用publicpublicclasspublicstaticvoidmain(Stringargs[]){StringBuffersBuffer=newStringBuffer("test");sBuffer.append("StringBuffer");System.out.println(sBuffer);}}以上實(shí)例編譯運(yùn)行結(jié)果如下testtestStringStringBuffer以下是StringBuffer類支持的主要方下面的列表里的方法和String類的方Java數(shù)Java語言中提供的數(shù)組是用來固定大小的同類型元素你可以一個數(shù)組變量,如numbers[100]來代替直接100個獨(dú)立變量 本將為大家介紹Java數(shù)組的、創(chuàng)建和初始化,并給出其對應(yīng)的代碼首先必須數(shù)組變量,才能在程序中使用數(shù)組。下面是數(shù)組變量的語法dataType[]dataType[]或dataTypearrayRefVar[];注意:建議使用dataType[]arrayRefVar的風(fēng)格數(shù)組變量。dataType下面是這兩種語法的代碼示例doubledouble[]或double//Java語言使用new操作符來創(chuàng)建數(shù)組,語法如下arrayRefVararrayRefVar=new上面的語法語句做了兩件事一、使用dataType[arraySize]創(chuàng)建了一二、把新創(chuàng)建的數(shù)組的賦值給變量arrayRefVar數(shù)組變量的,和創(chuàng)建數(shù)組可以用一條語句完成,如下所示dataType[]dataType[]arrayRefVar=new另外,你還可以使用如下的方式創(chuàng)建數(shù)組dataType[]dataType[]arrayRefVar={value0,value1,...,數(shù)組的元素是通過索引的。數(shù)組索引從0開始,所以索引值從0下面的語句首先了一個數(shù)組變量Ls,接著創(chuàng)建了一個包含元素的數(shù)組,并且把它的賦值給LspublicpublicclassTestArraypublicstaticvoidmain(String[]args)intsize=double[]myList=newdouble[size];myList[0]=5.6;myList[1]=myList[2]=myList[3]=myList[4]=myList[5]=myList[6]=myList[7]=myList[8]=myList[9]=doubletotal=for(inti=0;i<size;{total+=}System.out.println("}}以上實(shí)例輸出結(jié)果為總和為:總和為:下面的描繪了數(shù)組myList。這里myList數(shù)組里有10個double元素,它的下標(biāo)0到9o示該實(shí)例完整地展示了如何創(chuàng)建、初始化和數(shù)組publicpublicclassTestArraypublicstaticvoidmain(String[]{double[]myList={1.9,2.9,3.4,for(inti=0;i<myList.length;{System.out.println(myList[i]+"}doubletotal=for(inti=0;i<myList.length;{total+=}System.out.println("Totalis"+doublemax=for(inti=1;i<myList.length;{if(myList[i]>max)max=}System.out.println("Maxis"+}}以上實(shí)例編譯運(yùn)行結(jié)果如下TotalisMaxis該實(shí)例用來顯示數(shù)組myList中的所有元素publicpublicclassTestArraypublicstaticvoidmain(String[]{double[]myList={1.9,2.9,3.4,for(doubleelement:{}}}以上實(shí)例編譯運(yùn)行結(jié)果如下數(shù)組可以作為參數(shù)傳遞給方法。例如,下面的例子就是一個打印publicpublicstaticvoidprintArray(int[]{for(inti=0;i<array.length;i++){System.out.print(array[i]+"");}}下面例子調(diào)用printArray方法打印出3,1,2,6,4和printArray(printArray(newint[]{3,1,2,6,4,publicpublicstaticint[]reverse(int[]{int[]result=newfor(inti=0,j=result.length-1;i<list.length;i++,--)result[j]=}return}以上實(shí)例中result數(shù)組作為函數(shù)的返回值A(chǔ)rraysv類能方便地操作數(shù)組,它提供的所有方法都是靜態(tài)的。具有以下功給數(shù)組賦值:通過fill方法對數(shù)組排序:通過sort方法,比較數(shù)組:通過equals方法比較數(shù)組中元素值是否相等查找數(shù)組元素:通過yahjava.util包提供了Date類來封裝當(dāng)前的日期和時間。Date類提供兩個構(gòu)造函數(shù)來實(shí)例化Date對象。第一個構(gòu)造函數(shù)使用當(dāng)前日期和時間來初始化對象。Date(Date(第二個構(gòu)造函數(shù)接收一個參數(shù),該參數(shù)是從起的毫秒數(shù)Date(Date(longDate對象創(chuàng)建以后,可以調(diào)用下面的方法Java中獲取當(dāng)前日期和時間很簡單,使用Date對象的toString()方法來打印當(dāng)前日importimportpublicclassDateDemopublicstaticvoidmain(Stringargs[])初始化DateDatedate=new使用toString(}}MonMay0409:51:52CDTJava使用以下三種方法來比較兩個日期使用getTime()方法獲取兩個日期(自經(jīng)歷的毫秒數(shù)值),然后比較Date(99,2,12).before(newDate(99,2,18))返回true。使用compareTo()方法,它是由Comparable接口定義的,Date類實(shí)現(xiàn)了這個接importimportjava.util.*;importpublicclassDateDemopublicstaticvoidmain(Stringargs[])DatedNow=newDate();SimpleDateFormatft=newSimpleDateFormat("Eyyyy.MM.dd'at'hh:mm:ssaSystem.out.println("CurrentDate:"+}}以上實(shí)例編譯運(yùn)行結(jié)果如下CurrentCurrentDate:Sun2004.07.18at04:14:09PM時間模式字符串用來指定時間格式。在此模式中,所有的I方法可以很輕松地格式化時間和日期。使用兩個字母格式,它以timportimportjava.util.Date;publicclassDateDemo{publicstaticvoidmain(Stringargs[])DateDatedate=newStringstr=String.format("CurrentDate/Time:%tc",}}以上實(shí)例編譯運(yùn)行結(jié)果如下CurrentCurrentDate/Time:SatDec1516:37:57MST串要被格式化的參數(shù)的索引。索引必須緊跟在%后面,而且必須以$結(jié)束。例如importimportjava.util.Date;publicclassDateDemo{publicstaticvoidmain(Stringargs[])DateDatedate=newSystem.out.printf("%1$s%2$tB%2$td,"Duedate:",}}以上實(shí)例編譯運(yùn)行結(jié)果如下DueDuedate:February09,或者,你可以使用<標(biāo)志。它表明先前被格式化的參數(shù)要被再次使用。例如importimportjava.util.Date;publicclassDateDemo{publicstaticvoidmain(Stringargs[])初始化DateDatedate=newSystem.out.printf("%s%tB%<te,"Duedate:",}}以上實(shí)例編譯運(yùn)行結(jié)果如下DueDuedate:February09,還有其他有用的日期和時間相關(guān)的類。對于的細(xì)節(jié),你可以參考到Java 類有一些附加的方法,特別是parse(),它試圖按照給 對象的格式化來解析字符串。例如importpublicclassDateDemopublicstaticvoidmain(Stringargs[])SimpleDateFormatft=newSimpleDateFormat("yyyy-MM-Stringinput=args.length==0?"1818-11-11":System.out.print(input+"ParsesasDatetryt=ft.parse(input);}catch(ParseException{System.out.println("Unparseableusing"+}}}以上實(shí)例編譯運(yùn)行結(jié)果如下$$java1818-11-11ParsesasWedNov1100:00:00GMT$javaDateDemo2007-12-2007-12-01ParsesasSatDec0100:00:00GMTJava休眠s使當(dāng)前線程進(jìn)入停滯狀態(tài)(阻塞當(dāng)前線程),讓出的使用、目的是不讓當(dāng)前線程獨(dú)自霸占該進(jìn)程所獲的資源,以留一定時間給其他線程執(zhí)行的機(jī)會。以讓休眠秒的或者的計的的任時間如,下面的程序會休眠importimportpublicclassSleepDemopublicstaticvoidmain(String{trySystem.out.println(newDate"\n"); //休眠3秒System.out.println(newDate"\n");}catch(Exception{System.out.println("Gotanexception!";}}}以上實(shí)例編譯運(yùn)行結(jié)果如下ThuThuSep1710:20:30CSTThuSep1710:20:33CST下面的一個例子表明如何測量時間間隔(以毫秒為單位importimportpublicclassDiffDemopublicstaticvoidmain(String{trylongstart=System.currentTimeMillis();System.out.println(newDate()+"\n");System.out.println(newDate()+"\n");longend=System.currentTimeMillis();longdiff=end-start;System.out.println("Differenceis:"+}catch(Exception{System.out.println("Gotan}}}以上實(shí)例編譯運(yùn)行結(jié)果如下FriFriJan0809:48:47CSTFriJan0809:48:50CSTDifferenceis:Java方面幾個章節(jié)中我們經(jīng)常使用到System.out.println(),那么它是那么什么是方法呢方法包含于類或?qū)ο蠓椒ㄔ诔绦蛑斜粍?chuàng)建,在其他地方被一般情況下,定義一個方法包含以下語法修飾符返回值類型方法名修飾符返回值類型方法名(參數(shù)類型參數(shù)名return返回值}方法包含一個方法頭和一個方法體。下面是一個方法的所有部:修飾符,這是可選的,告訴編譯器如何調(diào)用該方法。定義了該方法的訪返回值類型:方法可能會返回值。returnValueType是方法返回值的數(shù)據(jù)類型。有些方法執(zhí)行所需的操作,但沒有返回值。在這種情況下,returnValueType是關(guān)鍵字 方法名:是方法的實(shí)際名稱。方法名和參數(shù)表共同構(gòu)成方法簽名:參數(shù)像是一個占位符。當(dāng)方法被調(diào)用時,傳遞值給參數(shù)。這個值被稱方法體:方法體包含具體的語句,定義該方法的功能publicpublicstaticintage(int參數(shù)可以有多個staticstaticfloatinterest(floatprincipal,int注意:在一些其它語言中方法指過程和函數(shù)。一個返回非void類型返回值的方法稱為實(shí)下面的方法包含2個參數(shù)num1和num2,它返回這兩個參數(shù)的最大值/**/**publicstaticintmax(intnum1,int{intresult;if(num1>num2)result=num1;result=return}Java支持兩種調(diào)用方法的方式,根據(jù)方法是否返回值來選擇當(dāng)方法返回一個值的時候,方法調(diào)用通常被當(dāng)做一個值。例intintlarger=max(30,如果方法返回值是vo,方法調(diào)用一定是一條語句。例如,方法v面的調(diào)用是個語句: eto示下面的例子演示了如何定義一個方法,以及如何調(diào)用它publicpublicclassTestMax/**主方法publicstaticvoidmain(String[]{inti=5;intj=2;intk=max(i, umbetween"+i"and"+j+"is"+}/**publicstaticintmax(intnum1,int{intresult;if(num1>num2)result=num1;result=return}}以上實(shí)例編譯運(yùn)行結(jié)果如下 umbetween5and2is這個程序包含J方法和其它方法沒什么區(qū)別。方法的頭部是不變的,如例子所示,帶修飾符cstaco類型值,方法名字是此外帶個一個類型參數(shù)。表明參數(shù)是字符串?dāng)?shù)組。不管你與否自定義構(gòu)造方法,所有的類都有構(gòu)造方法,因?yàn)镴av。一旦你定義了自己的構(gòu)造方法,默認(rèn)構(gòu)造方法就會失效實(shí)下面是一個使用構(gòu)造方法的例子class{int{x}}你可以像下面這樣調(diào)用構(gòu)造方法來初始化一publicpublicclassConsDemopublicstaticvoidmain(String{MyClasst1=newMyClass();MyClasst2=newMyClass();System.out.println(t1.x+""+}}大多時候需要一個有參數(shù)的構(gòu)造方法實(shí)下面是一個使用構(gòu)造方法的例子class{intMyClass(inti{x=}}你可以像下面這樣調(diào)用構(gòu)造方法來初始化一publicpublicclassConsDemopublicstaticvoidmain(String{MyClasst1=newMyClass(10);MyClasst2=newMyClass(20);System.out.println(t1.x+""+t2.x);}}運(yùn)行結(jié)果如下1010typeName...方法的可變參數(shù)的如下所示typeName...在方法中,在指定參數(shù)類型后加一個省略號 前。實(shí)publicpublicclassVarargsDemopublicstaticvoidmain(Stringargs[])printMax(34,3,3,2,printMax(newdouble[]{1,2,}publicstaticvoidprintMax(double...{if(numbers.length==0){System.out.println("Noargumentpassed");}doubleresult=for(inti=1;i<numbers.length;i++)if(numbers[i]>result)result=numbers[i];System.out.println("Themaxvalueis"+result);}}以上實(shí)例編譯運(yùn)行結(jié)果如下TheThemaxvalueis56.5Themaxvalueis3.0finalize()Java允許定義這樣的方法,它在對象被收集器析構(gòu)(回收)之前調(diào)用,這個方法在finalize()方法里,你必須指定在對象銷毀時候要執(zhí)行的操作finalize()一般格式是protectedprotectedvoid{}關(guān)鍵字protected是一個限定符,它確保 方法不會被該類以外的代碼調(diào)用JavaJ實(shí)publicpublicclassFinalizationDemopublicstaticvoidmain(String[]{Cakec1=newCakec2=newCake(2);Cakec3=newc2=c3=}}classCakeextends{privateintid;publicCake(int{this.id=System.out.println("CakeObject"+id+"is}protectedvoidfinalize()throws{System.out.println("CakeObject"+id+"is}}運(yùn)行以上代碼,輸出結(jié)果如下javaFinalizationDemoCakeObjectjavaFinalizationDemoCakeObject1iscreatedCakeObject2iscreatedCakeObject3iscreatedCakeObject3isdisposedCakeObject2isJava流(Stream)、文件(File)和JvaJava.io包中的流支持很多種格式,比如:基本類型、對象、本地化字符流可解為數(shù)據(jù)列。流表一個源數(shù)輸出示向一個目標(biāo)寫數(shù)據(jù)。Jva為但本節(jié)講述最基本的和流與/O功。過一例子習(xí)這功Java的控制臺輸入由System.in為了獲得一個綁定到控制臺的字符流,你可以把System.in包裝在BufferedReaderbr=newBufferedReaderbr=newue對象創(chuàng)建后,我們便可以使用方法從控制臺一個字符,方法一個字符串。從控制臺多字符輸從BufferedReader對象一個字符要使用read()方法,它的語法如下intintread()throws每次調(diào)用read()方法,它從輸入流一個字符并把該字符作為整數(shù)值返回。當(dāng)流結(jié)束的時候返回-1。該方法拋出IOException。下面的程序示范了用read()方法從控使用BufferedReaderimportpublicclassBRReadpublicstaticvoidmain(Stringargs[])throws{char//使用System.in創(chuàng)建BufferedReaderBufferedReaderbrnewBufferedReader(newSystem.out.println("Entercharacters,'q'toquit."); doc=(char)br.read();}while(c!=}}以上實(shí)例編譯運(yùn)行結(jié)果如下EnterEntercharacters,'q'toquit.123從控制臺字符StringreadLine()throws從標(biāo)準(zhǔn)輸入一個字符串需要使用BueStringreadLine()throws下面的程序和顯示字符行直到你輸入了單詞"end"使用BufferedReaderimportpublicclassBRReadLinespublicstaticvoidmain(Stringargs[])throws{//使用System.in創(chuàng)建BufferedReaderBufferedReaderbrnewBufferedReader(newStringSystem.out.println("Enterlinesoftext.");System.out.println("Enter'end'toquit.");do{ }}}以上實(shí)例編譯運(yùn)行結(jié)果如下EnterEnterlinesoftext.Enter'end'toquit.ThisislineoneThisislineoneThisislinetwoThisislinetwoPrintStream定義,System.out是該類對象的一個。 定義write()的最簡單格式如下所示voidvoidwrite(int該方法將byteval的低八位字節(jié)寫到流實(shí)下面的例子用write()把字符"A"和緊跟著的換行符輸出到屏幕mportmportSystem.out.write().publicclassWriteDemo{publicstaticvoidmain(String{intb;b=}}運(yùn)行以上實(shí)例在輸出窗口輸出"A"AA注意:write()方法不經(jīng)常使用,因?yàn)閜rint()和println()方法用起來更為方便所述個流義為數(shù)據(jù)。輸用于源,輸用于向目標(biāo)寫數(shù)據(jù)。下圖是一個描述輸入流和輸出流的類層次圖。重要的流是FileInputStream和
下面將要討論的該流用于從文件數(shù)據(jù),它的對象可以用關(guān)鍵字new來創(chuàng)建。可以使用字符串類型的文件名來創(chuàng)建一個輸入流對象來文件InputStreamInputStreamf=new 也可以使用一個文件對象來創(chuàng)建一個輸入流對象來文件。我們首先得使用)方法來創(chuàng)建一個文件對象:FileFilef=newInputStreamf=newp,就使用的方來者進(jìn)他的操除了InputStream外,還有一些其他的輸入流,的細(xì)節(jié)參考下面該類用來創(chuàng)建一個文件并向文件中寫數(shù)據(jù)Fm使用字符串類型的文件名來創(chuàng)建一個輸出流OutputStreamOutputStreamf=new 也可以使用一個文件對象來創(chuàng)建一個輸出流來寫文件。我們首先得使用F創(chuàng)建一個文件對象:FileFilef=newOutputStreamf=new除了OutputStream外,還有一些其他的輸出流,的細(xì)節(jié)參考下面下面是一個演示InputStream和OutputStream用法的例子importimportpublicclasspublicstaticvoidargs[]){bytebWrite[]=OutputStreamos=newFileOutputStream("test.txt");for(intx=0;x<bWrite.length;x++){os.write(bWrite[x]);//writesthe}InputStreamis=newintsize=for(inti=0;i<i++){System.out.print((char)is.read()+"}}}}輸出到控制臺上。以上代碼由于是二進(jìn)制寫入,可能存在亂碼,你可以使用以下代碼////:fileStreamTest2.javaimportjava.io.*;publicclasspublicstaticvoidmain(String[]args)throwsIOExceptionFilef=newFileOutputStreamfop=new//OutputStreamWriterwriter=newOutputStreamWriter(fop,//
//關(guān)閉輸出流,FileInputStreamfip=new
InputStreamReaderreader=newInputStreamReader(fip,StringBuffersb=newStringBuffer();while(reader.ready()){sb.append((char)}//關(guān) }}Java繼A是類的父類,而類是類的父類,我們也稱的子類,類A繼承而來的。Java。這兩個關(guān)鍵字的使用決定了一個對象和另一個對象是否是A是一個Jav的類均是由c類繼承而來的,所以O(shè)b是所有類的祖先類,而除了bc外,所有類必須有一個父類。通過過extends關(guān)鍵字可以申明一個類是繼承另外一個類而來的,一般形式如下//A.java//A.javapublicclassA{privateinti;protectedintpublicvoidfunc()}}/
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于彩虹小知識
- 2016山西道法試卷+答案+解析
- 超聲引導(dǎo)下坐骨神經(jīng)阻滯聯(lián)合股神經(jīng)阻滯在糖尿病患者膝關(guān)節(jié)以下截肢手術(shù)中的應(yīng)用效果分析
- 機(jī)械設(shè)備行業(yè)采購工作總結(jié)
- 《華潤藥業(yè)員工培訓(xùn)教程手冊》100-醫(yī)藥保健
- 二零二五年度建筑材料銷售返利執(zhí)行細(xì)則7篇
- 2025版物流企業(yè)戰(zhàn)略發(fā)展規(guī)劃合同范本3篇
- 二零二五年船舶通風(fēng)系統(tǒng)安裝與維護(hù)服務(wù)合同3篇
- 植草溝種植施工方案
- 邢臺陽臺石欄桿施工方案
- 課題申報書:GenAI賦能新質(zhì)人才培養(yǎng)的生成式學(xué)習(xí)設(shè)計研究
- 潤滑油知識-液壓油
- 2024年江蘇省中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點(diǎn)附帶答案
- 駱駝祥子-(一)-劇本
- 全國醫(yī)院數(shù)量統(tǒng)計
- 《中國香文化》課件
- 2024年醫(yī)美行業(yè)社媒平臺人群趨勢洞察報告-醫(yī)美行業(yè)觀察星秀傳媒
- 第六次全國幽門螺桿菌感染處理共識報告-
- 天津市2023-2024學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 經(jīng)濟(jì)學(xué)的思維方式(第13版)
- 盤錦市重點(diǎn)中學(xué)2024年中考英語全真模擬試卷含答案
評論
0/150
提交評論