美文网首页
Kotlin基础之变量的声明(三)

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

作者: 王魔王 | 来源:发表于2019-06-05 09:12 被阅读0次

    我是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不会这么傻吧?
    当然不会这么傻,但目前来讲,先这么傻着吧。

    相关文章

      网友评论

          本文标题:Kotlin基础之变量的声明(三)

          本文链接:https://www.haomeiwen.com/subject/gpfjxctx.html