国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

面向對象第三天

2019-11-15 00:58:09
字體:
來源:轉載
供稿:網友
面向對象第三天

1:復習

1:this關鍵字

1:this表示當前對象的引用。

2:this訪問本類中的成員變量和成員方法。也可以訪問構造方法,必須放在第一條語句。

3:this可以作為實參來傳遞

2:面向對象三大特征:封裝,繼承,多態。

2.1:封裝:屬性私有化,提供公共的方法供外界訪問。

2:繼承

2.1:當分析一些事物時,發現他們有很多相同的地方,為了提高代碼的可重用性,可以將他們相同的部分提取出來,放到一個類里。讓其他的事物跟這個類建立關系,而這種關系就叫繼承。用關鍵字extends來表示。Extends 英文是擴展的意思。(子類也稱派生類)

2.2:產生繼承關系后對子類的影響

1:子類可以擁有父類的所有的屬性或者方法(以后講訪問權限.)

2.3:super:

1:表示父類的標識,也就是一個名字罷了。

2:作用

1:可以訪問父類的成員 super.成員變量名。

2:訪問父類的方法 super.方法名( )

3:訪問父類的構造方法 .創建子類對象時,先默認調用父類的無參構造方法,再調用子類的相應構造方法。調用父類的構造方法必須是構造方法中的第一條語句。如果需要調用父類的有參構造方法,必須顯式得調用。

3:this與super的區別

1:作用,this表示當前對象的引用,而super表示父類的標識。

2:訪問。this可以訪問本類的成員變量和方法,而super訪問父類的成員變量和方法。

3:相同點。訪問構造方法時,都必須放在構造方法的第一條語句。它們不會相遇。如果在子類的構造方法中顯式得調用自己的構造方法,則不會調用父類的構造方法。如果沒寫,則隱式得會調用父類的無參得構造方法。

4:this可以作為實參來使用。但是super不可以。(為什么不可以?)

super只是父類的一個標識,沒有實質性的意義,并不牽涉到內存。而this是表示對象的引用,能夠代表對象的,指向引用對象的首地址。

2.4:方法的重寫==方法的覆蓋==方法的復寫

不同的人有不同的習慣叫法,然而重寫、覆蓋、復寫都是一個意思,還有方法和函數也是一樣的東西。

1:什么時候子類的方法會重寫父類的方法?當父類的方法的功能無法滿足子類的功能時,這個時候會重寫。不僅僅是代碼重用!

2:什么是方法重寫?

1:方法的聲明相同,方法體一般情況下是不同的。

訪問權限 返回值類型 方法名(參數列表).

訪問權限可以不一樣。必須符合一定的規則。后面講訪問權限的時候再說,現在就認為訪問權限一樣的。子類中重寫父類的方法,訪問權限必須大于或者等于父類的訪問權限。

拋出的異常也有所要求。

3:方法的重載跟方法重寫的區別

重寫的前提是繼承extends!extend是是擴展的意思,取這樣的名字都是有一定的含義的,結合名字的本意更容易理解。

1:方法的重載發生在同一個類里。而方法重寫發生在父子類里。

2:方法的重載是方法名相同,參數列表不一樣。而方法重寫是方法名和參數列表,返回值類型都必須相同,方法聲明要相同,方法體不一樣。

3:功能上。方法的重寫是為了功能的擴展。

4:繼承的細節

1:java中只能單繼承,可以多層繼承。

2:java中為什么不能多繼承? 容易產生沖突,假設能多繼承,而繼承的父類有相同的方法,那該調用那個方法呢?

3:什么時候會產生繼承關系呢?

當類與類之間存在著所屬關系時,才具備了繼承的前提。a是b中的一種。a繼承b。狼是犬科中的一種。所以判斷所屬關系,可以簡單看,如果繼承后,被繼承的類中的功能,都可以被該子類所具備,那么繼承成立。如果不是,不可以繼承。

