Kotlin系列之变量和常量

本文深入探讨Kotlin的变量和常量,包括var与val的区别、智能类型推断、自定义属性访问器。讲解了Kotlin中val的不可变性以及在特定情况下其引用对象可能的可变性,同时通过实例展示了自定义get和set访问器的使用。
摘要由CSDN通过智能技术生成

标签: Kotlin      变量      属性     var与val区别      自定义属性访问器     智能类型推断


目录:

简述:

Kotlin基础系列第二篇,之前记得有过第一篇算是Kotlin的基础语法的入门篇,把kotlin的基本语法规范,基础内容都过了一遍。接下来就是一一详解。这讲所说的是Kotlin的变量,主要会对以下内容做介绍:

1、变量基本定义

2、var和val的区别

3、智能类型推断

4、自定义属性访问器

5、var是可变的而val一定是不可变的吗


一、Kotlin与Java中变量和常量 使用对比

  • 1、在Java中定义一个变量和常量

     public String name = "Mikyou";//定义变量
     
     public final int age = 18;//final定义常量
    
    
  • 2、在Kotlin中定义一个变量和常量

    var name: String = "Mikyou"
    
    val age: Int = 18
    
    

    或者

    var name = "Mikyou"
    
    val age = 18
    

总结: 由以上的对比可得出几个点

1、Kotlin定义一个变量和常量比Java更简洁和灵活

2、Kotlin中拥有类型推断的机制,当一个变量或者常量初始化的时候可以省略类型的声明,它会根据初始化值的类型来作为变量的类型。

3、Kotlin声明变量和常量都必须使用var(变量),val(常量)关键字开头,然后再是名称,最后才是类型(如果有初始化值类型可以直接省略)

4、Kotlin相比Java默认的访问修饰符是public,而Java中是default

5、Java中一般都是以类型开头然后再是名称,并且类型是不可以省略的;这样的操作在Kotlin中是不行的。因为在Kotlin中类型是可以省略的,也就是类型相对比较弱化的,所以Kotlin会把类型放在最后,一般含有初始化值就会把在后面的类型声明省略。

二、Kotlin的变量和常量用法

     var name: String = "Mikyou"
	
	var address: String?//如果这个变量没有初始化,那么需要显示声明类型并且指明类型是否可null
	
	address = "NanJing"
	
     val age: Int = 18
     

或者

	var name = "Mikyou"
	
	val age = 18
  • 1、变量和常量声明必须以“var”和“val”关键字开头。
  • 2、 变量和常量的结构: (var 或者 val) 名称 :(分割逗号) 变量类型 = 初始化值。
  • 3、 智能类型转换(编译器提示为smart cast),如果变量或常量含有初始值可以省略类型,编译器会默认分析出将初始化值的类型作为变量和常量类型。
  • 4、如果变量没有初始化,那么需要显示声明类型并且需要指明类型是否可null。

三、Kotlin的自定义属性访问器

在Kotlin中属性是头等特性,它习惯于用一个属性去替代Java中的字段和setter,getter方法。而Kotlin中的set、get访问器相当于Java中的setter,getter方法。Kotlin有个新的特性就是可以去定义一个类中属性的访问器包括setter,getter访问器。该特性十分适用于需要经过多个属性逻辑计算得出的一个新的属性。那么逻辑计算的过程操作不需要像Java一样开一个方法来实现。可以直接在属性访问器中进行逻辑运算。

  • 1、自定义get属性访问器

    在Java中实现:

    
    pu
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熊喵先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值