Kotlin编程之类的介绍和使用

来源:互联网 发布:c# socket接收数据 编辑:程序博客网 时间:2024/06/05 20:42

目录

  • 类定义
  • 类的构造方法
  • 类的实例

上篇介绍了源文件,这里详细介绍源文件中的类。

通过一个案例来了解类的声明,类的构造方法,如何创建类对象。

在一个源文件(.kt)中,编写一下代码:

package com.xingen.kotlinfun main(str:Array<String>){    //创建类对象,调用其方法    Test<String>("Kotlin中类的声明").test()}/** * 用class关键字声明一个类,且带有以下特征: *  * 1. 泛型类<T> * * 2.  带有指定参数类型的主构造方法 constructor(str:T) *  */class  Test<T> constructor(str:T){    //声明一个全局变量    var t:T    /***     * init{}  代码块初始化全局属性     */    init {        t=str    }    /**     * 二级构造方法:     *  1. 必需添加constructor关键字。     *  2. 若是类的声明中有主构造方法,必需使用this(参数...)传递参数进行调用。     */    constructor(t1: T, t2:T ) : this(t2) {        var t3="${t1}和${t2}"        //输出两个参数,t1和t2的信息        println(t3)    }    fun test(){       //输入信息        println(t)    }}

输出结果:

Kotlin中类的声明

定义一个类


  • class关键字来声明类。

  • 类的声明形式:class 类名<某个类型> constructor (参数名:参数类型)。例如:class Test<T> constructor(str:T){ }

  • 不指定某个类型的类,可以省略<T>。例如:class Test constructor(str:String){}

  • 不指定类的主构造方法,可以省略constructor(str:T)。例如: class Test{}

类的构造方法


在Kotlin中类,可以有一个主构造函数和多个二级构造函数。

1. 主构造方法

跟着在类名后面,constructor(t :T)表示。

  • T是主构造方法的参数类型,t是参数名

  • 主构造函数没有注解或可见性说明,则 constructor 关键字是可以省略。例如:class Test (str:String){}

构造方法的作用是:初始化

使用主构造方法中的参数,来初始化全局变量有以下三种方式

  • 通过init{} 代码块初始化全局属性

    class  Test<T> constructor(str:T){   var t:T  /***   * init{}  代码块初始化全局属性   */    init {        t=str    }}
  • 直接在类中全局变量声明时候,引用

    class  Test<T> constructor(str:T){     var t=str}
  • 最简单的方式,在主构造方法中声明全局变量

    class  Test<T> constructor(val str:T){ //用val声明,作为成员属性    fun test(){        println(str)    }}

使用类中主构造方法私有化:

class Test private constructor(){}

private关键字修饰一个空的主构造方法。

类中主构造方法的参数设置默认值

class Test (val str: String= "默认值"){}

注意:在 JVM 虚拟机中,如果主构造函数的所有参数都有默认值,编译器会生成一个附加的无参的构造函数,这个构造函数会直接使用默认值。这使得 Kotlin 可以更简单的使用像 Jackson 或者 JPA 这样使用无参构造函数来创建类实例的库。

2. 二级构造方法

class  Test<T> constructor(str:T){    /**     * 二级构造方法:     *  1. 必需添加constructor关键字。     *  2. 若是类的声明中有主构造方法,必需使用this(参数...)传递参数进行调用。     */    constructor(t1: T, t2:T ) : this(t2) { //第二个参数,作为主构造方法中参数被传入        var t3="${t1}和${t2}"        //输出两个参数,t1和t2的信息        println(t3)    }}

通过二级构造函数来创建类对象,调用相关方法:

fun main(str:Array<String>){    //创建类对象,调用其方法    Test<String>("Kotlin中类的声明","Kotlin编程中的二级构造方法").test()}

最后,控制台上输出结果:

Kotlin中类的声明和Kotlin编程中的二级构造方法Kotlin编程中的二级构造方法

可知:

  • 必需添加constructor关键字修饰

  • 若是类的声明中有主构造方法,必需使用this(参数…)传递参数进行调用

创建类的方法


与Java相比较,创建类对象。不需要使用new关键字。

//创建类对象,调用其方法Test<String>("Kotlin中类的声明").test() 

相关资源

  • Kotlin编程的源文件:http://blog.csdn.net/hexingen/article/details/72820445

  • Kotlin官方关于类的介绍(中文版):
    https://huanglizhuo.gitbooks.io/kotlin-in-chinese/content/ClassesAndObjects/Classes-and-Inheritance.html

原创粉丝点击