java与Kotlin中常量的定义, 使用public还是private定义常量?

在不使用enum的情况下,在java中定义常量,一般可以通过如下方式定义:

    private static final String name = "tom";
    public static final String name2 = "tom2";

这两种方式定义的区别是第一种方式,只有常量所在的类的方法可以访问,不管是静态还是非静态方法都可以访问。第二种方式则是全局的,所有类都可以访问。所以两种方式应对两种场景,private和public关键字可以很好的完成这个任务。

而在kotlin中,由于没有static关键字,必须使用const关键字,其对应的就是java的static关键字。但是const关键字必须使用在object类中,那如何实现定义局部(常量所在类内部,仅供本类使用)和全局的常量的?如果要定义全局常量,可以定义一个object类:

object ConstantTest {
    const val name = "tom"
}

而如果想在类内部定义局部常量,可以使用半生对象,在伴生对象中的常量,一定要使用private const修饰,如果不加private, 默认还是public,就称为一个全局常量。

class LocalConstantTest{
    companion object{
        private const val name = "tom"
    }

    fun doSomthing(){
        println("$name, How are you?")
    }
}

fun main(){
    println("${LocalConstantTest.name}")//compile error
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值