Kotlin基础知识学习(四)

类和对象

类的构造

定义
  • 类也是用关键字class修饰。
  • 如果是public修饰的类,public可以省略
  • 用:表示类的继承。
  • 继承需要在类后面加上()。
  • 创建类实例时不需要new。
  • init{}表示类初始化模块。
/**
 * 1、如果是public修饰的类,public可以省略
 * 2、用:表示类的继承
 * 3、继承需要在类后面加上()
 */
class MainActivity : AppCompatActivity() {
   

    override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
   
        super.onCreate(savedInstanceState, persistentState)
    }
}
class Shape {
   
    /**
     * 初始化函数属于构造函数的一部分
     */
    init {
   
        println("Shape是表示形状的类")
    }
}
构造函数
主构造函数
  • 主构造函数,放在类名后面,用constructor修饰。
  • 没有带@符号修饰的,constructor可以省略。
  • 主构造函数不是必须的。
/*
* 主构造函数,放在类名后面
* */
class Shape1(name:String) {
   
    /**
     * 初始化函数属于构造函数的一部分
     */
    init {
   
        println("Shape1是表示形状的类,名称是$name")
    }
}
class Shape1 constructor(name:String) {
   

}
//只有带参的主构造函数,创建需要参数声明
    var shape1 = Shape1("通用形状")
次构造函数
  • 没有名称。
  • 用关键字constructor修饰。
  • 如果有主构造函数需要调用主构造函数。
  • 会先调用主构造函数的初始化函数。
/*
* 主构造函数,放在类名后面
* */
class Shape2(name:String) {
   
    /**
     * 初始化函数属于构造函数的一部分
     */
    init {
   
        println("Shape2是表示形状的类,名称是$name")
    }

    /*
    * 二级构造造函数
    * 1、没有名称
    * 2、用关键字constructor修饰
    * 3、需要调用主构造函数
    * 4、会先调用主构造函数的初始化函数
    * */
    constructor(name:String,side:Int) : this(name) {
   
        println("Shape2是表示形状的类,名称是$name,是${
     side}边形")
    }
}

    //有主构造和二级构造,可以用两种方式声明
    var shape2 = Shape2("通用形状")
    var shape3 = Shape2("通用形状",4)
/**
 * 没有主构造函数
 */
class Shape3 {
   

    init {
   
        println("Shape3是表示形状的类")
    }

    constructor() {
   
        println("Shape3是表示形状的类,无参")
    }

    constructor(name:String) {
   
        println("Shape3是表示形状的类,名称是$name")
    }

    constructor(name:String,side:Int) {
   
        println("Shape3是表示形状的类,名称是$name,是${
     side}边形")
    }

}
    //只有二级构造函数,会先调用初始化函数
    var shape4 = Shape3()
    var shape5 = Shape3("通用形状")
    var shape6 = Shape3("通用形状",5)
参数带默认值的造函数
  • 构造函数的参数可以带默认值。
class Shape4 {
   
    /**
     * 初始化函数属于构造函数的一部分
     */
    init {
   
        println("Shape4是表示形状的类")
    }

    /**
     * 带默认参数的构造函数
     */
    constructor(name:String,side:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值