Kotlin(一)

来源:互联网 发布:wow数据库 3.35 编辑:程序博客网 时间:2024/06/02 00:13

参考教程: http://blog.csdn.net/qq285016127/article/details/72668084

创建一个类

  • 点击右键 new -> kotlin file/class 这样就创建了一个kotlin文件了后缀是kt
//这样就创建了一个类,kotlin文件就变成了一个类了,不是kt后缀了class Person{}

声明成员变量

  • 声明一个变量时必需初始化
  • 内部自动生成了setter/getter方法

  • 变量分为可变和不可变的:

    • 可变: var 表示
    • 不可变: val表示
  • 注意类型不再是int, double之类的了,而是Int, Double, 八大基本类型都是这样的
  • Double的变量不需要加上d这样的字母,folate的类型就需要加上f字母
class Person{  /**     *  声明变量:     *      可变变量: var     *      不可变变量: val     */    val name : String = ""    var age : Int = 0}

类的继承

  • 如果一个类可以被继承的话需要在class之前加上open
//父类open class Person{    /**     *  声明变量:     *      可变变量: var     *      不可变变量: val     */    val name : String = ""    var age : Int = 0}
//子类//()代表父类的无参构造器class Student : Person() {    //学生的学科    var courses : Int = 3    //学生的身高    var height : Double = 1.70}

构造器的创建

  • 构造器:
    • 主构造器 : 在创建类的时候就一起指定的
class Student(name : String, var courses : Int) : Person() {    //学生的身高    var height : Double = 1.70}
  • 次构造器 : 需要使用constructor关键字
//这里可以给参数一个默认值,如果不重新赋值的话,就会使用默认值class Student(name : String, courses : Int = 3) : Person() {    //学生的身高    var height : Double = 1.70    /**     * 1,子构造器必须重写主构造器,需要给主构造器的所有变量赋值     * 2,需要注意的是次构造器的构造器不能跟主构造器的参数一样     * 3,次构造器默认不会创建setter/gerter方法,也不能使用var/val     * 4,如果次构造器不需要做任何参数可以不需要方法体     */    constructor(newName : String, newCourses : Int, age : Int):this(newName, newCourses){        Log.v("lai", newName)    }}

在Kotlin里没有方法这个叫法,只有函数

  • 定义函数需要使用fun关键字
    //1,创建函数需要使用到fun关键字    //2,返回值是Int    fun study(courses : String) : Int{        if ("语文".equals(courses)){            return 99        }        return 80    }
  • 使用一行代码定义函数
  • $ : 可以用来拼接字符串,跟java的”++”一样
    //1,如果方法体里面只有一行代码,可以使用如下格式    //2,如果需要拼接字符串可以使用$符,变量的后面需要加上空格    fun printy() : String = "$name 的身高是 $height"
  • 如果函数不需要返回值可以使用Unit关键字
    //1,如果一个方法不需要返回值,可以使用Unit关键字,可以认为是java里面的void    fun paly() : Unit{        Log.v("lai", "我是天才!!!")    }

重写setter/getter方法

  • field表示当前属性
    //field关键字表示当前的属性    //学生的身高    var height : String = "1.70"        get() = "这是某个学生的身高: " + field        set(value){            field = value + 0.1        }

静态变量

  • 定义静态变量需要在companion object代码块中定义
    //在java中定义静态变量可以使用static声明,可是在kotlin中需要在companion object的代码块中定义    //注意访问修饰符,private是不可以被外界访问的    companion object{        public val MATH : Int = 1        public val CHINESE  : Int = 2    }

对象的调用

  • kotlin创建对象不跟java一样,不需要new关键字
        //1,kotlin创建对象不跟java一样,不需要new关键字        val s1: Student = Student("这是一个名字", 21)        //2,可以不需要指定变量的类型,系统会自己推导出类型是什么        val s2 = Student("呵呵呵", 18)        //3,如果构造器的参数有默认的的话,我们可以不需要传递值进去,系统会使用吗默认值        val s3 = Student("嚯嚯嚯")        //4,如果一个对象不想在声明的时候就赋值,可以设置为null,但是必须在类型的后面加上一个?        var s4 : Student? = null        //5,在使用s4的时候,如果s4不为null,系统才会使用,为null则不会使用        s4?.printy()

调用变量的setter/getter方法

        //1,这样就是调用height的get方法        s1.height        //2,这样就是调用height的set方法        s1.height = "这是新的身高"
原创粉丝点击