4:創建對象是建議創建最子類的對象:這樣既可以用父類方法也可用子類方法

3:

3.1:包和訪問權限。

3.1.1:包

包的作用:解決類名沖突的和類的歸類。相似作用的類會放在同一個包里。

如何定義包:package 包名; 必須放在文件中的第一條語句(不包括注釋)。

命名規范:都是小寫。一般都是域名的反向。

www.baidu.com--->com.baidu.entity: 編譯以后會自動生成com文件夾,baidu文件夾,entity文件夾。baidu文件夾在com里,entity在baidu里

導包 : import 包名.類名

3.1.2:訪問權限:PRivate:私有的。默認的(不寫就是默認)。protected:受保護的。public:公共的。

private :只能在本類中訪問。不可以修飾類。

默認的: 同一個包的類可以訪問

protected: 同一個包的類可以訪問,不同包的子類可以訪問。不可以修飾類。

public:所有的類都可以訪問。

private < 默認的 < protected <public

3.2:static.:靜態

3.2.1:當一個類的所有對象的一個成員變量的值都是一樣的時候,為了節省內存,可以將這個成員變量設置為static,那么這個變量在內存中只有一份空間,不管創建多少個對象。也可以說達到了共享的目的,所有對象共享這個數據,既然是共享的,那么值改變一次,所有的對象的這個值也就變了。

3.2.2:靜態成員變量的訪問以及加載的順序。

靜態成員變量可以用類去訪問,也可以用對象去訪問,一般的情況下都用類去訪問。

靜態成員是隨著類的加載而加載的,這個時候不一定會有對象。它在內存中存在的生命周期是最長的。

加載順序:先分配靜態成員變量 ,靜態方法 -------創建對象后,再分配非靜態成員變量空間-----調用非靜態方法時,非靜態方法才會進棧。

3.2.3:靜態方法(先加載)不可以訪問非靜態成員(后加載),但是非靜態方法可以訪問靜態成員。

當一個方法沒有訪問這個類的成員或者這個類的非靜態成員時,可以將這個方法定義為靜態方法。以方便調用。

3.2.4:靜態代碼塊:擴展。

執行順序:靜態代碼塊-------構造代碼塊------構造方法。

靜態代碼塊:只會執行一次。

構造代碼塊和構造方法:new一次就執行一次

靜態代碼塊的作用?對靜態成員進行初始化的。

3.3:final

3.3.1: final:表示最終的。

3.3.2:final修飾方法,則表示子類不能重寫該方法

final修飾成員變量,表示這個變量的值不能再改變,并且必須要顯式初始化。非靜態final成員可以在構造代碼塊或者構造方法內初始化,且只能在其一進行初始化,如果是在構造方法中初始化則可以在每個構造函數中進行賦值!靜態final成員可以在靜態代碼塊內初始化。由于它的值在后面不能修改,所以很多時候將final和static一起使用,來修飾一個常量。這個常量表示在整個類或者項目中用的比較多,而且都不會修改值,只會用這個常量的值。

final修飾類:表示這個類是最終類,不能被繼承。

3.4:抽象類。

3.6:接口

3.7:多態

3.8:設計模式:單例模式,簡單工廠模式。

3.9:內部類。接口回調


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 栾川县| 定襄县| 密云县| 康保县| 康定县| 沙湾县| 萍乡市| 即墨市| 八宿县| 镇江市| 隆子县| 江孜县| 新龙县| 克拉玛依市| 泌阳县| 定西市| 临潭县| 福贡县| 永仁县| 九台市| 日照市| 民乐县| 麻栗坡县| 五原县| 连南| 库伦旗| 和硕县| 黄龙县| 台安县| 伊金霍洛旗| 城固县| 板桥市| 赫章县| 瑞昌市| 翁牛特旗| 鄂尔多斯市| 祁连县| 柳河县| 辽中县| 汶上县| 浑源县|