Kotlin基础类
Posted 大雄童鞋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin基础类相关的知识,希望对你有一定的参考价值。
定义一个可以被继承的类:open关键字
属性列表:constructor
open class BaseDao constructor(var sex : Boolean, var name : String)
//类ADao继承了BaseDao 类,可以选择是否设置默认值
//有默认值的情况下,可以不传参数
class ADao(sex : Boolean = false, name: String = "你好") : BaseDao (sex = false, name = "22")
实例化一个类即Java中的new一个 类
var baseDao = BaseDao (false, "")
var aa= ADao(true, "")
普通属性和组合属性
class ADao(sex: Boolean, name: String = "你好") : BaseDao(sex = false, name = "22")
//普通属性
var p = "22"
//组合属性
var lift: Double
get()
when (this.name)
"张飞" ->
return 89.5
"诸葛亮" ->
return 78.6
return 58.3
set(value)
when (this.name)
"张飞" ->
this.sex = true
"孙尚香" ->
this.sex = false
子类属性覆盖,和方法覆盖(即Java中的重写)
父类需要加open关键字
open class BaseDao constructor(var sex : Boolean, var name : String)
open var father = "父亲"
open fun play ()
super.father
子类需要加override 关键字
class ADao(sex: Boolean, name: String = "你好") : BaseDao(sex = false, name = "22")
override var father = "父亲"
override fun play ()
嵌套类和内部类
class News
private var cc = "cc"
//嵌套类,与主类关系并不是十分密切,只是一个形式上的合作
class Cate
//内部类,通常用于不直接对外的类,为主类服务的,可以直接访问主类的属性
inner class Lun
fun getLang( str : String)
cc = str
fun main(args: Array<String>)
//实例化内部类
News().Lun().getLang("hello ")
数据类
data class MyData(var id: Int, var name: String, var sex : Boolean)
fun main(args: Array<String>)
var data = MyData(1, "hello", false)
//数据类的序列化
data.toString()
//复制,生成一个对象的克隆,并更改属性
data.copy(2, "world", true)
//数据类对象的解构
var (id, name,sex ) = data
println("$id, $name")
//或
data.component1()
data.component2()
data.component3()
枚举类
enum class Size
S,M,L,XL
fun main(args: Array<String>)
//列举枚举类的常量
Size.values().joinToString()
Size.values().joinToString it.name + "--" + it.ordinal
//枚举常量名称和序号
Size.valueOf("S").name
Size.valueOf("S").ordinal
类型转换
//判断类型
var a = "";
if(a is String)
if(a !is String)
//类型转换有智能转换和手动转换
//智能转换
if(a is String)
println(a.length)
//手动转换
//强制转换(转换失败直接报错)
var str = a as String
//安全转换(转换失败返回null)
var str2 = a as? String
以上是关于Kotlin基础类的主要内容,如果未能解决你的问题,请参考以下文章