目錄:
1.列舉
2.註解
3.lambda表示式
4.方法引用
首先回顧多例設計模式的特點:構造方法私有化,類內部需要提供若干個例項化物件,後面通過static方法返回。
例:
class color
public static color getcolor(int flag)
}@override
public string tostring()
}public class test2
}
以上做法是在jdk1.5以前的做法,這樣做的目的是限制本類例項化物件的產生個數。但是從jdk1.5開始有了列舉,以上**可以使用列舉來取代。
語法:
enum color
使用enum關鍵字定義的列舉結構實際上是預設繼承了enum類的列舉類。
enum類中存在兩大屬性:name:列舉物件名稱
ordinal:列舉物件數字下標
public final string name():取得列舉物件名稱
public final int ordinal():取得列舉物件下標
例:證明enum是否為enum的子類,使用enum的方法即可
例:取得所有列舉類物件:列舉類.values()
enum與enum的區別:enum是乙個關鍵字,使用enum定義的列舉類本質上就相當於乙個類繼承了enum這個抽象類而已。列舉中若定義構造方法,構造方法必須用private封裝(列舉類是多例類,列舉類外部無法產生物件)
列舉類若定義其他結構,列舉物件宣告必須放在列舉類的首行。
enum color
//不覆寫tostring會呼叫父類的tostring,父類的tostring輸出的是名字
列舉中的物件自動變為介面物件
inte***ce icolor
enum color implements icolor
//不覆寫tostring會呼叫父類的tostring,父類的tostring輸出的是名字
列舉的最大特點是只有指定的幾個物件可以使用。
例:定義乙個表示性別的列舉類,只能有兩個物件
當子類覆寫父類方法時,此註解檢查覆寫的方法是否正確宣告,只有滿足覆寫方法要求才會編譯通過,否則編譯出錯。
建議使用者不使用原有的類&方法時,可以在類或方法上@deprecated表示當前版本中不推薦使用。
呼叫某些操作可能產生問題的時候會出現警告資訊,但是警告資訊並不是異常。
jdk1.8之後介面允許出現以下兩類方法:
a.使用default定義的普通方法,需要通過介面物件來呼叫。
b.使用static定義的靜態方法,直接使用介面名呼叫。
inte***ce iinte***ce
//直接通過介面名呼叫
static void method()
}class inte***ceimpl implements iinte***ce
}public class test1
}
要想使用函式式程式設計有乙個前提:介面必須只有乙個方法。如果存在兩個以上的方法,無法使用函式式程式設計。
inte***ce add
public class test1
}
如果現在某個介面就是為了函式式程式設計而生的,在定義時只能存在乙個方法,因此有乙個新的註解@functionalinte***ce,此註解會檢查該介面中是否只存在乙個抽象方法,存在兩個抽象方法以上編譯報錯。
語法:
方法體只有一行**時:(方法引數)->具體的方法體**實現;
當方法有返回值時,單行**的lambda表示式可以省略return語句。
當方法體有多行**時,
(方法引數)->
方法引用就是給現有方法起個別名。
方法引用一共有四種形式:
類名稱 :: 靜態方法名稱
inte***ce iutil
public class test1
}
例項化物件 :: 普通方法
inte***ce iutil
public class test1
}
類名稱 :: 普通方法名
inte***ce iutil
public class test1
}
類名稱 :: new
class person
@override
public string tostring() ';
}}inte***ce iutil
public class test1
}
JavaSE JavaSE之新特性概述
1.lambda函式式程式設計 2.可變引數 傳遞多類引數 3.自定義異常類 4.萬用字元?extends 類,super 類的示例 1.lambda函式式程式設計 functionalinte ce inte ce imessage public class test message.fun 2....
JavaSE 網路程式設計 概述
將不同區域的計算機連線到一起 種類 區域網 都會網路 網際網路 區分計算機上的軟體的 房子的門窗 2個位元組 0 65535 共65536個 1 在同一協議下,埠號不能重複。不同協議下,可以重複。2 1024以下的埠不要使用 例 80 http,21 ftp url 同一資源定位符 uri 同一資源...
java SE 高階特性02
包裝類 基本資料類對應的引用型別,就稱為包裝類 裝箱 將基本型別轉換為對應的包裝類型別,我們成為裝箱 拆箱 將包裝類型別轉換為基本型別,拆箱 string型別轉換為數值型別的方法 new integer string integer.parseint string integer.valueof s...