####一. class
class person
複製**
abstract //抽象類標示accessmodifierfinal //標示類不可繼承,預設屬性 enum //標示類為列舉 open //類可繼承,類預設是final的 annotation //註解類
private //僅在同乙個檔案中可見 protected //同乙個檔案中或子類可見 public //所有呼叫的地方都可見 internal //同乙個模組中可見
class person
get() = field.touppercase()
var age: int = 0
}複製**
主構造方法
class person constructor (name: string)
}複製**
和上面的區別在於 上面的name只是作為引數傳遞,而下面的方式中name直接成為類的成員屬性
class person constructor(val name: string)
} 複製**
主構造方法的初始化**可以放到init**塊中,如果沒有註解或修飾符則constructor可以省略 2. 二級構造方法
class person
}複製**
如果類有主構造方法, 那麼每個二級構造方法都必須委託給主構造方法, 要麼直接委託, 要麼通過其他二級構造方法間接委託. 委託到同乙個類的另乙個構造方法時, 使用 this 關鍵字實現
class person(val name: string)
}複製**
例項化 kotlin中沒有new關鍵字
val p = person("tom")
複製**
abstract class parent
class children : parent
() }
複製**
class outer
}}內部類使用inner修飾,持有外部類的引用,可以訪問外部類的屬性和方法
複製**
class outer
}複製**
巢狀類和內部類的區別在於巢狀類沒有外部類的引用
sealed class expr
複製**
data class person(var name: string, var age: int, var gender: int)
複製**
object singleton
}fun main(args: array)
複製**
####二.inte***ce
inte***ce myinte***ce
}複製**
class myclass :myinte***ce
override fun bar
() }
複製**
inte***ce myinte***ce
//實現方式一
class myclass(override var name: string) : myinte***ce
//實現方式二
class myclass : myinte***ce
}複製**
inte***ce a
fun bar
() }
inte***ce b
fun bar
() }
class c : a, b
override fun bar
() }
複製**
Kotlin學習4 5 抽象類和介面
在定義乙個類時,通常需要定義一些方法來描述該類的行為特徵,但有時這些方法的實現方式是無法確定的。因此,可以將其定義為抽象方法,抽象方法使用關鍵字 abstract 修飾,該方法沒有方法體,在使用時需要實現其方法體,當乙個類中包含了抽象方法,該類必須使用關鍵字abstract 定義為抽象類。語法格式如...
Kotlin學習筆記(三) Kotlin密封類
前言 密封類,可以理解為列舉,規定了有限個型別,不可以存在其他型別,但列舉每個列舉常量只存在乙個示例,但是密封類的子類可以有多個示例,所以可以將密封類看做是列舉的拓展,基於列舉,高於列舉,青出於藍而勝於藍。正文密封類和普通類的區別,在於密封類使用了sealed修飾符,雖然密封類也可以有子類,但是所有...
Kotlin抽象類和介面
一 首先了解一下物件導向的基本概念 1.本質上就是解決如何用程式描述世界的問題 2.討論如何把實際存在的東西對映成程式的類和物件 3.一種程式設計的思路 思想 方法 4.程式設計層面的概念 5.設計模式 前人的程式設計經驗 6.乙個類可以單繼承 類 多實現 介面 二 下面來看乙個例子 package...