// 定义SmartDevice类
class SmartDevice(var name: String, var category: String, var statusCode: Int) {
// 属性是在类主体(而非函数主体)中定义的变量。
// 可以使用val关键字定义不可变属性,使用var关键字定义可变属性
// var name = "Android TV" // 名字 = Android TV
// var category = "Entertainment" // 分类 = 娱乐
var deviceStatus = "online" // 设备状态 = 在线
// 属性中getter和setter函数;val 类型的变量为只读变量,因此不含 set() 函数。
// 如果想读取 get() 函数中的属性值或更新 set() 函数中的值,您需要使用对应属性的后备字段。
// 该字段是由 Kotlin 编译器自动生成,并通过 field 标识符来引用。
// 例如,若要确保赋给 speakerVolume 属性的值介于 0 到 100 之间,您可以实现 setter 函数,
var speakerVolume = 2
get() = field
set(value) {
if (value in 0..100) {
field = value
}
}
// var statusCode = 1
// 定义构造函数;语法如下
// 形参 name: String, category: String, statusCode: Int
constructor(name: String, category: String, statusCode: Int) : this(name, category) {
deviceStatus = when(statusCode) {
0 -> "offline"
1 -> "online"
else -> "unknown"
}
}
// 定义turnOn 打开方法
fun turnOn() {
println("smart device is turned on.")
turnOff() // 在SmartDevice类中调用自己的方法
}
// 定义turnOff 关闭方法
fun turnOff() {
println("smart device is turned off")
}
}
fun main() {
val smartTvDevice = SmartDevice(name = "洗衣机", category = "娱乐", statusCode = 1) // 创建smartTvDevice对象
smartTvDevice.turnOn() // 在main函数中调用smartTvDevice对象的方法
smartTvDevice.turnOff()
}
代码待优化