王 第潜艇三天 引用类型 继承
面向對象第三天:
潛艇游戲第一天:
設計6個類,設計World類并測試
潛艇游戲第二天:
給6個類添加構造方法,并測試
潛艇游戲第三天:
設計偵察潛艇數組、魚雷潛艇數組、水雷潛艇數組、水雷數組、炸彈數組,并測試
設計SeaObject超類,6個類繼承SeaObject
給SeaObject設計兩個構造方法,6個派生類分別調用
將偵察潛艇數組、魚雷潛艇數組、水雷潛艇數組統(tǒng)一組合為SeaObject數組,并測試
回顧:
構造方法:構造函數、構造器、構建器--------復用給成員變量賦值
-
作用:給成員變量賦初值
-
與類同名,沒有返回值類型(連void)
-
創(chuàng)建對象時被自動調用
-
若自己不寫構造,默認一個無參構造,若自己寫了構造,則不再默認提供
-
可以重載
this:指代當前對象,哪個對象調用方法它指的就是哪個對象
this的用法:
this.成員變量名-------------------------訪問成員變量
當成員變量與局部變量同名時,若想訪問成員變量則this不能省略
null:表示空,沒有指向任何對象
若引用的值為null,則該引用不能進行任何操作了,若操作則發(fā)生 NullPointerException空指針異常
引用類型數組:
Bomb[] bs = new Bomb[3]; bs[0] = new Bomb(100,200); //1)new bs[1] = new Bomb(200,300); bs[2] = new Bomb(300,400); System.out.println(bs[0].width); //2)訪問屬性需打點筆記:
引用類型數組:
1)Bomb[] bs = new Bomb[3];bs[0] = new Bomb(100,200);bs[1] = new Bomb(200,300);bs[2] = new Bomb(300,400);System.out.println(bs[0].width); //輸出第1個炸彈的寬bs[1].x = 250; //修改第2個炸彈的x為250bs[2].move(); //第3個炸彈移動for(int i=0;i<bs.length;i++){ //遍歷所有子彈System.out.println(bs[i].height); //輸出每個子彈的高bs[i].move(); //每個子彈移動} 2)Bomb[] bs = new Bomb[]{ //了解new Bomb(100,200),new Bomb(200,300),new Bomb(300,400)};繼承:
-
作用:代碼復用
-
通過extends來實現繼承
-
超類/父類:共有的屬性和行為
派生類/子類:特有的屬性和行為
-
派生類既能訪問自己的,也能訪問超類的,但超類不能訪問派生類的
-
一個超類可以有多個派生類
一個派生類只能有一個超類-----------單一繼承
-
具有傳遞性
-
java規(guī)定:構造派生類之前必須先構造超類
-
派生類的構造方法中若沒有調用超類的構造方法,則默認super()調用超類的無參構造方法
-
派生類的構造方法中若自己調用了超類的構造方法,則不再默認提供
super()調用超類構造方法,必須位于派生類構造方法的第一行
//super的演示 public class SuperDemo {public static void main(String[] args) {Boo o = new Boo();} } class Coo{Coo(int a){} } class Doo extends Coo{Doo(){super(5); //調用超類的有參構造}/*//如下代碼為默認的:Doo(){super();}*/ } ? class Aoo{Aoo(){System.out.println("超類構造");} } class Boo extends Aoo{Boo(){//super(); //默認的,調用超類的無參構造System.out.println("派生類構造");} } -
super:指代當前對象的超類對象
super的用法:
-
super.成員變量名----------------------訪問超類的成員變量(了解)
-
super.方法名()---------------------------調用超類的方法----------明天講
-
super()-------------------------------------調用超類的構造方法
向上造型:---------------------代碼復用
-
超類型的引用指向了派生類的對象
-
能點出來什么,看引用的類型-----------這是規(guī)定,記住就OK了
精華筆記:
引用類型數組:
繼承:
-
作用:代碼復用
-
通過extends來實現繼承
-
超類/父類:共有的屬性和行為
派生類/子類:特有的屬性和行為
-
派生類既能訪問自己的,也能訪問超類的,但超類不能訪問派生類的
-
一個超類可以有多個派生類
一個派生類只能有一個超類-----------單一繼承
-
具有傳遞性
-
java規(guī)定:構造派生類之前必須先構造超類
-
派生類的構造方法中若沒有調用超類的構造方法,則默認super()調用超類的無參構造方法
-
派生類的構造方法中若自己調用了超類的構造方法,則不再默認提供
super()調用超類構造方法,必須位于派生類構造方法的第一行
-
super:指代當前對象的超類對象
super的用法:
-
super.成員變量名----------------------訪問超類的成員變量(了解)
-
super.方法名()---------------------------調用超類的方法----------明天講
-
super()-------------------------------------調用超類的構造方法
向上造型:---------------------代碼復用
-
超類型的引用指向了派生類的對象
-
能點出來什么,看引用的類型-----------這是規(guī)定,記住就OK了
補充:
繼承意味著代碼雖然我沒有寫,但也屬于我,只是沒有寫在一起而已
泛化:將共有的抽出來的過程,泛化是設計層面的概念,從代碼實現層面來說咱們就是繼承,泛化就是繼承
繼承要符合is a(是一個)的關系
總結
以上是生活随笔為你收集整理的王 第潜艇三天 引用类型 继承的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Conway生命游戏
- 下一篇: Revit API:找到轮廓族的路径