创建一个类
class Preson(var name:String , var age:Int)//创建一个类 已经包含了构造方法 属性 get、set方法
class Preson (var name:String, var age:int){
init{
//...
//需要对构造方法进行拓展 在这里进行拓展
}
}
次构造方法
class Person {
constructor() {
}
constructor(name: String):this() {
}
constructor(name: String, age: Int) : this(name) {
}
}
类的成员变量初始化
class X
class A{
var a = 0 //基本类型直接赋值java初始的值就行 int初始值为0 boolean为flase
var b:String //编译不能通过 需要初始值
var c:X //编译不能通过 需要初始值
val d:X//编译不能通过 需要初始值
}
所以用这种方式进行延时初始化
class A{
var a = 0
lateinit var b:String
lateinit var c:X
//lateinit val d:X 因为d是常量 所以这里不能使用lateinit来进行延时初始化 用下面这种方法初始化
val d:X by lazy{
X()
}
}
继承类
任何类都是基础继承Any 所有的默认类都是不可集成的 类似final 所以只能集成带有open和abstract的类
class Student(var name:String,var age:Int,var studentId:Int, var studentMassage:String):Preson(name,age)
在这里指定参数传入父类的参数相当于super关键字
重写父类方法必须使用关键字override
open class Base {
open fun v() {}
fun nv() {}
}
class Derived() : Base() {
override fun v() {}
}
允许类可以被继承
open关键字
open class Base(p: Int)
class Derived(p: Int) : Base(p)
在 Kotlin 中有四种修饰词:
private
,
protected
,
internal
,以及
public
。默认的修饰符是
public
private 在该类可见
protected 该类和子类可见
protected 该类和子类可见
internal 本模块可见
public任何地方均可见