break 跳出
break作用的范圍: swich或是循環(huán)語句。
break存在的時候景用,下面不能單獨定義愛他語句伞插。
break跳出所在的的當(dāng)前循環(huán),
多重循環(huán)時舀瓢,break可以通過標(biāo)號跳出指定循環(huán)杠步。
continue 繼續(xù)
continue作用的范圍: 循環(huán)結(jié)構(gòu)
continue結(jié)束本次循環(huán) 繼續(xù)下次循環(huán)
如果continue單獨存在時,下面不要有任何語句----執(zhí)行不到
函數(shù)? 定義在類中的一段具有特殊功能的一段程序 也成為方法
函數(shù)的重載? 在同一個類中
允許存在一個或以上的同名函數(shù)朵锣,只要它們的參數(shù)個數(shù)或是類型不同即可甸私。
特點: 與返回值無關(guān)
Java是嚴(yán)謹(jǐn)性語言 函數(shù)出現(xiàn)不確定性 調(diào)用失敗~?
數(shù)組格式1? 元素類型[] 數(shù)組名 = new 元素類型[元素個數(shù)或長度];
//需要一個容器 存儲不明確的數(shù)據(jù)
數(shù)組格式2? 元素類型 數(shù)組名[] = new 元素個數(shù)[元素個數(shù)或長度]{內(nèi)容};
? ? //需要一個容器 存儲已知的數(shù)據(jù)
int arr[] = new int[5];?
int[] arr = new int[]{1,2,2,3,4}// int[] arr = {1,2,2,3,4}
棧內(nèi)存--->存儲的都是局部變量 而且變量所屬作用域一旦結(jié)束 該變量自動釋放
堆內(nèi)存--->存儲的數(shù)組和對象 凡是new建立的都存在堆中
特點:
1.每一個實體都有首地址值
2.堆內(nèi)存中的每一個變量都有默認(rèn)初始化值皇型,根據(jù)類型的不同而不同,整數(shù)是0绞吁,小數(shù)的0.0或者0.0f Boolean false true char '\u0000'? 垃圾堆在不定時會被回收
arrays.binarySearch();
類
定義類 其實就是在定義類中的成員
成員 成員變量<-->屬性唬格,成員函數(shù)<-->行為。
成員變量和局部變量的區(qū)別
1.成員變量定義在類中 真?zhèn)€類中都可以訪問
? ? 局部變量定義在函數(shù)汰聋,語句局部代碼塊中喊积,只在所屬的區(qū)域有效
? ? 2.成員變量存在于堆內(nèi)存的對象中,
? ? 局部變量存在于棧內(nèi)存的方法中
? ? 3.成員變量隨著對象的創(chuàng)建而存在髓梅,隨著對象的消失而消失
? ? 局部變量隨著所屬區(qū)域的執(zhí)行而存在,隨著所屬區(qū)域的結(jié)束而釋放
4.成員變量都有默認(rèn)初始化值
? ? 局部變量沒有默認(rèn)的初始化值
匿名對象----->沒有名字的對象
當(dāng)對象對--方法--僅調(diào)用一次的時候 可以使用匿名對象 記住 是方法 不是對象~
但匿名對象可直接作為實參進(jìn)行傳遞
例:
class Car{
int num;
}
new Car();
Car c = new Car();
c.num = 2;
new Car() = 2;
封裝 隱藏對象的屬性和實現(xiàn)細(xì)節(jié) 僅對外提供公共訪問方式
Good:提高了安全性 提高重要性 便于使用 將變化隔離
原則: 將不需要對外提供的內(nèi)容都隱藏起來
? 屬性都隱藏? 提供公共方法對其訪問
private:私有 是一個權(quán)限修飾符 用于修飾成員 私有的內(nèi)容只在本類中有效
注意:? 私有僅僅是封裝的一種體現(xiàn)而已
構(gòu)造函數(shù)
特點:
1.函數(shù)名與類名相同
2.不用定義返回值類型
3.沒有具體的返回值
作用:
給對象進(jìn)行初始化
注意:
1.默認(rèn)構(gòu)造函數(shù)
類中如果沒有定義構(gòu)造函數(shù)瞭郑,那么該類中會有一個默認(rèn)的空參數(shù)構(gòu)造函數(shù)
如果類中定義了指定的構(gòu)造函數(shù)屈张,默認(rèn)的構(gòu)造函數(shù)即消失
一般函數(shù)和構(gòu)造函數(shù)的區(qū)別:
1.構(gòu)造函數(shù)對象創(chuàng)建時就會調(diào)用與之對應(yīng)的構(gòu)造函數(shù)對對象就行初始化
2.一般函數(shù)對象創(chuàng)建后 需要函數(shù)功能時才調(diào)用
1.構(gòu)造函數(shù)對象創(chuàng)建時 僅調(diào)用一次
2.一般函數(shù)對象創(chuàng)建后 會調(diào)用多次
什么時候定義構(gòu)造函數(shù)阁谆?
在描述事物時愉老,該事物已存在就具備的一些內(nèi)容,這些內(nèi)容都定義在構(gòu)造函數(shù)中
this:代表對象---->當(dāng)前對象--->就是所在函數(shù)所屬對象的引用--->? ?
? ? ? ? ? ? 即為調(diào)用this的函數(shù)的對象
1.成員變量和局部變量重名時焰盗,可以用this關(guān)鍵字區(qū)分
this.name = name;
構(gòu)造函數(shù)調(diào)用構(gòu)造函數(shù)
this(name);//必須在第一行? 因為初始化動作先執(zhí)行
static 靜態(tài)--->關(guān)鍵字
特點
1.static是一個修飾符咒林,用于修飾成員
2.static修飾的成員被所有的對象共享
3.static優(yōu)先于對象存在,因為static的成員隨著類的加載就存在
4.static修飾的成員多了一種調(diào)用方式--->直接被類名所調(diào)用---類名.靜態(tài)成員
5.static修飾的數(shù)據(jù)是共享數(shù)據(jù)澎粟,對象中的存儲的是特有的數(shù)據(jù)
成員變量和靜態(tài)變量的區(qū)別?
? ? 1.兩個變量的生命周期不同
? ? ? 成員變量隨著對象的創(chuàng)建而存在 隨著對象的被回收而釋放
? ? ? 靜態(tài)變量隨著類的加載而存在 隨著類的消失而消失
? 2.調(diào)用方式不同
? 成員變量只能被對象調(diào)用
? 靜態(tài)對象可以被對象調(diào)用活烙,還可以被類名調(diào)用
? 3.別名不同
? 成員變量又稱-->實例對象
? 靜態(tài)變量也稱-->類變量
? 4.數(shù)據(jù)的存儲位置不同
? 成員變量存儲在--堆內(nèi)存--的對象中遣鼓,所以也叫對象的特有數(shù)據(jù)
? 靜態(tài)變量存儲在--方法區(qū)的靜態(tài)區(qū),所以也叫對象的共享數(shù)據(jù)
注意事項:
1.靜態(tài)方式只能訪問靜態(tài)成員(非靜態(tài)既可以訪問靜態(tài)回懦,又可以訪問非靜態(tài))
2.靜態(tài)方法中不可以使用this或者super關(guān)鍵字
3.主函數(shù)是靜態(tài)的
main函數(shù)解析--特殊之處:
1.格式固定
2.被jvm所識別和調(diào)用
public static void main(String[] args){}
public: 權(quán)限必須是最大的public
static:不需要對象調(diào)用,直接用主函數(shù)所屬類名調(diào)用
void:? 沒有具體的返回值
main:? 函數(shù)名健民,不是關(guān)鍵字 只是一個JVM識別的固定的名字
String[] args: 主函數(shù)的參數(shù)列表,是一個數(shù)組類型 每個元素都是字符串
靜態(tài)什么時候用
1.靜態(tài)變量
當(dāng)分析對象所具備的成員變量的值都是相同的蛉谜,這個成員便可以被靜態(tài)修飾
只要數(shù)據(jù)在對象中都是不同的,則為對象的特有數(shù)據(jù)型诚,必須存在于對象中,是非靜態(tài)的也搓。? 倘若是相同的數(shù)據(jù)涵紊,對象不需要修改,只需要使用即可颤练,不需要存在于對象中驱负,定義成靜態(tài)的。
2.靜態(tài)函數(shù)
函數(shù)是否用靜態(tài)修飾參考-->該函數(shù)功能是否訪問到對象中的特有數(shù)據(jù)跃脊;即該功能是否需要訪問非靜態(tài)的成員變量宇挫,是則為非靜態(tài),反之為靜態(tài)捞稿。
靜態(tài)代碼塊:
隨著類的加載而執(zhí)行,而且只執(zhí)行一次拼缝。
作用:
用于給類進(jìn)行初始化,
Atteneion:如果類中的方法都是靜態(tài)的,則該類是不需要創(chuàng)建對象的衰齐,為了保證不讓其創(chuàng)建該類對象继阻,可以將構(gòu)造函數(shù)私有化。