您的位置:首页 > 编程语言

Kotlin编程之类的介绍和使用

2017-05-31 15:41 225 查看
目录

类定义

类的构造方法

类的实例

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

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

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

package com.xingen.kotlin

fun 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: