




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
java菜鳥教程java菜鳥教程官網(wǎng)
java菜鳥教程篇(1):Java教程|菜鳥教程
Java教程
Java是由SunMicrosystems公司于1995年5月推出的高級程序設(shè)計語言。
Java可運行于多個平臺,如Windows,MacOS,及其他多種UNIX版本的系統(tǒng)。
本教程通過簡潔的實例將讓大家更好的了解JAVA編程語言。
Java在線工具
JDK1.6在線中文手冊我的第一個JAVA程序
以下我們通過一個簡潔的實例來展現(xiàn)Java編程,創(chuàng)建文件HelloWorld.java(文件名需與類名全都),代碼如下:
實例
publicclassHelloWorld{
publicstaticvoidmain(String[]args){
System.out.println("HelloWorld");
}
}
運行實例?
運行以上實例,輸出結(jié)果如下:
$javacHelloWorld.java
$javaHelloWorld
HelloWorld
執(zhí)行命令解析:
以上我們使用了兩個命令javac和java。
javac命令用于將java源文件編譯為class字節(jié)碼文件,如:javacHelloWorld.java。
運行javac命令后,假如勝利編譯沒有錯誤的話,會消失一個HelloWorld.class的文件。
java命令可以運行class字節(jié)碼文件,如:javaHelloWorld。
留意:java命令后面不要加.class。
開頭學(xué)習(xí)JAVA編程開頭學(xué)習(xí)Java課程Java面對對象課程Java高級課程
java菜鳥教程篇(2):Java方法|菜鳥教程
Java方法
在前面幾個章節(jié)中我們常常使用到System.out.println(),那么它是什么呢?
println()是一個方法(Method),而System是系統(tǒng)類(Class),out是標(biāo)準(zhǔn)輸出對象(Object)。這句話的用法是調(diào)用系統(tǒng)類System中的標(biāo)準(zhǔn)輸出對象out中的方法println()。
那么什么是方法呢?
Java方法是語句的集合,它們在一起執(zhí)行一個功能。
方法是解決一類問題的步驟的有序組合
方法包含于類或?qū)ο笾?/p>
方法在程序中被創(chuàng)建,在其他地方被引用
方法的定義
一般狀況下,定義一個方法包含以下語法:
修飾符返回值類型方法名(參數(shù)類型參數(shù)名){...方法體...return返回值;}
方法包含一個方法頭和一個方法體。下面是一個方法的全部部分:
修飾符:修飾符,這是可選的,告知編譯器如何調(diào)用該方法。定義了該方法的訪問類型。返回值類型:方法可能會返回值。returnValueType是方法返回值的數(shù)據(jù)類型。有些方法執(zhí)行所需的操作,但沒有返回值。在這種狀況下,returnValueType是關(guān)鍵字void。方法名:是方法的實際名稱。方法名和參數(shù)表共同構(gòu)成方法簽名。參數(shù)類型:參數(shù)像是一個占位符。當(dāng)方法被調(diào)用時,傳遞值給參數(shù)。這個值被稱為實參或變量。參數(shù)列表是指方法的參數(shù)類型、挨次和參數(shù)的個數(shù)。參數(shù)是可選的,方法可以不包含任何參數(shù)。方法體:方法體包含詳細(xì)的語句,定義該方法的功能。
如:
publicstaticintage(intbirthday){...}
參數(shù)可以有多個:
staticfloatinterest(floatprincipal,intyear){...}
留意:在一些其它語言中方法指過程和函數(shù)。一個返回非void類型返回值的方法稱為函數(shù);一個返回void類型返回值的方法叫做過程。
實例
下面的方法包含2個參數(shù)num1和num2,它返回這兩個參數(shù)的最大值。
/**返回兩個整型變量數(shù)據(jù)的較大值*/publicstaticintmax(intnum1,intnum2){intresult;if(num1num2)result=num1;elseresult=num2;returnresult;}
方法調(diào)用
Java支持兩種調(diào)用方法的方式,依據(jù)方法是否返回值來選擇。
當(dāng)程序調(diào)用一個方法時,程序的掌握權(quán)交給了被調(diào)用的方法。當(dāng)被調(diào)用方法的返回語句執(zhí)行或者到達方法體閉括號時候交還掌握權(quán)給程序。
當(dāng)方法返回一個值的時候,方法調(diào)用通常被當(dāng)做一個值。例如:
intlarger=max(30,40);
假如方法返回值是void,方法調(diào)用肯定是一條語句。例如,方法println返回void。下面的調(diào)用是個語句:
System.out.println("WeletoJava!");
示例
下面的例子演示了如何定義一個方法,以及如何調(diào)用它:
publicclassTestMax{/**主方法*/publicstaticvoidmain(String[]args){inti=5;intj=2;intk=max(i,j);System.out.println("Themaximumbetween"+i+"and"+j+"is"+k);}/**返回兩個整數(shù)變量較大的值*/publicstaticintmax(intnum1,intnum2){intresult;if(num1num2)result=num1;elseresult=num2;returnresult;}}
以上實例編譯運行結(jié)果如下:
Themaximumbetween5and2is5
這個程序包含main方法和max方法。Main方法是被JVM調(diào)用的,除此之外,main方法和其它方法沒什么區(qū)分。
main方法的頭部是不變的,如例子所示,帶修飾符public和static,返回void類型值,方法名字是main,此外帶個一個String[]類型參數(shù)。String[]表明參數(shù)是字符串?dāng)?shù)組。
void關(guān)鍵字
本節(jié)說明如何聲明和調(diào)用一個void方法。
下面的例子聲明白一個名為printGrade的方法,并且調(diào)用它來打印給定的分?jǐn)?shù)。
示例
publicclassTestVoidMethod{publicstaticvoidmain(String[]args){printGrade(78.5);}publicstaticvoidprintGrade(doublescore){if(score=90.0){System.out.println("A");}elseif(score=80.0){System.out.println("B");}elseif(score=70.0){System.out.println("C");}elseif(score=60.0){System.out.println("D");}else{System.out.println("F");}}}
以上實例編譯運行結(jié)果如下:
C
這里printGrade方法是一個void類型方法,它不返回值。
一個void方法的調(diào)用肯定是一個語句。所以,它被在main方法第三行以語句形式調(diào)用。就像任何以分號結(jié)束的語句一樣。
通過值傳遞參數(shù)
調(diào)用一個方法時候需要供應(yīng)參數(shù),你必需根據(jù)參數(shù)列表指定的挨次供應(yīng)。
例如,下面的方法連續(xù)n次打印一個消息:
publicstaticvoidnPrintln(Stringmessage,intn){for(inti=0;in;i++)System.out.println(message);}
示例
下面的例子演示按值傳遞的效果。
該程序創(chuàng)建一個方法,該方法用于交換兩個變量。
publicclassTestPassByValue{publicstaticvoidmain(String[]args){intnum1=1;intnum2=2;System.out.println("Beforeswapmethod,num1is"+num1+"andnum2is"+num2);//調(diào)用swap方法swap(num1,num2);System.out.println("Afterswapmethod,num1is"+num1+"andnum2is"+num2);}/**交換兩個變量的方法*/publicstaticvoidswap(intn1,intn2){System.out.println("\tInsidetheswapmethod");System.out.println("\t\tBeforeswappingn1is"+n1+"n2is"+n2);//交換n1與n2的值inttemp=n1;n1=n2;n2=temp;System.out.println("\t\tAfterswappingn1is"+n1+"n2is"+n2);}}
以上實例編譯運行結(jié)果如下:
Beforeswapmethod,num1is1andnum2is2InsidetheswapmethodBeforeswappingn1is1n2is2Afterswappingn1is2n2is1Afterswapmethod,num1is1andnum2is2
傳遞兩個參數(shù)調(diào)用swap方法。好玩的是,方法被調(diào)用后,實參的值并沒有轉(zhuǎn)變。
方法的重載
上面使用的max方法僅僅適用于int型數(shù)據(jù)。但假如你想得到兩個浮點類型數(shù)據(jù)的最大值呢?
解決方法是創(chuàng)建另一個有相同名字但參數(shù)不同的方法,如下面代碼所示:
publicstaticdoublemax(doublenum1,doublenum2){if(num1num2)returnnum1;elsereturnnum2;}
假如你調(diào)用max方法時傳遞的是int型參數(shù),則int型參數(shù)的max方法就會被調(diào)用;
假如傳遞的是double型參數(shù),則double類型的max方法體會被調(diào)用,這叫做方法重載;
就是說一個類的兩個方法擁有相同的名字,但是有不同的參數(shù)列表。
Java編譯器依據(jù)方法簽名推斷哪個方法應(yīng)當(dāng)被調(diào)用。
方法重載可以讓程序更清楚易讀。執(zhí)行親密相關(guān)任務(wù)的方法應(yīng)當(dāng)使用相同的名字。
重載的方法必需擁有不同的參數(shù)列表。你不能僅僅依據(jù)修飾符或者返回類型的不同來重載方法。
變量作用域
變量的范圍是程序中該變量可以被引用的部分。
方法內(nèi)定義的變量被稱為局部變量。
局部變量的作用范圍從聲明開頭,直到包含它的塊結(jié)束。
局部變量必需聲明才可以使用。
方法的參數(shù)范圍涵蓋整個方法。參數(shù)實際上是一個局部變量。
for循環(huán)的初始化部分聲明的變量,其作用范圍在整個循環(huán)。
但循環(huán)體內(nèi)聲明的變量其適用范圍是從它聲明到循環(huán)體結(jié)束。它包含如下所示的變量聲明:
你可以在一個方法里,不同的非嵌套塊中多次聲明一個具有相同的名稱局部變量,但你不能在嵌套塊內(nèi)兩次聲明局部變量。
命令行參數(shù)的使用
有時候你盼望運行一個程序時候再傳遞給它消息。這要靠傳遞命令行參數(shù)給main()函數(shù)實現(xiàn)。
命令行參數(shù)是在執(zhí)行程序時候緊跟在程序名字后面的信息。
實例
下面的程序打印全部的命令行參數(shù):
publicclassCommandLine{publicstaticvoidmain(Stringargs[]){for(inti=0;iargs.length;i++){System.out.println("args["+i+"]:"+args[i]);}}}
如下所示,運行這個程序:
javaCommandLinethisisamandline200-100
運行結(jié)果如下:
args[0]:thisargs[1]:isargs[2]:aargs[3]:mandargs[4]:lineargs[5]:200args[6]:-100
構(gòu)造方法
當(dāng)一個對象被創(chuàng)建時候,構(gòu)造方法用來初始化該對象。構(gòu)造方法和它所在類的名字相同,但構(gòu)造方法沒有返回值。
通常會使用構(gòu)造方法給一個類的實例變量賦初值,或者執(zhí)行其它必要的步驟來創(chuàng)建一個完整的對象。
不管你與否自定義構(gòu)造方法,全部的類都有構(gòu)造方法,由于Java自動供應(yīng)了一個默認(rèn)構(gòu)造方法,它把全部成員初始化為0。
一旦你定義了自己的構(gòu)造方法,默認(rèn)構(gòu)造方法就會失效。
實例
下面是一個使用構(gòu)造方法的例子:
//一個簡潔的構(gòu)造函數(shù)classMyClass{intx;//以下是構(gòu)造函數(shù)MyClass(){x=10;}}
你可以像下面這樣調(diào)用構(gòu)造方法來初始化一個對象:
publicclassConsDemo{publicstaticvoidmain(Stringargs[]){MyClasst1=newMyClass();MyClasst2=newMyClass();System.out.println(t1.x+""+t2.x);}}
大多時候需要一個有參數(shù)的構(gòu)造方法。
實例
下面是一個使用構(gòu)造方法的例子:
//一個簡潔的構(gòu)造函數(shù)classMyClass{intx;//以下是構(gòu)造函數(shù)MyClass(inti){x=i;}}
你可以像下面這樣調(diào)用構(gòu)造方法來初始化一個對象:
publicclassConsDemo{publicstaticvoidmain(Stringargs[]){MyClasst1=newMyClass(10);MyClasst2=newMyClass(20);System.out.println(t1.x+""+t2.x);}}
運行結(jié)果如下:
1020
可變參數(shù)
JDK1.5開頭,Java支持傳遞同類型的可變參數(shù)給一個方法。
方法的可變參數(shù)的聲明如下所示:
typeName...parameterName
在方法聲明中,在指定參數(shù)類型后加一個省略號(...)。
一個方法中只能指定一個可變參數(shù),它必需是方法的最終一個參數(shù)。任何一般的參數(shù)必需在它之前聲明。
實例
publicclassVarargsDemo{publicstaticvoidmain(Stringargs[]){//調(diào)用可變參數(shù)的方法printMax(34,3,3,2,56.5);printMax(newdouble[]{1,2,3});}publicstaticvoidprintMax(double...numbers){if(numbers.length==0){System.out.println("Noargumentpassed");return;}doubleresult=numbers[0];for(inti=1;inumbers.length;i++)if(numbers[i]result)result=numbers[i];System.out.println("Themaxvalueis"+result);}}
以上實例編譯運行結(jié)果如下:
Themaxvalueis56.5Themaxvalueis3.0
finalize()方法
Java允許定義這樣的方法,它在對象被垃圾收集器析構(gòu)(回收)之前調(diào)用,這個方法叫做finalize(),它用來清除回收對象。
例如,你可以使用finalize()來確保一個對象打開的文件被關(guān)閉了。
在finalize()方法里,你必需指定在對象銷毀時候要執(zhí)行的操作。
finalize()一般格式是:
protectedvoidfinalize(){//在這里終結(jié)代碼}
關(guān)鍵字protected是一個限定符,它確保finalize()方法不會被該類以外的代碼調(diào)用。
當(dāng)然,Java的內(nèi)存回收可以由JVM來自動完成。假如你手動使用,則可以使用上面的方法。
實例
publicclassFinalizationDemo{publicstaticvoidmain(String[]args){Cakec1=newCake(1);Cakec2=newCake(2);Cakec3=newCake(3);c2=c3=null;System.gc();//調(diào)用Java垃圾收集器}}classCakeextendsObject{privateintid;publicCake(intid){this.id=id;System.out.println("CakeObject"+id+"iscreated");}protectedvoidfinalize()throwsjava.lang.Throwable{super.finalize();System.out.println("CakeObject"+id+"isdisposed");}}
運行以上代碼,輸出結(jié)果如下:
C:\1javaFinalizationDemoCakeObject1iscreatedCakeObject2iscreatedCakeObject3iscreatedCakeObject3isdisposedCakeObject2isdisposed返回頂部
java菜鳥教程篇(3):Java基礎(chǔ)語法|菜鳥教程
Java基礎(chǔ)語法
一個Java程序可以認(rèn)為是一系列對象的集合,而這些對象通過調(diào)用彼此的方法來協(xié)同工作。下面簡要介紹下類、對象、方法和實例變量的概念。
對象:對象是類的一個實例,有狀態(tài)和行為。例如,一條狗是一個對象,它的狀態(tài)有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。類:類是一個模板,它描述一類對象的行為和狀態(tài)。方法:方法就是行為,一個類可以有許多方法。規(guī)律運算、數(shù)據(jù)修改以及全部動作都是在方法中完成的。實例變量:每個對象都有獨特的實例變量,對象的狀態(tài)由這些實例變量的值打算。
第一個Java程序
下面看一個簡潔的Java程序,它將打印字符串HelloWorld
實例
publicclassHelloWorld{/*第一個Java程序*它將打印字符串HelloWorld*/publicstaticvoidmain(String[]args){System.out.println("HelloWorld");//打印HelloWorld}}
運行實例?
下面將逐步介紹如何保存、編譯以及運行這個程序:
打開Notepad,把上面的代碼添加進去;把文件名保存為:HelloWorld.java;打開cmd命令窗口,進入目標(biāo)文件所在的位置,假設(shè)是C:\在命令行窗口鍵入javacHelloWorld.java
按下enter鍵編譯代碼。假如代碼沒有錯誤,cmd命令提示符會進入下一行。(假設(shè)環(huán)境變量都設(shè)置好了)。再鍵入javaHelloWorld按下Enter鍵就可以運行程序了
你將會在窗口看到HelloWorld
C:javacHelloWorld.javaC:javaHelloWorldHelloWorld
Gif圖演示:
基本語法
編寫Java程序時,應(yīng)留意以下幾點:
大小寫敏感:Java是大小寫敏感的,這就意味著標(biāo)識符Hello與hello是不同的。類名:對于全部的類來說,類名的首字母應(yīng)當(dāng)大寫。假如類名由若干單詞組成,那么每個單詞的首字母應(yīng)當(dāng)大寫,例如
MyFirstJavaClass。方法名:全部的方法名都應(yīng)當(dāng)以小寫字母開頭。假如方法名含有若干單詞,則后面的每個單詞首字母大寫。源文件名:源文件名必需和類名相同。當(dāng)保存文件的時候,你應(yīng)當(dāng)使用類名作為文件名保存(切記Java是大小寫敏感的),文件名的后綴為.java。(假如文件名和類名不相同則會導(dǎo)致編譯錯誤)。主方法入口:全部的Java程序由publicstaticvoidmain(String[]args)方法開頭執(zhí)行。
Java標(biāo)識符
Java全部的組成部分都需要名字。類名、變量名以及方法名都被稱為標(biāo)識符。
關(guān)于Java標(biāo)識符,有以下幾點需要留意:
全部的標(biāo)識符都應(yīng)當(dāng)以字母(A-Z或者a-z),美元符($)、或者下劃線(_)開頭首字符之后可以是字母(A-Z或者a-z),美元符($)、下劃線(_)或數(shù)字的任何字符組合關(guān)鍵字不能用作標(biāo)識符標(biāo)識符是大小寫敏感的合法標(biāo)識符舉例:age、$salary、_value、__1_value非法標(biāo)識符舉例:123abc、-salary
Java修飾符
像其他語言一樣,Java可以使用修飾符來修飾類中方法和屬性。主要有兩類修飾符:
訪問掌握修飾符:default,public,protected,private非訪問掌握修飾符:final,abstract,strictfp
在后面的章節(jié)中我們會深化爭論Java修飾符。
Java變量Java中主要有如下幾種類型的變量
局部變量類變量(靜態(tài)變量)成員變量(非靜態(tài)變量)
Java數(shù)組
數(shù)組是儲存在堆上的對象,可以保存多個同類型變量。在后面的章節(jié)中,我們將會學(xué)到如何聲明、構(gòu)造以及初始化一個數(shù)組。
Java枚舉
Java5.0引入了枚舉,枚舉限制變量只能是預(yù)先設(shè)定好的值。使用枚舉可以削減代碼中的bug。
例如,我們?yōu)楣暝O(shè)計一個程序,它將限制果汁為小杯、中杯、大杯。這就意味著它不允許顧客點除了這三種尺寸外的果汁。
實例
classFreshJuice{enumFreshJuiceSize{SMALL,MEDIUM,LARGE}FreshJuiceSizesize;}publicclassFreshJuiceTest{publicstaticvoidmain(String[]args){FreshJuicejuice=newFreshJuice();juice.size=FreshJuice.FreshJuiceSize.MEDIUM;}}
留意:枚舉可以單獨聲明或者聲明在類里面。方法、變量、構(gòu)造函數(shù)也可以在枚舉中定義。
Java關(guān)鍵字
下面列出了Java保留字。這些保留字不能用于常量、變量、和任何標(biāo)識符的名稱。
關(guān)鍵字描述
abstract抽象方法,抽象類的修飾符
assert斷言條件是否滿意
boolean布爾數(shù)據(jù)類型
break跳出循環(huán)或者label代碼段
byte8-bit有符號數(shù)據(jù)類型
caseswitch語句的一個條件
catch和try搭配撲捉特別信息
char16-bitUnicode字符數(shù)據(jù)類型
class定義類
const未使用
continue不執(zhí)行循環(huán)體剩余部分
defaultswitch語句中的默認(rèn)分支
do循環(huán)語句,循環(huán)體至少會執(zhí)行一次
double64-bit雙精度浮點數(shù)
elseif條件不成立時執(zhí)行的分支
enum枚舉類型
extends表示一個類是另一個類的子類
final表示一個值在初始化之后就不能再轉(zhuǎn)變了表示方法不能被重寫,或者一個類不能有子類
finally為了完成執(zhí)行的代碼而設(shè)計的,主要是為了程序的健壯性和完整性,無論有沒有特別發(fā)生都執(zhí)行代碼。
float32-bit單精度浮點數(shù)
forfor循環(huán)語句
goto未使用
if條件語句
imp
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 路口智能交通法規(guī)研究-深度研究
- 生物質(zhì)能轉(zhuǎn)化技術(shù)-深度研究
- 檔案管理國際化趨勢-深度研究
- 跨境電商消費者行為研究-深度研究
- 知識產(chǎn)權(quán)管理與創(chuàng)新生態(tài)-深度研究
- 植物在城市廣告中的應(yīng)用-深度研究
- 燃?xì)獍踩O(jiān)管升級-深度研究
- 信息架構(gòu)優(yōu)化策略-深度研究
- 振動分析技術(shù)在機械檢測-深度研究
- 別墅外裝飾合同范本
- 264省道淮安段(原淮安楚州施河至漣水五港公路)環(huán)評報告
- 矢量分析和場論基礎(chǔ)
- 進步粘滯流體阻尼器埋件的一次驗收合格率
- (完整版)書籍裝幀設(shè)計
- 第九章古典文獻的檢索
- 高職院校創(chuàng)新創(chuàng)業(yè)教育數(shù)字化轉(zhuǎn)型和改革研究
- 初中物理實驗全集-ppt
- 合作公司變更函范文(必備6篇)
- 創(chuàng)新收益占有文獻綜述
- 急性腸系膜血管缺血性疾病
- 全國2017年10月自考00043經(jīng)濟法概論(財經(jīng)類)試題及答案
評論
0/150
提交評論