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