网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
fun main(args : Array) {
val name: String = "MindOrks"
var members: Int = 5000
members = 7000 // In can be assigned any number of times
name = "New Name" // It can not be assigned again
}
默认情况下,Kotlin 中的所有属性和函数都是public。但是在private和protected的情况下,您必须明确添加它。此外,默认情况下Kotlin 中的所有属性都是最终的。但是,如果我想将一个变量声明为私有,然后将它的 getter 和 setter 添加为公有呢?让我们来看看。
Getter 和 Setter
顾名思义,Getter 用于获取变量的值,而 Setter 用于设置任何变量的值。请不要鼓掌:)让我们举个例子。以下是 Getter 和 Setter 的 Java 代码:
class Community {
//private variable
private String name;
//getter for name
public getName() {
return name;
}
//setter for name
public setName(String name) {
this.name = name;
}
}
在这里,我们有两个名为name和roll的私有变量。除此之外,我们还为这些变量提供了 Getter 和 Setter。如果我们在 Kotlin 中编写相同的代码,那么代码将是:
class Community {
var name: String = "MindOrks"
}
而已。相信我!这是 Kotlin 中 getter 和 setter 的代码。Getter 和 setter 是在代码中自动生成的。因此,它们是在我们声明属性时自动创建的。上述 Kotlin 代码的 Getter 和 Setter 等效代码可以写成:
class Community {
var name: String = "MindOrks"
get() = field // getter
set(value) { field = value } // setter
}
那么,当你可以在一行中做同样的事情时,为什么还要写 2-3 行代码呢?
让我们再看一些例子。在上面的类中,即在Community 类中,再添加两个私有变量。
class Community {
//private variable
private String name;
private String startingDate;
private String desc; //description of community
//getter for desc
public getDesc() {
return name + " " + startingDate;
}
//setter for name
public setDesc(String desc) {
String descArray[] = desc.split(" ");
name = descArray[0];
startingDate = descArray[1];
}
}
在上面的代码中,getter 方法返回带有空格的社区描述,setter 用于将描述分成两部分,即社区名称和社区开始日期。等效的 Kotlin 代码将是:
private lateinit var name: String
![img](https://img-blog.csdnimg.cn/img_convert/7b09512434908b55e025b9e2e759c3b1.png)
![img](https://img-blog.csdnimg.cn/img_convert/a04ea773814e28e6ef0db694b11d4214.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618636735)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
s/618636735)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**