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