1.普通成员变量背后隐士代码
为什么在kotlin中是private 可以直接调用,隐式代码如下
package Kotlin.Stage4
class Test54{
var name="kotlin"
/*背后做的事
@NotNull
private String name="kotlin";
public void setName(@NotNull String name){
this.name=name;
}
@NotNull
public 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.Stage4
class Test54_field{
var info="abc and def"
//下面的隐式代码 不写也有,就是下面的样子
/* get() = field
set(value) {
field =value
}*/
get() = field.capitalize()//获取时把首字母修改为大写
set(value) {
field ="[---${value}---]"
}
/* 背后做的事情
@NotNull
private String info="abc and def";
public void setInfo(@NotNull String info){
this.info="[---"+"info+"---]";
}
@NotNull
public 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)
}