Kotlin(一)

参考教程: 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 = "这是新的身高"

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值