天天看點

《Thinking In Java》筆記(4)

上學期在書上忘記整理的筆記。可能有些點是當時從網上找來的。不完全原創。

1.       Static 方法

(1)        僅能調用其他的static類型的方法

(2)        隻能通路static類型的資料

(3)        不能以任何方法引用this 或 super

(4)        Static的方法和變量能獨立于任何對象而被使用

2.       Constructors

(1)        Cannot  be  inherited

(2)        Cannot  have a  return  type

(3)        The  invoking  chain  of  constructors

3.       構造函數的繼承

(1)        無定義構造函數時,系統自動補充。 //子類可預設調用。

(2)        有定義帶參數的構造函數時,系統不補充無參數的構造函數。//這時子類不能調用父類的無參數構造函數。必須顯式的調用父類帶參數的構造函數。

4.       InterfaceVS Abstract Class

(1)        AC(抽象類)表示一種繼承關系,一個類隻能使用一次繼承,但一個類能實作多個接口。

(2)        AC可以有自己的資料成員,也可有非abstract方法,而interface,隻能有static final 的資料成員,并且所有方法都是abstract的。

(3)        AC表示“is-a”的關系。Interface表示“like-a”的關系。

(4)        AC中的變量預設是friendly 類型,其值可在子類中重定義,克重新指派。

(5)        Interface中的方法預設都是public  abstract 類型。

(6)        AC有構造器,Interface沒有。

(7)        Interface不能有body(方法體),連括号都不能有。

5.       String.subString(startindex, endindex)

傳回的子串包含startindex,不包含endindex。

String str=“Hello World”;str.subString(2,7);//傳回值為”llo W”

6.       Scanner  P310

(1)        基于正規表達式的檔案掃描器//吐槽一句,竟然正則到現在都不會用,真是渣

(2)        hasNextXXX()、NextXXX()。String時XXX可省略

(3)        預設使用空白作為分隔符,useDelimiter()修改分隔符

(4)        隻能讀取,不能寫入

7.       Runnable-run()

(1)        生成自己的類對象

(2)        從系統那裡得到Thread

(3)        Thread調用類對象,使其start

Test t= new Test();

Thread thread=new Thread(a);

Thread.start();

8.       Comparable–compareTo(Object o)

Comparator –compare(Object o1,Object o2)

(1)        一個類實作了Comparable 接口則表明這個類的對象之間是可以互相比較的,這個類對象組成的集合就可以直接使用sort方法排序。

(2)        Comparator在以下兩種情況下使用:

1)  類的設計師沒有考慮比較問題而沒有實作Comparable,可以通過Comparator在類外部實作。

2)  可以使用多種排序标準(升序/降序)。

Array.sort(users, newUserComparator() );

9.       Cloneable–clone()

Public Object clone() throwsCloneNotSupportedException{

           return super.clone();

}

(1)        Java将clone() 的通路級别設定為protected,以限制外部類通路。

(2)        Cloneable接口是一個空的接口,沒有聲明任何屬性和方法,該接口隻是告訴JVM,該接口的實作類需要開放“克隆”功能。