Sunxin'Blog

Kotlin基础-类和属性

Kotlin基础-类和属性

Java定义一个Person类

1
2
3
4
5
6
7
8
9
10
11
12
/*java*/
public class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

Person转换成Kotlin类

这种类通常(只有数据没有其他代码)被叫做值对象,在Kotlin中public是默认的可见性,可省略

1
class Person(val name: String)

2.1 属性

类的概念:把数据和处理数据的代码封装成一个单一的实体。
属性:

* 在Java中,字段和其访问器的组合被叫做属性
* 在Kotlin中,属性是头等的语言特性,完全替代了字段和访问器方法。

属性的声明: 使用val(只读)和var(可变)关键字。

当声明属性的时候,就声明了对应的访问器,只读属性有一个getter,而可变属性既有getter也有setter。

1
2
3
4
5
6
7
8
9
10
class Person {
val name: String = "sun__xin"
var isMarried: Boolean = false
}
fun main(args: Array<String>): Unit {
val person = Person()
person.isMarried = false
println("Hello,${person.name}")
}

在Kotlin中,调用构造方法不需要使用关键字new,可以直接访问属性,调用的是getter。

2.2 自定义访问器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Rectangle(val height: Int, val width: Int) {
/**
* 判断自己是否是个矩形
*/
val isSquare: Boolean
//自定义get方法
// get() {
// return height == width;
// }
//简写形式
get() = height == width
}
fun main(args: Array<String>): Unit {
val rectangle = Rectangle(23, 32)
println(rectangle.isSquare)
}

2.3 Kotlin源码布局:目录和包

  • Kotlin不区分导入的是类还是函数,允许使用import关键字导入任何种类的声明。也可以直接导入顶层函数的名称

  • 在包名称后面加上 .*来导入特定包中定义的所有生命。不仅让包中定义的类可见,也会让顶层函数和属性可见。

  • 在Kotlin中,可以把多个类放在同一个文件中

-------------本文结束感谢您的阅读-------------