kotlin 第五站
来源:互联网 发布:linux if语句使用方法 编辑:程序博客网 时间:2024/06/05 15:15
//Kotlin 类和对象//Kotlin 类包含:构造函数、初始代码块、函数、属性、内部类、对象说明//Kotlin 中使用class 关键字声明类,后面紧跟类名class Person(sex:Int){//主构造函数 //属性定义 //类的属性可以用var关键字声明可变的,否则使用只读关键字val声明为不可变的 var name:String?=null//手动实现get、set方法 get() = field //field 为后端变量 set(value) {value}//value 表示传入的值 var city:String?=null//如果不写get、set方法Kotlin会生成默认的get/set方法完成赋值取值 val sex :Int?//默认实现get方法,但必须要在构造方法中初始化 var height = 154.5f private set //把set方法私有化,只能在本类中进行赋值,该类对象不能进行赋值 init {//构造方法 this.sex = sex this.height = 160f } fun run(){ println("person can run")//成员函数 }}class Person2(name:String){ //类可以有二级构造函数,需要在前面添加constructor //如果类有主构造函数,每个次要构造函数都要直接或者间接调用这个主构造函数 //如果一个非抽象类没有声明构造函数(主构造函数和次构造函数),会自动生成一个无参的构造函数 //构造函数都是public,如果不想类有公共的构造函数可以声明成private constructor() constructor(name : String , age : Int):this(name){//次构造函数 this.age=age } var name :String? = null var age : Int = 0 init { this.name = name }}//抽象类//抽象是面向对象的特征之一,类本身或类中部分成员都可以声明成abstract的。//抽象成员在类中不存在具体的实现//注意:无需对抽象类或成员标注open注解open class Base{//如果类不用open修饰,该类就是final 不允许继承 open fun f(){}// 如果方法不用open修饰,方法也是final 的不允许重写}abstract class Derived:Base(){ override abstract fun f()}//嵌套类 我们可以把类嵌套在其他类中//内部类 内部类使用inner关键字来表示class Outor{ //外部类 private val bar = 1 var ss = 9 class Nested{ //嵌套类 fun foo() = 2 } inner class Inner{ fun foo() = println("bar = $bar") fun innerTest(){ var o = this@Outor //为了消除歧义,要访问来自外部作用域的this,需要使用this@lable println("内部类可以引用外部类的成员,例如:" + o.ss) } }}/** * 第一接口 */interface ITestInterface{ fun test()}class Test{ var v = "成员属性" fun setInterface(inter:ITestInterface){ inter.test() }}fun main(args:Array<String>){ var person = Person(1)// Kotlin 中没有new关键字 person.run() person.city = "北京" person.name = "张三" val va = Outor.Nested().foo()//调用格式 外部类.嵌套类().嵌套方法或属性 println(va) val inn = Outor().Inner() inn.foo() inn.innerTest() var test = Test() /** * 通过对象表达式创建接口对象,即匿名内部类实例 */ test.setInterface(object : ITestInterface{ override fun test(){ println("对象表达式创建匿名内部类的示例") } })}/** * 类的修饰符 * 类的修饰符包括 classModifier 和 accessModifier * classModifier:类属性修饰符,标示类本身特性 * abstract 抽象类 * final 类不可被继承 默认属性 * enum 枚举类型 * open 类可继承 , 类默认是final * annotation 注解类 * * accessModifier 访问权限修饰符 * private 仅在同一个文件中可用 * protected 同一个文件中或子类中可见 * public 所有调用的地方都可见 * internal 同一个模块中可见 * */
阅读全文
0 0
- kotlin 第五站
- Kotlin 第五章:Kotlin 的编码风格和习惯用语
- 《Kotlin 程序设计》第五章 Kotlin 面向对象编程(OOP)
- Kotlin Primer·第五章·函数与闭包
- Kotlin 从学习到 Android 第五章 返回和跳转
- 《Kotlin极简教程》第五章 Kotlin面向对象编程(OOP)
- Kotlin 第一站
- Kotlin 第二站
- kotlin 第三站
- kotlin 第四站
- Kotlin 第六站
- kotlin 第七站
- kotlin 第八站
- Kotlin
- Kotlin
- Kotlin
- Kotlin
- kotlin
- urllib2设置代理ProxyHandler
- SharedPreference.Editor的apply和commit方法异同
- #使用GitHub + Hexo来搭建个人博客(for Mac)
- java设计模式:装饰者模式
- node + express 实现https
- kotlin 第五站
- Angular入门-初识
- 小虎队《爱》 —— 米扑科技公司司歌
- plsql连接远程数据库
- Android Studio出现Failed to open zip file问题的解决方法
- java实现邮件发送功能
- 匿名内部类为什么是 Final 的呢?
- 关于C#winform中tableLayoutPanel动态删除和动态加载一行
- 进程间通讯—消息队列