java基礎(chǔ)語(yǔ)法
java基礎(chǔ)語(yǔ)法
對(duì)象:對(duì)象是類(lèi)的一個(gè)實(shí)例地啰,有狀態(tài)和行為。
類(lèi):類(lèi)是一個(gè)模板褪贵,它描述一類(lèi)對(duì)象的行為和狀態(tài)。
方法:方法就是行為抗俄,一個(gè)類(lèi)可以有很多方法脆丁。邏輯運(yùn)算,數(shù)據(jù)修改都是在方法中完成的橄镜。
實(shí)例變量:每個(gè)對(duì)象都有自己的實(shí)例變量偎快,對(duì)象的狀態(tài)由這些實(shí)例變量的值決定冯乘。
基本語(yǔ)法
大小寫(xiě)敏感:java是對(duì)大小寫(xiě)敏感的洽胶。
類(lèi)名:在java中類(lèi)名的首字母應(yīng)該大寫(xiě),如果由多個(gè)單詞組成裆馒,則采用駝峰式寫(xiě)法姊氓。
方法名:所有方法名都應(yīng)該以小寫(xiě)字母開(kāi)頭,如果方法名包含有若干單詞喷好,則后面的單詞首字母應(yīng)該大寫(xiě)翔横。
源文件名:源文件名必須和類(lèi)名相同。當(dāng)保存文件的時(shí)候梗搅,應(yīng)該使用類(lèi)名作為文件名來(lái)保存禾唁,文件名的后綴為.java效览。(如果文件名和類(lèi)名不相同則會(huì)導(dǎo)致編譯錯(cuò)誤)
java標(biāo)識(shí)符
java所有組成部分都需要名字。類(lèi)名荡短,變量名丐枉,以及方法名都被稱(chēng)為標(biāo)識(shí)符。
1.所有標(biāo)識(shí)符都應(yīng)該以字母掘托,美元符號(hào)$瘦锹,或者下劃線開(kāi)頭。
2.首字母之后可以是任何字符的組合形式闪盔。
3.關(guān)鍵字不能用作標(biāo)識(shí)符弯院。
4.標(biāo)識(shí)符也同樣對(duì)大小寫(xiě)敏感。
java修飾符
像其他的面向?qū)ο笳Z(yǔ)言一樣泪掀,java可以使用修飾符來(lái)修飾類(lèi)中的方法和屬性听绳。
兩類(lèi)修飾類(lèi):
1.訪問(wèn)控制修飾符:default ,public ,protected, private;
2.非訪問(wèn)控制修飾符:final ,abstract,static,synchronized,volatile;
java變量:
1.局部變量
2.類(lèi)變量(靜態(tài)變量)
3.成員變量(非靜態(tài)變量)
java數(shù)組
數(shù)組是存儲(chǔ)在堆上的對(duì)象,可以保存多個(gè)同類(lèi)型變量异赫。
java枚舉
java5.0引入了枚舉辫红,枚舉限制變量只能是預(yù)先設(shè)定好的值,使用枚舉可以減少代碼中的bug.
注意:枚舉可以單獨(dú)聲明或者聲明在類(lèi)里面祝辣。方法讼育,變量,構(gòu)造函數(shù)也可以在枚舉中定義庆杜。
java空行
空白行泌绣,或者有注釋的行,java編譯器都會(huì)忽略掉孕荠。
繼承
在java中娩鹉,一個(gè)類(lèi)可以其他類(lèi)派生。如果你要?jiǎng)?chuàng)建一個(gè)類(lèi)稚伍,而且已經(jīng)存在一個(gè)具有你所需要得屬性和方法弯予,那么你可以將新創(chuàng)建的類(lèi)繼承該類(lèi)。利用繼承的方法个曙,可以重用已存在類(lèi)的方法和屬性锈嫩,而不用重寫(xiě)這些代碼,被繼承的類(lèi)稱(chēng)為是超類(lèi)垦搬,派生類(lèi)稱(chēng)為子類(lèi)呼寸。
接口
在java中,接口可理解為對(duì)象間相互通信的協(xié)議猴贰。
java對(duì)象和類(lèi)
java對(duì)象和類(lèi)
java作為一門(mén)面向?qū)ο笳Z(yǔ)言对雪,支持下面一些概念:
多態(tài),繼承米绕,封裝瑟捣,抽象馋艺,類(lèi),對(duì)象迈套,實(shí)例丈钙,方法,消息解析交汤。
java中的對(duì)象
對(duì)象的狀態(tài)就是屬性雏赦,行為通過(guò)方法體現(xiàn)。
在軟件開(kāi)發(fā)過(guò)程中芙扎,方法操作對(duì)象內(nèi)部狀態(tài)的改變星岗,對(duì)象的相互調(diào)用也是通過(guò)方法來(lái)完成的。
java中的類(lèi)
類(lèi)可以是看作是創(chuàng)建java對(duì)象的模板戒洼。
一個(gè)類(lèi)中包含的變量:
? ? ? ?局部變量:在方法俏橘,構(gòu)造方法或者語(yǔ)句塊中定義的變量被稱(chēng)為局部變量。變量聲明和初始化都是在方法中圈浇,方法結(jié)束后寥掐,變量就會(huì)自動(dòng)銷(xiāo)毀。
? ? ? ?成員變量:成員變量定義在類(lèi)中磷蜀,方法體之外的變量召耘。這種變量在創(chuàng)建對(duì)象的時(shí)候?qū)嵗3蓡T變量可以被類(lèi)中方法褐隆,構(gòu)造方法和特定類(lèi)的語(yǔ)句塊訪問(wèn)污它。
類(lèi)變量:類(lèi)變量也聲明在類(lèi)中,方法體之外庶弃,但必須聲明為static類(lèi)型衫贬。
一個(gè)類(lèi)可以擁有多個(gè)方法。
構(gòu)造方法
每個(gè)類(lèi)都有一個(gè)構(gòu)造方法歇攻,如果沒(méi)有顯式地為類(lèi)定義構(gòu)造方法固惯,java編譯器將會(huì)為該類(lèi)提供一個(gè)默認(rèn)構(gòu)造方法。
在創(chuàng)建一個(gè)對(duì)象的時(shí)候缴守,至少要調(diào)用一個(gè)構(gòu)造方法葬毫。構(gòu)造方法的名稱(chēng)必須與類(lèi)同名,一個(gè)類(lèi)可以由多個(gè)構(gòu)造方法斧散。
創(chuàng)建對(duì)象
對(duì)象是根據(jù)類(lèi)創(chuàng)建的供常。使用new關(guān)鍵字來(lái)創(chuàng)建一個(gè)對(duì)象摊聋。
第一步(聲明):聲明一個(gè)對(duì)象鸡捐,包括對(duì)象名稱(chēng)和對(duì)象類(lèi)型;
第二步(實(shí)例化):使用關(guān)鍵字new來(lái)創(chuàng)建一個(gè)對(duì)象麻裁。
第三步(初始化):使用new創(chuàng)建對(duì)象時(shí)箍镜,會(huì)調(diào)用構(gòu)造方法初始化對(duì)象源祈。
訪問(wèn)實(shí)例變量和方法
//實(shí)例化對(duì)象
ObjectReference = new Constructor();
//訪問(wèn)對(duì)象的變量
ObjectReference.variableName;
//調(diào)用對(duì)象的方法
ObjectReference.MethodName();
源文件聲明規(guī)則
當(dāng)在一個(gè)源文件中定義多個(gè)類(lèi),并且還有import語(yǔ)句和package語(yǔ)句時(shí)色迂,要特別注意這些規(guī)則香缺。
1.一個(gè)源文件中只能一個(gè)public類(lèi)(可以存在一個(gè)public類(lèi))
2.一個(gè)源文件中可以有多個(gè)非public類(lèi)(存在多個(gè)非public類(lèi))
3.源文件的名稱(chēng)應(yīng)該和public類(lèi)的類(lèi)名保持一致。
4.如果一個(gè)類(lèi)定義在某個(gè)包中歇僧,那么package語(yǔ)句應(yīng)該在源文件的首行图张。(所需的類(lèi)不在該類(lèi)中,則需要進(jìn)行“導(dǎo)包”操作)
5.如果源文件包含import語(yǔ)句诈悍,那么應(yīng)該放在package語(yǔ)句和類(lèi)定義之間祸轮。如果沒(méi)有package語(yǔ)句,那么import語(yǔ)句應(yīng)該在源文件中最前面侥钳。(導(dǎo)入所需的文件)
6.import語(yǔ)句和package語(yǔ)句對(duì)源文件中定義的所有類(lèi)都有效适袜。在同一源文件中,不能給不同的類(lèi)不同的包聲明舷夺。
java包
包主要用來(lái)對(duì)類(lèi)和接口進(jìn)行分類(lèi)苦酱。當(dāng)開(kāi)發(fā)java程序時(shí),可能編寫(xiě)成百上千的類(lèi)给猾,因此很有必要對(duì)類(lèi)和接口進(jìn)行分類(lèi)疫萤。
import語(yǔ)句
在java中,如果給出一個(gè)完整的限定名敢伸,包括包名给僵,類(lèi)名,那么java編譯器就可以很容易地定位到源代碼或者是某個(gè)類(lèi)详拙。
import語(yǔ)句就是用來(lái)提供一個(gè)合理的路徑帝际,使得編譯器可以找到某個(gè)類(lèi)。
java基本數(shù)據(jù)類(lèi)型
java基本數(shù)據(jù)類(lèi)型
變量就是申請(qǐng)內(nèi)存來(lái)存儲(chǔ)值饶辙。當(dāng)創(chuàng)建變量的時(shí)候蹲诀,需要在內(nèi)存中申請(qǐng)空間。
內(nèi)存管理系統(tǒng)根據(jù)變量的類(lèi)型為變量分配存儲(chǔ)空間弃揽,分配的空間只能用來(lái)存儲(chǔ)該類(lèi)型的數(shù)據(jù)脯爪。
因此,通過(guò)定義不同類(lèi)型的變量矿微,可以在內(nèi)存中存儲(chǔ)整數(shù)痕慢,小數(shù)或者字符。
java的兩大數(shù)據(jù)類(lèi)型:~內(nèi)置數(shù)據(jù)類(lèi)型涌矢,~引用數(shù)據(jù)類(lèi)型
內(nèi)置數(shù)據(jù)類(lèi)型
java語(yǔ)言提供了八種基本類(lèi)型掖举。六種數(shù)字類(lèi)型(四個(gè)整數(shù)型,兩個(gè)浮點(diǎn)型)娜庇,一種字符類(lèi)型塔次,還有一種布爾類(lèi)型方篮。
byte ,short ,int ,long ,float,double,char?
實(shí)際上,java還存在另外一種基本數(shù)據(jù)類(lèi)型void励负,它也有對(duì)應(yīng)的包裝類(lèi)java.lang.void,不過(guò)我們無(wú)法直接對(duì)它們進(jìn)行操作藕溅。
引用類(lèi)型
1.引用類(lèi)型變量由類(lèi)的構(gòu)造函數(shù)創(chuàng)建,可以使用他們?cè)L問(wèn)所引用的對(duì)象继榆。這些變量在聲明時(shí)被指定為一個(gè)特定的類(lèi)型巾表。變量一旦聲明后,類(lèi)型就不能被改變了略吨。
2.對(duì)象攒发,數(shù)組都是引用數(shù)據(jù)類(lèi)型。
3.所有引用類(lèi)型的默認(rèn)值都是null晋南。
4.一個(gè)引用變量可以用來(lái)引用與任何與之兼容的類(lèi)型惠猿。
常量
常量指不能改變的量。在java中用final標(biāo)志负间,聲明方式與變量類(lèi)似偶妖。
雖然常量名也可以是用小寫(xiě),但為了識(shí)別政溃,通常使用大寫(xiě)字母表示常量趾访。
字符串常量和字符常量都可以包含任何Unicode字符。
如:char a = '\u0001'; String a = "\u0001";
java支持一些特殊的轉(zhuǎn)義字符:
\n :換行
\r:回車(chē)
\f:換頁(yè)符
\b:退格符
\s:空格符
\t: 制表符
java變量類(lèi)型
java變量類(lèi)型
在java語(yǔ)言中董虱,所有的變量在使用前必須聲明扼鞋。
java語(yǔ)言支持的變量類(lèi)型有:
1.局部變量
2.實(shí)例變量
3.類(lèi)變量
java局部變量
1.局部變量聲明在方法,構(gòu)造方法或者語(yǔ)句塊中愤诱。
2.局部變量在方法云头,構(gòu)造方法,或者語(yǔ)句塊被執(zhí)行的時(shí)候創(chuàng)建淫半,當(dāng)它們執(zhí)行完畢后溃槐,變量將會(huì)被銷(xiāo)毀。
3.訪問(wèn)修飾符不能用于局部變量科吭。
4.局部變量只在聲明它的方法昏滴,構(gòu)造方法或者語(yǔ)句塊中可見(jiàn)。
5.局部變量是在棧上分配的对人。
6.局部變量沒(méi)有默認(rèn)值谣殊,所以局部變量被聲明后,必須經(jīng)過(guò)初始化牺弄,才可以使用姻几。
實(shí)例變量
1.實(shí)例變量聲明在一個(gè)類(lèi)中,但在方法,構(gòu)造方法和語(yǔ)句塊之外鲜棠;
2.當(dāng)一個(gè)對(duì)象被實(shí)例化之后肌厨,每個(gè)實(shí)例變量的值就跟著確定培慌;
3.實(shí)例變量在對(duì)象創(chuàng)建的時(shí)候創(chuàng)建豁陆,在對(duì)象被銷(xiāo)毀的時(shí)候銷(xiāo)毀;
4.實(shí)例變量的值至少被一個(gè)方法吵护,構(gòu)造方法或者語(yǔ)句塊引用盒音,使得外部能夠通過(guò)這些方式獲取實(shí)例變量信息。
5.實(shí)例變量可以聲明在使用前或者使用后馅而;
6祥诽,訪問(wèn)修飾符可以修飾實(shí)例變量;
7.實(shí)例變量對(duì)于類(lèi)中的方法瓮恭,構(gòu)造方法或者語(yǔ)句塊是可見(jiàn)的雄坪。一般情況下應(yīng)該吧實(shí)例變量設(shè)為私有。通過(guò)使用訪問(wèn)修飾符可以使實(shí)例變量對(duì)子類(lèi)可見(jiàn)屯蹦。
8.實(shí)例變量具有默認(rèn)性维哈。數(shù)值型變量默認(rèn)值是0.布爾型變量的默認(rèn)值是false,引用類(lèi)型變量的默認(rèn)值是null登澜,變量的值可以在聲明時(shí)指定阔挠,也可以在構(gòu)造方法中指定;
9.實(shí)例變量可以直接通過(guò)變量名訪問(wèn)脑蠕。但在靜態(tài)方法以及其他類(lèi)中购撼,就應(yīng)該使用完全限定名:ObjectReference.VariableName.
類(lèi)變量(靜態(tài)變量)
1.類(lèi)變量也稱(chēng)為靜態(tài)變量,在類(lèi)中以static關(guān)鍵字聲明谴仙,在必須在方法迂求,構(gòu)造方法和語(yǔ)句塊之外。
2.無(wú)論一個(gè)類(lèi)創(chuàng)建了多少個(gè)對(duì)象晃跺,類(lèi)只擁有類(lèi)變量的一份拷貝锁摔。
3.靜態(tài)常量除了被聲明為常量外很少使用。常量是指聲明為public final static 或 private final static 類(lèi)型的變量哼审。常量初始化不可改變谐腰。
4.靜態(tài)變量存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū)。
5.靜態(tài)變量在程序開(kāi)始時(shí)創(chuàng)建涩盾,在程序結(jié)束時(shí)銷(xiāo)毀十气。
6.與實(shí)例變量具有相似性的可見(jiàn)性。但為了對(duì)類(lèi)的使用者可見(jiàn)春霍,大多數(shù)靜態(tài)變量聲明為public類(lèi)型砸西。
7.