Kotlin學習之 5 7 封裝類

2021-08-03 05:43:27 字數 719 閱讀 9219

封裝類是用來表示嚴格的類層級,當乙個值可以是乙個型別集合中的任意乙個,而不是其他型別時。他們的相當於是列舉類的擴充套件,對於每乙個列舉型別的值得集合也是嚴格定義的,但是每乙個列舉常量有且僅有乙個單例,這樣乙個封裝類的子類可以有多個包含狀態的例項。

要宣告乙個封裝類,需要在類名前面用sealed描述符標識。乙個封裝類可以有子類,但是他們必須全部都和封裝類定義在同乙個檔案裡。

sealed

class

expr

data class const

(val

number: double) : expr

()data class sum

(val

e1: expr, val

e2: expr) : expr

()object

notanumber : expr()

這個例子中使用了kotlin 1.1中新新增的特性,允許讓資料類擴充套件其他類,包括封裝類。

注意,那些擴充套件乙個封裝類的子類的類可以定義在任何地方,不要求在同乙個檔案中。

使用封裝類最關鍵的好處是在when表示式中使用它們。 如果可能要驗證所有的條件語句,你不需要新增乙個else分支。

fun eval(expr: expr): double = when(expr)

Python類學習(五) 封裝

封裝 將物件的狀態資訊隱藏在物件內部,不允許外部程式直接訪問物件內部資訊,而是通過該類提供的方法實現對內部資訊的操作和訪問 作用 讓使用者只能通過事先預定的方法訪問例項引數,從而可以在該方法中加入控制邏輯,限制對屬性的不合理訪問 隱藏類的實現細節 python並沒有提供類似於其他語言的private...

C 學習(8) 封裝

c 物件導向的三大特性 封裝 繼承 多型 c 認為萬事萬物都可以為物件,物件上有其屬性和行為 具有相同性質的物件,可以抽象為類 封裝是c 物件導向三大特性之一 封裝的意義 封裝意義一 在設計類的時候,屬性和行為寫在一起,表現事物 語法 class 類名 示例1 設計乙個圓類,求圓的周長 includ...

3 2封裝的日期類

public class mydate 共有類,與原始檔同名 public mydate int year,int month,int day 建構函式,指定日期 public mydate 無參構造方法。預設指定日期 public mydate mydate d 過載函式 public void ...