Kotlin教程 companion+const讲解

本章节讲述Kotlin中几个关键字的使用,先看demo

People类

class People {

    /** 外部调用 先new类对象 然后 类对象.out */
    val out = "外部"

    /** 外部调用 先new类对象 然后 类对象.method1 */
    fun method1(string: String): String {
        return string + "外部"
    }

    /** 外部调用 类名.属性 类名.方法名 */
    companion object {
        const val name = "张三"
        const val age = 14

        fun method(int: Int): Int {
            return int + 1
        }
    }
}

Activity调用

class KotlinActivity3 : AppCompatActivity() {

    private lateinit var textView: TextView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_kotlin3)
        initView()
    }

    /**
     * 初始化View
     */
    private fun initView() {
        textView = findViewById(R.id.textView)
        textView.text = "点击"
        textView.setOnClickListener {
            val name = People.name
            val age = People.age
            val result = People.method(10)

            val people = People()
            val out = people.out
            val string = people.method1("方法")

            Log.d("KotlinActivity", "name:$name")
            Log.d("KotlinActivity", "age:$age")
            Log.d("KotlinActivity", "result:$result")
            Log.d("KotlinActivity", "out:$out")
            Log.d("KotlinActivity", "string:$string")
        }
    }

}

结果

D/KotlinActivity: name:张三

D/KotlinActivity: age:14

D/KotlinActivity: result:11

D/KotlinActivity: out:外部

D/KotlinActivity: string:方法外部

说明

1.获取类实例

Java代码

People people = new People();
String out = people.getOut();
String result = people.method1("Java");

Log.d("MainActivity", "out:" + out);
Log.d("MainActivity", "result:" + result);

结果

D/MainActivity: out:外部

D/MainActivity: result:Java外部

Kotlin代码

val people = People()
val out = people.out
val string = people.method1("方法")

可见,Kotlin中想要声明一个类对象 需要使用var或者val关键字声明一个变量 然后将类名+()赋值给这个变量即可。

companion&const关键字

Kotlin中companion&const关键字一般一起使用,可以起到类似Javastatic的作用。

比如Java中我们可以声明一个类,类中有静态的属性和静态的方法。那么外部想要调用该类中的属性或者方法直接使用类名.属性或者类型.方法名即可。

因为Kotlin中没有static关键字,所以无法像Java那样实现。那么我们想要实现上述Java的功能怎么实现呢?我们可以使用companion&const关键字的组合

注意:

1.companion关键字一般在一个类的内部 后面跟着Object关键字

companion object {



}

2.const关键字

const关键字 其实和Java的final,Kotlin的val类似。也是常量的意思。但是它的作用域是在companion object内部

3.总结

上述使用 companion+const关键字 实现  类似Java的static的机制,在Kotlin中称为伴生对象机制伴生对象提供了一种机制,用于定义在概念上与某个类型相关但不与某个特定对象关联的变量或函数。伴生对象类似于对变量和方法使用 Java 的 static 关键字。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值