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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java疯狂讲义读书笔记第五章

發布時間:2023/12/10 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java疯狂讲义读书笔记第五章 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 類是一種自定義的數據類型,可以用類來定義變量,用類定義的變量都是引用變量,他們將會引用到類的對象,引用變量存于棧內存,實際對象放在堆內存。
  • 類常見三大成員:成員變量、成員方法、構造器。各成員之間可以相互調用,static修飾的成員不能訪問沒有static修飾的成員。
  • 成員變量用于定義該類的數據,方法用于定義類的功能,構造器用于構造該類的實例,Java通過new來調用構造器,從而返回該類的實例。
  • static用于修飾方法、成員變量,static修飾的成員表明他屬于這個類本身而不是該類的單個實例,可以通過類調用,也可以通過實例來調用。
  • this關鍵字總是指向調用該方法的對象,構造器中應用該構造器正在實例化的對象,在方法中引用調用該方法的對象。
  • 方法重載(@overload),方法名相同,參數不相同,不關心返回值相等與否。僅僅返回值不一樣系統報錯。
  • 當系統加載類或者創建類的實例的時候,將自動為成員變量分配內存空間,并自動為成員變量賦初值。
  • 局部變量定義后必須進過顯示的初始化后才能使用,為變量賦初值,系統才會為局部變量分配內存。
  • 棧內存中的變量無需系統垃圾回收,一般隨方法或代碼塊的結束而結束。
  • 訪問控制符,private < default < protected < public。private只能同一個類中訪問(表頭設置居中失敗了。。)

    類所在位置\修飾符privatedefaultprotectedpublic
    同一個類中truetruetruetrue
    同一個包中truetruetrue
    子類中truetrue
    全局范圍內true
  • public修飾的類,文件名必須與類名一致,外部類只能使用public或默認訪問控制符修飾,因為它不在任何一個類內部,private和protected無效。
  • 構造器(構造方法)用于創建對象時初始化,可重載。
  • 為了在構造器B中調用構造器A的初始化代碼,又不希望重新創建一個Java對象,用this關鍵字來調用構造器A。
  • 重寫(@Override),子類重寫繼承于父類的方法。方法名、形參列表相同,返回值類型比父類原函數返回值類型更小或相等,拋出的異常比父類方法聲明拋出的異常更小或相等。
  • 如果父類的方法是private類型,對子類就是隱藏的,子類無法重寫。
  • 在調用父類的構造方法時,super必在子類構造方法的第一行,否則會報錯。
  • super用于限定該對象調用從父類繼承得到的實例變量或方法。
  • 所謂多態就是指程序中定義的引用變量所指向的具體類型和通過該引用變量發出的方法調用在編程時并不確定,而是在程序運行期間才確定,即一個引用變量倒底會指向哪個類的實例對象,該引用變量發出的方法調用到底是哪個類中實現的方法,必須在由程序運行期間才能決定。

    public class BaseClass {public int book = 66;public void base() {System.out.println("父類的普通方法");}public void test() {System.out.println("父類的方法,會被子類覆蓋");} } public class AddClass extends BaseClass{ //AddClass子類 public void test() {System.out.println("B子類覆蓋父類的方法"); }public void sub() {System.out.println("B子類的普通方法"); } } public class SubClass extends BaseClass{ //SubClass子類 public void test() {System.out.println("子類覆蓋父類的方法"); }public void sub() {System.out.println("子類的普通方法"); }public static void main(String[] args) {BaseClass p = new SubClass();p.base(); //調用父類的普通方法p.test(); //調用SubClass子類重寫父類的test();方法BaseClass p1 = new AddClass();p1.base(); //調用父類的普通方法p1.test(); //調用AddClass子類重寫父類的test();方法 } }

  • instanceof前一個操作符通常是一個引用類型變量,后一個操作數通常是一個類或者接口,用于判斷前面的對象是否是后面的類,或者子類、實現類的實例。
  • instanceof運算符的作用是在進行強制類型轉換之前,判斷是否可以成功轉換,保證代碼的健壯性。
  • 編譯時類型,引用變量定義的類型。運行時類型,引用變量初始化時的類型。
  • 不要在父類的構造器中調用將要被子類重寫的方法,因為子類實例化時使用父類的構造器將執行子類重寫的方法,而此時子類對象為null,將引發空指針異常。
  • 初識化塊是類的第四個成員,創建對象時,系統先調用類里定義的初始化塊,如果有兩個,前面的先執行,后面的隨后執行,構造方法隨后再執行。

    public class Person { public int a;// 初始化代碼塊 {a = 9; }// 系統默認的無參構造方法,會執行但無法初始化屬性的值,如果里面寫上this.a = 99;則a的值變為99 public Person() {}public static void main(String[] args) {Person person = new Person();System.out.println(person.a); //輸出 a 的值為9 } }
  • 繼承中有靜態初始化塊,非靜態初始化塊,無參構造方法,有參構造方法(父類、子類都有)的執行順序:
    父類靜態初始化塊—>>子類靜態初始化塊—>>父類非靜態初始化塊—>>父類無參構造方法—>>父類的有參構造方法—>>子類非靜態初始化塊—>>子類無參構造方法—>>子類的有參構造方法。
  • 有初始化塊存在時,系統默認的無參的構造方法不能給屬性初始化為初值。
  • 總結

    以上是生活随笔為你收集整理的Java疯狂讲义读书笔记第五章的全部內容,希望文章能夠幫你解決所遇到的問題。

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