kotlin基础语法之构造方法

学习kotlin的构造方法,首先我们得明白

为什么得有构造方法?

  构造方法是在创建对象自动调用的方法,所以一般用来对对象的变量进行初始化。 构造方法的作用就是你想一个对象刚出生的时候就长成什么样什么样,而不是先 生出来一个默认的,然后再赋值赋值赋值。new的时候会自动调用构造方法,没有构造方法不能实例化对象。



构造方法分为两类:

1.默认的无参构造方法

 类本身不知道如何创建自己的对象,对象本身是由基层的object(){}来创建

再由当前这个类来初始化那个对象

2.重载的有参构造方法,一般有以下两种作用

  a.为了方便给初始化值

  b.在创建对象的同时,给与某些需要的数据

这时就讨论到了一个很重要的话题,“时机”,我们生成这个对象初始化所带有数据的时机,在创建对象时就自动赋值初始化,能极大程度上简化我们的程序。



明白了以上几点,下面就是Kotlin的构造函数具体实现内容啦

Kotlin构造函数

Kotlin构造函数可以分为两类

1.主构造函数

创建⼀个没有主体的类

class Person

显示指定构造⽅法

class Person2 constructor()

在主构造函数中有两种情况,一种是可以省略constructor,另一种则不能省略constructor,

不能省略的情况如下:

a.主构造函数需要传递⼀个字符串对象constructor不能省略,如:

class Person3 constructor(var name:String)

b.有修饰符限定构造函数权限时constructor不能省略,如:

class Person4 private constructor()

除此之外,如果有父类,主构造函数必须直接调⽤⽗类的构造函数,如:

open class Father

class Person5 : Father()

如果⽗类有参数⼦类必须提供相应有参的构造函数,如:

open class Father2 constructor(name: String)

class Person6 constructor(name: String) : Father2(name)

2.次构造函数

次构造函数在函数内

class Person(){

      constructor(name:String) : this(){}

}

次构造函数需要注意以下几点:

a.有主构造函数,次构造函数必须直接调⽤主构造函数

b.如果有⽗类,主构造函数必须调⽤⽗类的构造函数,而次构造函数必须继承主构造函数,包括父类的构造函数

class Person7(name: String) {

constructor(name: String, age: Int):this(name)

}

c.次构造函数只需要考虑和主构函数的关系

open class Father3 constructor(name: String)

class Person8 constructor(name: String) : Father3(name){

constructor(name: String, age: Int):this(name)



  Kotlin构造函数的内容就大致如上啦,熟练掌握构造函数的使用,灵活实现构造函数的运用,能在我们写程序时提高我们代码的简洁性,同时也让我们写代码的速率大大提升。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

  • 自从实习结束后直到现在将近一年多的时间再也没有用过kotlin, 在今年五月份I/O大会上,Google再次明确了...
    Scus阅读 1,556评论 0 0
  • 使用 Kotlin 可以编写出简洁高效的代码, 同时又可以完全兼容既有的 Java 技术栈(Java-based ...
    安仔夏天勤奋阅读 609评论 0 0
  • Java其实不是编译型语言,java编译之后不是计算机可识别的二进制文件,而是一种特殊的class文件,这种文件只...
    Dane_404阅读 523评论 0 0
  • 在 Kotlin 中的变量、常量以及注释多多少少和 Java 语言是有着不同之处的。下面详细的介绍 Kotlin ...
    驰同学阅读 1,161评论 0 2
  • 1.函数 (1)Main函数默认是Unit返回类型,可以定义其他返回类型:Int (2)直接声明一个函数,给出返回...
    贾里阅读 590评论 0 0

友情链接更多精彩内容