日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

王 第潜艇三天 引用类型 继承

發(fā)布時間:2024/3/13 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 王 第潜艇三天 引用类型 继承 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

面向對象第三天:

潛艇游戲第一天:

  • 設計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了

    package ooday03; //向上造型的演示 public class UploadDemo {public static void main(String[] args) {Eoo o1 = new Eoo();o1.a = 1;o1.show();//o1.b = 2; //編譯錯誤//o1.test(); //編譯錯誤,超類不能訪問派生類的 ?Foo o2 = new Foo();o2.b = 1;o2.test();o2.a = 2; ?//正確o2.show(); //正確,派生類可以訪問超類的 ?Eoo o3 = new Foo(); //向上造型o3.a = 1;o3.show();//o3.b = 2; //編譯錯誤//o3.test(); //編譯錯誤,能點出來什么,看引用的類型} } ? class Eoo{int a;void show(){} } class Foo extends Eoo{int b;void test(){} }
  • 精華筆記:

  • 引用類型數組:

  • 繼承:

    • 作用:代碼復用

    • 通過extends來實現繼承

    • 超類/父類:共有的屬性和行為

      派生類/子類:特有的屬性和行為

    • 派生類既能訪問自己的,也能訪問超類的,但超類不能訪問派生類的

    • 一個超類可以有多個派生類

      一個派生類只能有一個超類-----------單一繼承

    • 具有傳遞性

    • java規(guī)定:構造派生類之前必須先構造超類

      • 派生類的構造方法中若沒有調用超類的構造方法,則默認super()調用超類的無參構造方法

      • 派生類的構造方法中若自己調用了超類的構造方法,則不再默認提供

      super()調用超類構造方法,必須位于派生類構造方法的第一行

  • super:指代當前對象的超類對象

    super的用法:

    • super.成員變量名----------------------訪問超類的成員變量(了解)

    • super.方法名()---------------------------調用超類的方法----------明天講

    • super()-------------------------------------調用超類的構造方法

  • 向上造型:---------------------代碼復用

    • 超類型的引用指向了派生類的對象

    • 能點出來什么,看引用的類型-----------這是規(guī)定,記住就OK了

  • 補充:

  • 繼承意味著代碼雖然我沒有寫,但也屬于我,只是沒有寫在一起而已

  • 泛化:將共有的抽出來的過程,泛化是設計層面的概念,從代碼實現層面來說咱們就是繼承,泛化就是繼承

  • 繼承要符合is a(是一個)的關系

  • 總結

    以上是生活随笔為你收集整理的王 第潜艇三天 引用类型 继承的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。