Kotlin基础之变量的声明(三)

2,111 阅读5分钟

我是IT王魔王 这是我的第5篇IT系列原创

Kotlin系列我打算写出最适合初学者入门的文章

网上有很多文章,这些文章写的都不错 但是鄙人以为,这些文章有一个共同的特点(是优点,但同时也是缺点) 所以我用特点来形容

我一般不喜欢讲废话(这是一句废话,sorry) 能用图解决的尽量不用文字描述

写在前面:本文中讲解的变量均是全局变量

Java中声明变量

/**
 * java person 类
 */
public class Person {
    String name;
    int age;

}

大家都是有身份证的人,我就不解释这几行代码了。

现在我们来看看Kotlin中怎么声明变量

###一、可更改变量的声明 1.不声明变量类型(隐式声明)


/**
 * kotlin 企鹅类
 * 每个企鹅每天就三件事
 * 吃饭、睡觉、打豆豆
 */
class Penguin {
    var name ="奔波儿霸"
    var age = 10
    var count=0//打了几次豆豆
   
    //打豆豆的方法
    fun hit(){
        count++
     println("我是"+name+"我打了"+count+"次豆豆")
    }
}

我们来看,kotlin中声明变量可以使用**var**关键字 并且,并且,并且 ######1、kotlin中不需要分号 ######2、kotlin中声明变量使用var关键字(别着急,还有一个关键字) ######3、kotlin中声明变量不用必须声明变量类型

在Kotlin中,编译器可以通过变量的值来自动推导出该变量是什么类型的,kotlin的这种功能叫自动类型推导。

而我们这种不指定变量类型的声明方式叫隐式声明

如果你说,我非要在声明的时候就强调一下数据类型,可不可以呢?答案是可以!

2.声明变量类型(显式声明)

/**
 * kotlin 企鹅类
 * 每个企鹅每天就三件事
 * 吃饭、睡觉、打豆豆
 */
class Penguin {
    var name:String ="奔波儿霸"
    var age:Int= 10
    var count:Int=0//打了几次豆豆

    //打豆豆的方法
    fun hit(){
        count++
     println("我是"+name+"我打了"+count+"次豆豆")
    }
}

######1、kotlin中不需要分号(我又强调了一遍) ######2、kotlin中声明变量使用var关键字(别着急,还有一个关键字)(我又强调了一遍) ######3、kotlin中声明变量的方式--- > var 变量名 : 变量类型 = 变量值

######小结:1、无论是显式声明,还是隐式声明,声明变量的时候我们必须给变量赋值(本阶段这样理解即可) ######2、声明后的变量值是可以更改的,例如demo中的 hit()方法

###二、只读变量的声明

java中的常量,一旦初始化不可更改

/**
 * java person 类
 */
public class Person {
   final String name="奔波儿霸";//java中的常量,使用final修饰,值不可更改
    int age;
}

Kotlin中的只读变量与Java中的常量一样,一旦声明后值不可以更改 Kotlin中使用Val声明只读变量

1.隐式声明只读变量

/**
 * kotlin 企鹅类
 * 每个企鹅每天就三件事
 * 吃饭、睡觉、打豆豆
 */
class Penguin {
    val name ="奔波儿霸"
    val age= 10
    val count=0//打了几次豆豆

    //打豆豆的方法
    fun hit(){
        count++//这个位置会报错,因为val声明的变量值不可更改
     println("我是"+name+"我打了"+count+"次豆豆")
    }
}

👆没有声明变量类型,只声明了值

2.显示声明只读变量

/**
 * kotlin 企鹅类
 * 每个企鹅每天就三件事
 * 吃饭、睡觉、打豆豆
 */
class Penguin {
    val name:String ="奔波儿霸"
    val age:Int= 10
    val count:Int=0//打了几次豆豆

    //打豆豆的方法
    fun hit(){
        count++//这个位置会报错,因为val声明的变量值不可更改
     println("我是"+name+"我打了"+count+"次豆豆")
    }
}

👆同时声明了变量类型和变量的值

###总结 1.对于有编程基础的童鞋来讲,尤其是有java基础的童鞋来讲,kotlin实在太容易上手了。 2.var声明可更改变量,即变量值后面可以更改 3.val声明只读变量,即变量值不可以更改 4.不同的数据类型,依然不能“混用”(这个回头解释) 5.kotlin会通过类型推断自动推断数据类型 6.通过冒号显示指定数据类型 7 kotlin中不需要分号

注: 大家敲Demo的时候,会发现声明kotlin变量的时候必须赋值,这是因为Kotlin的自动类型推导功能是根据后面的值来推导变量的类型的,如果我们不对该变量赋值,那么Kotlin就不知道这个变量的类型,所以会报错。

那么如果我们使用显示声明的方式,是不是变量就不需要在声明的时候赋值了? 你可以试一下,会发现依然报错(手动微笑🙂) 如下👇

/**
 * kotlin 企鹅类
 * 每个企鹅每天就三件事
 * 吃饭、睡觉、打豆豆
 */
class Penguin {
    var name:String//这个位置会报错,因为没有声明变量的值,虽然我们已经声明了变量类型
    val age= 10
    var count=0//打了几次豆豆

    //打豆豆的方法
    fun hit(){
        count++
     println("我是"+name+"我打了"+count+"次豆豆")
    }
}

如果你跟着敲了demo(你要不敲,麻烦你以后不要看我的帖子,把我拉到黑名单) 你会发现我说的都是对的。 但你脑袋里肯定有问号,Kotlin不会这么傻吧? 当然不会这么傻,但目前来讲,先这么傻着吧。