Kotlin学习记录6:初识类与构造函数

1.示例1,创建一个类及并包含两个构造函数:

class Book constructor(name:String,price:Float){

    private var name:String
    private var price:Float

    //初始化块
    init {
        this.name=name
        this.price=price
        println("初始化块1")
    }

    //主构造函数的参数可以给类内属性初始化使用
    var bookInfo="Book name:"+name+" price:"+price.toString();

    init {
        println("初始化块2")
    }

    //次构造函数的调用需要委托给主构造函数
    constructor(name:String,price:Float,message:String):this(name,price){

        println("$message")
    }

    public fun printInfo(){

        println(bookInfo)
    }

}

(1)主构造函数在类的名称之后,是类头的一部分,如果主构造函数有注解或可见性修饰符,这个 constructor 关键字是必需的,并且这些修饰符在它前面,否则可以省略。

constructor(name:String,price:Float)

(2)类要初始化的内容放在初始化块中,它会伴随类的创建而执行,可以有多个初始化块,其执行顺序与声明顺序相同。

init {
        this.name=name
        this.price=price
        println("初始化块1")
    }

init {
        println("初始化块2")
    }

(3)次构造函数的调用需要委托给主构造函数。

    constructor(name:String,price:Float,message:String):this(name,price){

        println("$message")
    }

(4)主构造函数的参数可以给类内属性初始化时使用。

var bookInfo="Book name:"+name+" price:"+price.toString();

(5)Kotlin没有new关键字。

var book=Book("小王子",30F,"Hello")

输出结果:

初始化块1
初始化块2
Hello

2.创建一个类,在类头未声明主构造函数参数:

class Student{

    init {

        println("这里是初始化块!")
    }
    constructor(name:String){
        println("Hello,我是 $name")
    }
    constructor(name: String,age:Int){
        println("Hello,我是 $name,我今年$age 岁了")
    }
    }
}

(1)在创建对象时会根据参数选择相应的次构造函数

	var newStudent=Student("张三",12)
    var newStudent2=Student("李四")

输出结果:

这里是初始化块!
Hello,我是 张三,我今年12 岁了
这里是初始化块!
Hello,我是 李四
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值