CSS3新增屬性
面向物件程式設計(OOP):以類的方式組織程式碼,以物件的組織(封裝)資料
面向過程:
- 步驟清晰簡單,按部就班往下做
- 面向過程適合處理一些較為簡單的問題
面向物件:
- 物以類聚,分類的思維模式,思考問題首先解決問題需要哪些分類,然後對這些分類進行單獨思考。最後才對分類下的細節進行面向過程的思索。
- 面向物件適合處理複雜的問題,適合處理需要多人協作的問題。
對於描述複雜的事物,為了從巨集觀上把握、從整體上合理分析,我們需要使用面向物件的思路來分析整個系統,但是具體到微觀操作,仍然需要面向過程的思路去處理
抽象
三大特性:
1、封裝 :高內聚,低耦合
類的內部資料操作細節自己完成,不允許外部干涉;僅暴露少量的方法給外部使用
2、繼承
繼承的本質是對某一批類的抽象,從而實現對現實世界更好的建模。
extends的意思是“擴充套件”,子類是父類的擴充套件。
Java中類只有單繼承,沒有多繼承。(一個子類只能有一個父類,一個父類可以有多個子類)
在Java中,所有的類都預設直接或間接繼承Object類。
Ctrl + H :顯示繼承關係
super和this對比:
代表的物件不同: this:本身呼叫者這個物件 super:代表父類物件的應用
前提不同:this沒有繼承也可以使用 super只能在繼承條件下才可以使用
構造方法不同:this(); 本類的構造 super();父類的構造
super注意點:
1、super呼叫父類的構造方法,必須在構造方法的第一個
2、super必須只能出現在子類的方法或者構造方法中
3、super和this不能同時呼叫構造方法
方法的重寫:都是方法的重寫,和屬性無關
需要有繼承的關係,子類重寫父類的方法
方法名必須相同、引數列表必須相同、修飾符範圍可以擴大不可以縮小(public>protected>default>private)、丟擲的異常:範圍可以被縮小但不能擴大
父類的引用指向了子類,靜態方法的呼叫只和定義的資料型別有關
為什麼需要重寫:
1.父類的功能子類不一定需要,或者不一定滿足Alt+Insert:override
3、多型:
注意事項:
1、多型是方法的多型,屬性沒有多型
2、父類和子類,有聯絡 型別轉換異常(ClassCastException)
3、存在的條件:有繼承關係、方法需要重寫、父類的引用指向子類物件
方法:同一個方法可以根據傳送物件的不同而採用多種不同的行為方式
修飾符 返回值型別 方法名(){
//方法體 ;
return 返回值 ;
}
instanceof 判斷是否為父子類
system.out.printlf(A instanceof B); //A和B之間是否存在父子類關係,是則通過,否則報錯
子類轉換為父類,可能會丟失自己本來的一些方法。
構造器:
一個類即使什麼都不寫,它也會存在一個方法
類中的構造器也稱為構造方法,是在進行建立物件的時候必須要呼叫的,並有以下兩個特點:
1、必須和類名相同
2、必須沒有返回值型別,也不能寫void
作用:
1、使用new關鍵字,必須要有構造器(本質就是在呼叫構造器)
2、用來初始化值
注意:定義了有參構造之後,如果想使用無參構造,需要顯示地定義一個無參構造
alt + Insert :自動生成一個構造器