Android与Kotlin常用-类与方法

  • 声明,也是class

类只有无参一个造函数

class User { }

类有一个构造函数,有参

class User(age: Int, name: String) {
	val mName = name
}

使用的时候

var user =User(1,"ming")
user.mName

默认属性有get,set方法
val修饰的属性不提供set方法

get/set手动写法

class User(age: Int, name: String) {
    var mName = name
        get() = field
        set(value) {
            field = value
        }
}

类有多个构造函数

  • 一个类可以有一个主构造函数,多个次构造函数

  • 主构造函数跟在类名后面

  • 次构造函数使用constructor修饰

      class Person {
          var children: MutableList<Person> = mutableListOf<Person>();
          /**
          * 次构造函数
          */
          constructor(parent: Person) {
              parent.children.add(this)
          }
      }
    

继承

一个类如果要可以被继承,需要使用open修饰,比如

open class User(age: Int, name: String) {  }

覆盖

要覆盖类中的属性或者方法,都要使用open来修饰,比如:

open class User(age: Int, name: String) {
    open var address = ""
    open fun run(){
    
    }
}

嵌套类与内部类

Java中的内部类直接写class就行,kotlin中:

  1. 直接class是嵌套类;
  2. 使用inner class修饰的是内部类,内部类调用外部类方法使用super@Outer

嵌套类

class Outer {
    private val bar: Int = 1
    class Nested {
        fun foo() = 2
    }
}
// 其他类调用的时候
val demo = Outer.Nested().foo() // == 2	

内部类

class Outer {
    private val bar: Int = 1
    inner class Inner {
        fun foo() = bar
    }
}
// 其他类调用的时候
val demo = Outer().Inner().foo() // == 1

静态方法

companion object{
    fun request(){
        
    }
}

方法参数

在kotlin中,方法的参数默认是val,不可变的。且只有构造函数可以设置参数为val或者var的。一般函数不可设置。

方法返回值

fun t():String{
    return ""
}
  • 返回值跟在后面
发布了127 篇原创文章 · 获赞 3 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/u010513497/article/details/102958565