今日學(xué)習(xí)成果
1.控制可見性(訪問)的四個關(guān)鍵字:public蜘犁、protected姚炕、缺收骰!()菩咨、prviate
2.初始化的三個方法
3.關(guān)于參數(shù)傳遞吠式,java是值傳遞類型語言
4.關(guān)鍵字:static & final
5.關(guān)鍵字:super & self
6.重載(overload) & 重寫?(override)
7.多態(tài)和動態(tài)綁定
8.關(guān)鍵字:finalizer
9.反射的定義
10.main方法另外用處
1.訪問關(guān)鍵字:
首先private和protected都不能用于外部抽米,只能用于內(nèi)部類
pubic 無論是對類特占,方法,還是成員變量使用云茸,都表示可以任意訪問他所修飾的內(nèi)容
private所修飾的內(nèi)部類是目,方法和成員變量不能給任何人訪問,除了類內(nèi)部本身
protected所修飾的內(nèi)部類标捺,方法和成員變量只能被它的子類以及子類的繼承鏈下訪問懊纳。
缺省所修飾的一般能被本包(package)內(nèi)和自身的類所訪問网持。
2.初始化的三個方法
第一種:直接在類的定義中把最初的成員變量值所設(shè)定:
class A{
int number = 0汪诉;
}
第二種:使用構(gòu)造函數(shù)類隆嗅,在創(chuàng)建對象時自動完成
class student{
? private String name 磷支;
? public student(String aName ){
??? self.name = aName;
}
}
第三種:使用代碼塊
class Teacher{
private Srting name;
{?? self.name = "defaule"; ? }
}
public Teacher( ){
}
}
這種情況最不推薦用,代碼塊的初始化在對象一創(chuàng)建時就會執(zhí)行身弊,在構(gòu)造函數(shù)之前執(zhí)行。
3.關(guān)于參數(shù)傳遞列敲,java是值傳遞類型語言
? 我們知道在方法當(dāng)中如果傳進基本類型(int阱佛,double等等)的變量賦予給形參時,在這個方法中改變形參的值時戴而,外面原本的變量是不會受到改變的凑术。而傳入對象時則不同,但是這并不能表示他傳的是對象的引用地址所意。
public void swap( Student a,Student b){
Student temp = a;
a=b;
b=temp;
}
? 經(jīng)過交換之后淮逊,其實外部賦予a,b形參的2個對象依然沒有變化扶踊。因為他們只是把對對象引用地址拷貝一份賦值給了a和b泄鹏,所以函數(shù)執(zhí)行完之后a和b就會被釋放,但是外部的對象變量所指向的引用地址依然沒有變化
4.關(guān)鍵字:static & final
? 當(dāng)final賦予給成員變量時秧耗,意味著當(dāng)一次賦值之后就永遠不允許改變(如果第一次是被初始化的話也一樣)备籽。若是用來修飾成員方法時,那么這個類在繼承之后就不允許被重寫(override)分井。如果是修飾類的話车猬,則不允許被繼承,而且其中的成員方法被默認加上final修飾尺锚。只有成員變量除外珠闰,依舊可以改變。
? static用于成員變量時表明多個對象公共持有的一個狀態(tài)缩麸≈酰可以被改變,但是是代表一個全體對象共同的一個狀態(tài)杭朱。若是修飾類中的方法時阅仔,則表明它是一個類方法。無論這個類有沒有創(chuàng)造對象都可以直接使用這個方法弧械。它同樣無法修飾類八酒,只能修飾內(nèi)部類。
5.關(guān)鍵字:super & this
? super并不能賦值給任何變量刃唐,只是用來提醒編譯器它所指向當(dāng)前類的超類對象的指針羞迷。并且若要使用時必須在第一行進行界轩。而this可以進行變量賦值。this首先是一個對象,它可以代表調(diào)用這個函數(shù)的對象衔瓮。
6.重載(overload) & 重寫浊猾?(override)
? overload表明同樣的函數(shù)名但是參數(shù)類型返回值等不同,在對象接收到一個調(diào)用函數(shù)時會根據(jù)返回值和參數(shù)的類型和位置热鞍,進行同名但是實現(xiàn)不同的函數(shù)使用
? override表示的是子類繼承超類的時候葫慎,對超類中的同名函數(shù)進行重新內(nèi)部實現(xiàn)。子類接下來調(diào)用這個函數(shù)時則會使用自己定義的而非繼承于超類中的
7.多態(tài)和動態(tài)綁定
? 多態(tài)以為著一個子類的對象薇宠,可以被它本類的變量所指向偷办,同時也可以被它的超類中的變量所指向。
? 動態(tài)綁定意味著在運行時JVM會根據(jù)不同的對象執(zhí)行不同的方法澄港。
8.關(guān)鍵字:finalizer
? 在被垃圾回收時會自動執(zhí)行這個函數(shù)椒涯,但是不需要我們?nèi)ブ貙懰驗槲覀儾恢朗裁磿r候會被回收
9.反射的定義
? 在運行時發(fā)現(xiàn)類的更多方法和屬性
10.main方法另外用處
? 用來進行單元測試回梧》掀瘢可以在一個類中添加main方法然后在里面進行需要你需要的單元測試的內(nèi)容,在執(zhí)行時只用執(zhí)行這個包含main函數(shù)的類就行了漂辐。