1.普通成员变量背后隐士代码
为什么在kotlin中是private 可以直接调用,隐式代码如下
package Kotlin.Stage4class Test54{var name="kotlin"/*背后做的事@NotNullprivate String name="kotlin";public void setName(@NotNull String name){this.name=name;}@NotNullpublic void getName(){return this.name;}*/
}fun main() {//背后隐士代码new Test54().setName("java")Test54().name="java"//背后隐士代码System.out.println(new Test54().getName() )println(Test54().name)
}
val只有get方法 不能set
2.field关键字
package Kotlin.Stage4class Test54_field{var info="abc and def"//下面的隐式代码 不写也有,就是下面的样子/* get() = fieldset(value) {field =value}*/get() = field.capitalize()//获取时把首字母修改为大写set(value) {field ="[---${value}---]"}/* 背后做的事情@NotNullprivate String info="abc and def";public void setInfo(@NotNull String info){this.info="[---"+"info+"---]";}@NotNullpublic void getName(){return StringKT.capitalize(this.info);}*/}fun main() {//背后隐式代码new Test54_field().setInfo("java")Test54_field().info="java"//背后隐士代码System.out.println(new Test54_field().getInfo() )println(Test54_field().info)
}