时间:2021-05-19
详解Kotlin中的面向对象(二)
在Kotlin中的面向对象(一)中,介绍了Kotlin类的相关操作,本文将在上文的基础上,继续介绍属性、接口等同样重要的面向对象的功能。
属性
属性是每个对象中最基本的单位,也是必不可少的一部分,与Java一样,Kotlin也提供了private、protected、public三种声明变量的方式,不同的是,在Kotlin中如果没声明访问权限,默认认为是public类型,即在其他任何地方都可以访问。同时,Kotlin提供了var和val用来表示属性的读写权限,var是可读写的变量,val则是只读变量,类似于Java中的final。
需要注意,Kotlin对于空安全的要求非常严格,所以对于所有的属性都需要进行初始化,因此也可以通过直接赋值的方式说明属性的类型,不一定非在后面通过冒号的方式追加。不过对于习惯Java语法的开发者而言可能还是会注明属性的类型,而习惯脚本语言的开发者可能会倾向于直接赋值。
在Kotlin中,get和set方法不是必须的,因为Kotlin会自动对get和set方法进行处理,变成直接调用属性的方式(可参考Kotlin的第一行代码中的说明),但Kotlin还是有自己独特的使用get和set的方式
Kotlin提供了多种设置get和set的方法,上面的代码中展示了两种get方法和一种set方法,有时当你希望改变get、set的访问权限或是使用注解时,也可以直接对get、set进行操作
接口
和Java类似,Kotlin使用interface作为接口的关键词,和抽象类相比,他们都可以包含抽象的方法以及方法的实现,但接口无法保存状态。
和继承的方式类似,实现接口也是使用冒号“:”,不过方法略有不同
我们可以在接口中申明属性,但接口中的属性要么是抽象的,要么提供访问器的实现。接口属性不可以有后备字段,而且访问器不可以引用它们。
泛型
泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明。像 java 一样,Kotlin 中的类可以拥有类型参数
通常来说,我们需要这样构建一个对象
但如果类型是需要推断的,也可以通过传入忽略类型的参数进行创建
嵌套类
Kotlin中的类也可以嵌套在别的类中
可以通过inner修饰符增加一个对外部类的引用,使得内部类可以调用外部类的属性
对于匿名内部类,通过对象表达式进行创建
如果对象是函数式的 java 接口的实例(比如只有一个抽象方法的 java 接口),我们可以用一个带接口类型的 lambda 表达式创建它。
枚举类
枚举类最基本的用法就是实现类型安全的枚举,每个自举常量都是一个对象。枚举常量通过逗号分开。
因为每个枚举对象都是一个实例,所以我们可以对其进行初始化
当我们需要调用枚举对象的内容时,可以通过valueof获取某个枚举对象的值,或者通过values获取所有枚举对象
需要注意,如果指定的名字在枚举类中没有任何匹配,那么valueOf()方法将会抛出参数异常
Kotlin中核面向对象相关的内容就介绍到这里,相关的代码均提交在github中,
本文源码下载:http://xiazai.jb51.net/201706/yuanma/helloKotlin-master(jb51.net).rar
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Kotlin面向对象这几天一直在准备考试,实在没有时间,已经过去了这么久,终于要到面向对象了!先看看Kotlin中的类长什么样吧.可以看到Kotlin中的类还是
Kotlin中的面向对象面向对象面向对象的含义大家应该并不陌生,通过将事物抽象成对象,大大简化了程序的开发难度。我们常用的Java、Python、C++都属于面
Kotlin单例实例详解单例的实现方法,可以通过同伴对象,或者lazy。示例:classHelloprivateconstructor(){companiono
Kotlin语言中调用JavaScript方法实例详解Kotlin已被设计为能够与Java平台轻松互操作。它将Java类视为Kotlin类,并且Java也将Ko
C++中函数重载、覆盖与隐藏详解在C++语言中,函数扮演着很重要的角色,不管面向过程设计,还是基于对象设计;不管是面向对象编程,还是基于泛型编程,函数都可以随处