1.可变变量 var表示,有set() get()方法 varname:String="tina"1.可变类型 变量名:变量类型=“赋值”varname:Stringset(value){//可以做保存数据的操作}get(){//从缓存中拿到数据return""}2.var自带set和get方法,如果需要对数据有操作,可以重写一下, 没有特殊操作的话直接用就行, 当时重写get方法的话,就...
openclassPerson{varage:Int=10//getter缺省为默认//setter设置参数前打印参数set(value){println("setter$value")//field关键字指向属性本身field=value}}@JvmStaticfunmain(args:Array<String>){valp=Person()println(p.age)p.age=30println(p.age)} 打印结果: 10setter3030 这里需要解释一下,set方法声明的v...
1、通过get和set方法增加额外的操作 classUser(val name: String) { var addr: String? =nullset(value: String?) { println("addr changed $field -> $value")//这里增加打印的日志field =value } get() {if(field ==null) { addr= "unspec"//这里给个默认值}returnfield } } 如上的例子在get和...
将 字节码数据 反编译后的 Java 代码中 , 存在 name 和 age 成员的 getter 和 setter 函数 ; 调用hello.name方法 , 实际上调用的是hello.setName方法 ; 代码语言:javascript 复制 classHello{varname="Tom"varage=18}funmain(){varhello=Hello()hello.name="Jack"} 查看其 字节码 数据 反编译后的 结果...
无法降级 var 可以用lateinit 延迟 val 用lazy 可空类型谨慎用null 直接初始化 最好是不用哦 相关代码 java 中的get set package com.yzdzy.kotlin.member; public class JavaMember { private int b = 0; public int getB() { System.out.println("Java get B"); ...
open var personName:String= "我是父类的名字"}classStudent: Person() {/*** name用private私有修饰,外界其他地方不准访问,隐藏细节 * name提供set get 方法 对外暴露功能 * 对细节隐藏,只暴露自定义暴露的东东,就是属于封装的体现*/privatevar name:String = ""fun getName() : String{returnname ...
Get和Set 其实Kotlin声明实体类之后,里面的变量默认就带有set和get的属性功能了。除非想要特殊业务内容。 比如set需要结合项目进行其他业务处理,get也是同样的道理。 【filed】是系统内置的一个关键字,算是中间变量 除了这些 var name: String? = null set(value) { //value随意起名 field = value //这个field是...
val 现有类类名.扩展属性名:扩展属性类型get()={}var现有类类名.扩展属性名:扩展属性类型get()={}set()={} 扩展属性 不能 进行初始化 , 必须在 getter 函数中进行初始化 ; val 只读类型变量 扩展属性 必须提供 getter 函数 ; var 可变类型变量 扩展属性 必须提供 getter 和 setter 函数 ; ...
get() { return field + "y" } set(value) { field = value + "y" } } fun main() { var hello = Hello() println(hello.name) hello.name = "Jack" println(hello.name) } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ...
}set(value) {field=valueprintln("写入{$field}")} } fun main(args: Array<String>) {var child=Child();child.name="ss"child.age=2println( child.name)println( child.age)} 写入{2} ss 获取E属性值{2} 2 上面是打印结果 打印结果 :只有age才调用了set get方法 name没有调用 为什么?