当前位置:K88软件开发文章中心编程语言APP编程Kotlin → 文章内容

Kotlin 类和对象

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-12 6:52:19

造函数来创建类实例的库。class Customer(val customerName: String = "")实例class Runoob constructor(name: String) { // 类名为 Runoob // 大括号内是类体构成 var url: String = "http://www.k88.net" var country: String = "CN" var siteName = name init { println("初始化网站名: ${name}") } // 次构造函数 constructor (name: String, alexa: Int) : this(name) { println("Alexa 排名 $alexa") } fun printTest() { println("我是类的函数") }}fun main(args: Array<String>) { val k88 = Runoob("k88.net", 10000) println(k88.siteName) println(k88.url) println(k88.country) k88.printTest()}输出结果为:初始化网站名: k88.netAlexa 排名 10000k88.nethttp://www.k88.netCN我是类的函数抽象类抽象是面向对象编程的特征之一,类本身,或类中的部分成员,都可以声明为abstract的。抽象成员在类中不存在具体的实现。注意:无需对抽象类或抽象成员标注open注解。open class Base { open fun f() {}}abstract class Derived : Base() { override abstract fun f()}嵌套类我们可以把类嵌套在其他类中,看以下实例:class Outer { // 外部类 private val bar: Int = 1 class Nested { // 嵌套类 fun foo() = 2 }}fun main(args: Array<String>) { val demo = Outer.Nested().foo() // 调用格式:外部类.嵌套类.嵌套类方法/属性 println(demo) // == 2}内部类内部类使用 inner 关键字来表示。内部类会带有一个对外部类的对象的引用,所以内部类可以访问外部类成员属性和成员函数。class Outer { private val bar: Int = 1 var v = "成员属性" /**嵌套内部类**/ inner class Inner { fun foo() = bar // 访问外部类成员 fun innerTest() { var o = this@Outer //获取外部类的成员变量 println("内部类可以引用外部类的成员,例如:" + o.v) } }}fun main(args: Array<String>) { val demo = Outer().Inner().foo() println(demo) // 1 val demo2 = Outer().Inner().innerTest() println(demo2) // 内部类可以引用外部类的成员,例如:成员属性}为了消除歧义,要访问来自外部作用域的 this,我们使用this@label,其中 @label 是一个 代指 this 来源的标签。匿名内部类使用对象表达式来创建匿名内部类:class Test { var v = "成员属性" fun setInterFace(test: TestInterFace) { test.test() }}/** * 定义接口 */interface TestInterFace { fun test()}fun main(args: Array<String>) { var test = Test() /** * 采用对象表达式来创建接口对象,即匿名内部类的实例。 */ test.setInterFace(object : TestInterFace { override fun test() { println("对象表达式创建匿名内部类的实例") } })}类的修饰符类的修饰符包括 classModifier 和_accessModifier_:classModifier: 类属性修饰符,标示类本身特性。abstract // 抽象类 final // 类不可继承,默认属性enum // 枚举类open // 类可继承,类默认是final的annotation // 注解类accessModifier: 访问权限修饰符private // 仅在同一个文件中可见protected // 同一个文件中或子类可见public // 所有调用的地方都可见internal // 同一个模块中可见实例// 文件名:example.ktpackage fooprivate fun foo() {} // 在 example.kt 内可见public var bar: Int = 5 // 该属性随处可见internal val baz = 6 // 相同模块内可见

上一页  [1] [2] 


Kotlin 类和对象