Kotlin面向对象--类的定义方法
类
Kotlin中的类是使用class
关键字来声明:
class Invoice {
}
类声明由类名,类头(指定类型参数,主构造函数等)和类体组成,由大括号括起来。类头和类主体都是可选的; 如果类没有主体,可以省略花括号。如下 -
class Empty
构造函数
Kotlin中的类可以有一个主构造函数和一个或多个辅助构造函数。 主构造函数是类头的一部分:它在类名后面(和可选的类型参数)。
class Person constructor(firstName: String) {
}
如果主构造函数没有任何注释或可见性修饰符,那么可以省略constructor
关键字:
class Person(firstName: String) {
}
主构造函数不能包含任何代码。 初始化代码可以放在初始化程序块中,前缀为init
关键字:
class Customer(name: String) {
init {
logger.info("Customer initialized with value ${name}")
}
}
请注意,初始化程序块中可以使用主构造函数的参数。 它们也可以用在类体中声明属性的初始化器:
class Customer(name: String) {
val customerKey = name.toUpperCase()
}
实际上,要声明属性并从主构造函数初始化它们,Kotlin有一个简洁的语法:
class Person(val firstName: String, val lastName: String, var age: Int) {
// ...
}
与常规属性大体相同,主构造函数中声明的属性可以是多值(var
)或只读(val
)。
如果构造函数具有注释或可见性修饰符,则constructor
关键字是必需的,修饰符将在它之前:
class Customer public @Inject constructor(name: String) { ... }
简单实例:
//矩形 长 宽
class Rect(var longs:Int,var width:Int)
fun main(args: Array<String>) {
var rect1=Rect(longs=20,width = 10)
println("举行的长度:${rect1.longs}")
println("举行的宽度:${rect1.width}")
}
运行结果:
举行的长度:20
举行的宽度:10