面向對象編程:
就是面向類來編程,有類才會有對象
類:
是具有相同屬性和行為的一個模板(它是一個抽象的概念)
對象:
他是一個具體的
如何創(chuàng)建一個對象(實例化)
語法? : 類名 引用變量名 = new 構造器也可以說是類名();
如何訪問對象中的屬性以及方法
語法:引用變量名.屬性名/引用變量名.方法名()
如果你想要使用哪個類中的方法,你就需要先創(chuàng)建類的對象,然后才能訪問此對象中的方法
構造器(構造方法)
規(guī)則:
構造方法的名稱要與類名相同
構造方法是沒有返回值類型的
如果一個類中沒有聲明任何顯示的構造方法,系統(tǒng)會默認提供一個無參數(shù)的構造方法
如果一個類中顯示的聲明了一個構造方法,系統(tǒng)就不再提供無參數(shù)的構造方法
語法:
public 類名 (參數(shù)列表){
}
構造器在實際中的作用:
構造器要以負責初始化的工作(初始化屬性,初始化對象)
this表示當前對象自身
如何調用構造方法:
使用new 構造器 (參數(shù))
繼承 (extends):
Java中的繼承表示擴展的概念,不同于顯示意義中的繼承
他主要體現(xiàn)現(xiàn)實世界中,事物之間一般類與特殊類之間的關系
可以理解:
一般的概念鬧含特殊的概念。判斷這個關系的時候可以用 IS A 的原則
B is a A (B是一種A) 這句話是成立的 B就是特殊的,A是一般的
X is a Y(X是一種Y)? 這句話是不成立的 ,因為不能判定兩者的關系
例如:
燕子是一種鳥? 這句話是成立的。燕子是特殊的。鳥是一般的。屬于繼承關系
? ? ? ? ? 班長是一種狗 這句話是不成立的。班長和狗是沒有任何關系的
在Java中如果想使用繼承的關系 一定要滿足IS A 原則
特殊類(子類)擁有一般類(父類、超類)的屬性和行為;
? ? ? 基本的語法:
public class B extends A {
? ? ? }
Java中只支持單繼承?
public class B extends A {}
關于Java中繼承的特點
1. 一個類只能有一個直接父類,就可以成為單繼承
2.一個類如果作為父類,那么子類的數(shù)量是沒有限制的
3.如果一個類沒有寫明顯示的父類,那么默認會繼承Object類//Object 對象
public class Test extends Object{}
Swallow? 繼承? ->? Bird? ? 繼承? ->? Object
子類構造方法的特點:
子類會調用父類構造方法的時候有以下三種情況
1.如果父類和子類都沒有顯式的聲明和構造方法,是沒有問題的
2.如果父類沒有顯式的聲明構造方法,而子類顯式的聲明了構造方法
3.如果父類顯式的聲明了一個構造方法,那么子類也一定要顯式的聲明構造方法
總結:
子類一定要在構造方法的第一行代碼中調用父類的構造方法super(),如果父類中有默認的無參數(shù)的構造方法,那么 子類super()式可以省略的(實際不是默認調用無參數(shù)的構造器)
調用父類中的構造器方法?
super(參數(shù)列表)
super 關鍵字
表示調用父類構造器的內容
可以訪問父類中的(屬性,方法,構造器)
屬性 super.屬性名
方法 super.方法名
構造器 :super(參數(shù)列表)
this關鍵字
表示調用自身的內容(屬性,方法,構造方法)
屬性:this.屬性
方法:this.方法名(參數(shù)列表)
構造器:this(參數(shù)列表)