Android:这是一份全面 & 详细的Kotlin入门学习指南,android开发者文档隐私权限

本文是Kotlin初学者的详细指南,涵盖了数组的使用、类的声明、实例化、主次构造函数、属性、可见性修饰符、继承与重写等内容。通过实例解释了如何创建和操作数组,以及类的各种特性,帮助读者快速掌握Kotlin编程基础。
摘要由CSDN通过智能技术生成
e. 数组类型(Arrays)
  • 实现方式:使用Array类
  • 使用方法:size 属性、get方法和set 方法。注:使用 [] 重载了 get 和 set 方法,可通过下标获取 / 设置数组值。
  • 创建方式:方式1 = 函数arrayOf();方式2 = 工厂函数

// 方式1:使用arrayOf创建1个数组:[1,2,3]
val a = arrayOf(1, 2, 3)

// 方式2:使用工厂函数创建1个数组[0,2,4]
val b = Array(3, { i -> (i * 2) })
// 工厂函数源码分析
// 参数1 = 数组长度,花括号内是一个初始化值的代码块,给出数组下标 & 初始化值
public inline constructor(size: Int, init: (Int) -> T)

// 读取数组内容
println(a[0]) // 输出结果:1
println(b[1]) // 输出结果:2

// 特别注意:除了类Array,还有ByteArray, ShortArray, IntArray用来表示各个类型的数组
// 优点:省去了装箱操作,因此效率更高
// 具体使用:同Array
val x: IntArray = intArrayOf(1, 2, 3)

注: 区别于Java,Kotlin中的数组是不型变的(invariant),即Kotlin 不允许将Array赋值给Array,以防止可能的运行时失败

4.3 类使用

a. 类的声明 & 实例化

// 格式
class 类名(参数名1:参数类型,参数名2:参数类型…){}

// 示例
class User(userName: String, age: Int){}

// Kotlin支持默认参数,即在调用函数时可不指定参数,则使用默认函数
class User(userName: String = “hjc”, age: Int = 26){
}
// 在实例化类时不传入参数,userName默认 = hjc,age默认 = 26
var user = User()
// 在设置默认值后,若不想用默认值可在创建实例时传入参数
var user = User(“ABC” , 123)
// 命名参数:若一个默认参数在一个无默认值的参数前,那么该默认值只能通过使用命名参数调用该函数来使用
class User(userName: String = “hjc”, age: Int)
var user = User(age = 26)

// Kotlin没有new关键字,所以直接创建类的实例:
User()

对于构造函数,Kotlin中类可有一个主构造函数 & 多个次构造函数,下面将详细说明。

b. 主构造函数
  • 属于类头的一部分 = 跟在类名后,采用 constructor 关键字
  • 不能包含任何的代码。初始化的代码放到以 init 关键字作为前缀的代码块中

// 形式
class 类名 constructor(参数名:参数类型){
init {
//…
}
}

// 示例
class User constructor(userName: String) {
init {
//…
}
}

注:若主构造函数无任何注解 / 可见性修饰符,可省略 constructor 关键字

// 形式
class 类名(参数名:参数类型){
init {
//…
}
}

// 示例
class User (userName: String) {
init {
//…
}
}

c. 次构造函数
  • 必须加constructor关键字
  • 一个类中可存在多个次构造函数,传入参数不同

// 形式
constructor(参数名:参数类型) :{函数体}

// 示例
class User(userName: String) {
// 主构造函数
init {
println(userName)
}

// 次构造函数1:可通过this调主构造函数
constructor() : this(“hjc”)

// 次构造函数2:可通过this调主构造函数
constructor(age: Int) : this(“hjc”) {
println(age)
}

// 次构造函数3:通过this调主构造函数
constructor(sex: String, age: Int) : this(“hjc”) {
println(“ s e x sex

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值