变量,常量
今天呢,就开始学习大家最为期待的变量啦!!!
那在大家读初中的时候呢,都学过一元一次,一元二次方程,在方程里是不是会一直会让我们写**“ X= 什么,Y=什么**,这时候老师就会说X和Y是一个变量,而变量在java中也是相同的含义,
变量
变量是什么:顾名思义,就是可以变化的量
我们可以通过变量来操作内存中的一些数据,说到内存可能有些人就懵了,变量指的就是内存里的一个空间,而这个空间里面要放些什么东西,是不确定的,相当于位置是确定的,东西是随意的,
比如说家里的衣柜,一般是放在卧室里的,本身就是存在的,这个是确定的,而衣柜的放什么东西是随意的,我想在衣柜里的第一层放衣服,第二层放裤子袜子,第三层放鞋子,那也可以在第一层放鞋子第二层放袜子,第三层放衣服,都可以这都是随意的,
衣柜是本身就存在的,只是我们给它加了个标签,是第一层放什么东西,第二层放什么东西,而内存也是一样,我们需要给它指定一个空间,给他一个数据类型,比如说int,让他专门放整数,里面放123,456,789什么的,那我们要怎么区分它们呢,这时候变量名就可以帮我们给它起个名字,帮助我们区分,
int = 123
int = 456(都是int,要怎么区分呢?)
int = 789
类型 变量 值
int a = 123
int b = 456
int c = 789
给他指定的空间就是类型,给他一个名字帮助我们区分就是变量名,有了类型和变量名,就可以在里面放东西了,这个东西呢,就是我们附的值
之前也跟大家说了,java是一种强类型语言,每个变量都必须声明其类型
你不跟人家说你是哪里过来的,人家怎么放你过去,到时候你有病毒,那怎么办呢?(这里举个例子)
java变量是程序中最基本的存储单元,其要素包括变量名,类型和作用于
最重要的就是变量名,类型,之前也讲过了,作用域呢,我们等一下讲
这里给大家讲一下,多类型变量
type varName [=value] [{,varName[=value]}];
//数据类型 变量名 = 值; 可以使用逗号隔开来声明多个同类型变量
这里是不建议去用这个的,因为一行声明多个变量很难去区分
注意事项
每个变量都有类型,类型可以是基本类型也可以是引用类型
基本类型和引用类型我们之前都多少有学过的吧,引用类型有String,用它来表示字符串的,之前一直在用,还有八大基本类型可以去定义
变量名必须是合法的标识符
你不能给他写个井号什么的
变量声明是一条完整的语句,因此每一个声明都必须以分号结束 ;
让程序知道到这里就结束了,你不说,它怎么知道呢?
那我们去IDEA定义一下,加深大家的印象,创建一个Demo07,老样子一个psvm,写一个main方法
刚才讲过建议大家不要在一行里写多个变量,那我们写个一下格式
呐,这是一个变量格式,还有什么呢?我们之前学过,表示字符串的string,
这是一个变量格式,但要注意,结尾一定是分号结束,而且必须是英文的分号,除此之外还有char,double等变量的格式,
但是我们还是要注意不要去写同一行变量,我们程序猿要注重程序的可读性,让别人一眼能看出你写的是什么,一行挤在一起密密麻麻的,看起来就很麻烦
在java变量的定义就是这么简单,在固定的地方设立随意的名称,附上对应的值
作用域
那我们接下来讲一下作用域,作用域分为三种
类变量:在类里面的变量,需要加一个关键词:static 静态,这是他的一个要求
实例变量:跟类变量差不多,只是没有这个关键词
局部变量:就是int这样的
听不懂没关系,先给大家一个印象,我们一个一个学
再新创一个class,先给大家说一下,我们刚创建好了就看到第一行的两个代码,这就是我们这个类,然后main方法是在类里面,
除此之外,在类里面还能定义一些属性,这个属性现在大家可以简单理解为变量,
除了main方法以外我们还可以写其他方法,比如add方法,给大家演示一下,不用管能不能看懂,跟着一起抄就完事了
局部变量
首先给大家看一下什么叫**“菊”部变量**,不是菊部变量而是局部变量,(开个玩笑),局部变量是在方法里面的,它的生命周期是在这个方法的大括号里开始和结束的,而且在使用之前必须声明 和 初始化值
我们用最简单的演示,给大家看一下,我们先int一个 i,这也是我们之前的案例了,再输出一下,但是我们可看到刚打出sout就看到报红了,我们是不是在后面附个值就可以了
这是局部变量,那我们试一下在下面这个add方法上输出一下,但我们刚写完它就爆红了是不是,刚才有讲过,局部变量的生命周期是方法的大括号内,变量只在方法内有效,
我们之后会学一个代码块,它的变量也是在括号内生效
实例变量
那除了局部变量,以外,是不是还有个实例变量,看看下边那张图,实例变量是不是在方法的外面,类的里面,
这个实例变量和局部变量是有很多区别的,实例变量的作用率会比局部变量大,因为实例变量是在方法的外面,在类的里面,而局部变量只是在方法的里面
实例变量是从属于对象的,现在不知道对象是什么,就把它简单理解成,要通过这个类才能去使用它,而且他是很高级的,举个例子,先定义一个变量,
比如说:string一个name,再int一个age,就单写一个string就可以用它了,不用初始化了,这个string跟int就是名字和年龄了,但你真的要用它那就没那么简单了
那实例变量怎么用呢,我们先在main方法里,把这个类写下来,接下来就不用看懂了,跟着写就行,先new一个Demo08,然后按一下旁边的小灯泡
它会返回一个Demo08,这个就叫对象,我们除了基本类型,那我们这个类是不是也是引用类型,这是自己写的自定义类型,这个类也是引用类型,有了变量类型,然后就是变量名,值就是他自己了,写好以后就可以用了
我们输出一下它自己和刚才写的age和name,看看是个什么东西,
它从属于类,从属于对象它就只能用字母去使用是比较麻烦的
输出完之后是不是看到输出了一个10和0 还有个null啊,如果没有给他附值,没有给他初始化,他就只会输出默认值,
这个10是 i 输出的,0和null是int和string的默认值
数值类型的初始化默认值一般都是0,像是int,byte,short,long,或者浮点数的默认值是0.0,比如double,float,
还有字符串的初始化默认值是十六进制的u0000,但是还是会输出0的,布尔值默认的是false,
除了基本类型其余的都是null就是空的,默认值都是空
类变量
什么叫做类变量,说白了,就是加一个关键字 “static” 只要加了static的关键字,或者他们的属性就可以直接拿来用了,它就是从属于类的,
我们用static写个代码输出一下,写个double,变量名就写工资的英文,等于2500,再输出一下
可以看到,是可以直接输出的,那如果把static去电,它就会直接报红,类变量我们之后会再讲,它是从属于这个类的,而且会和这个类一起出来一起消失的,等到讲到jvm的时候我们再重点讲一下这个
在目前阶段,在这个方法,类变量都先加上static,好去调用它,就不用再去new了,这个要等到学习对象的时候再讲到他,
到现在只要知道这个new是干嘛的就行,不用去纠结,这里给大家留个悬念
常量
讲完变量,那我们再讲常量:英文叫constant,初始化后不能再改变的值!不会变动的值
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过成中不允许被改变
它用到的关键名值:final 那怎么去定义呢
final 常量名 = 值
final double PI=3.14;
常量名一般使用大写字符
那我们自己去IDEA写一下就好了,再创建demo09吧,08已经乱了不成样了,创建好了之后呢,用到刚刚学的static,加上final,以上面这个格式写一下,下面在写个main方法和sout来运行,那有人知道是static和final那个是在前面呢,不知道的话那我们两个都写一遍运行一下吧
我们可以看到final和static的排列是不分前后的,给大家讲一下这个东西叫做修饰符,是不区分前后顺序的,后面的我们都知道是固定顺序,什么变量类型,变量名,附值,都是按顺序来的,
但是在他们的前面什么final,static什么的都可以不按顺序,甚至可以在前面加上public,private,等等的都是可以的,但是现在我们不用掌握,了解一下常量是如何定义的就可以了,通过final这个词来定义,一般用大写字母来附值,
注意这几个点就可以了,在程序中使用常量能提升某些代码的可读性,如果大家想开发一些游戏,一些应用,有些东西是始终不会变的,就可以定义成静态的常量,它就可以直接调,我们不论写在哪里都可以直接用
这些概念相信大家理解起来应该是都听得懂的**(反正我听了一脸懵逼)**但重点的这些关键词要记住
变量的命名规范
所有变量,方法,类名:见名知意
所有的方法类型变量,一看到他们就要知道是什么意思
类成员变量:首字母小写和驼峰原则:monthSalary
除了常量以外,首字母小写以外,后面单词的首字母大写比如:lastname 和 lastName 后面跟驼峰一样
局部变量:首字母小写和驼峰原则
跟上面一样
常量:大写字母和下划线:MAX_VALUE
用全字母大写,单词较多就在中间加入下划线
类名:首字母大写和驼峰原则:Man,GoodMan
跟变量的唯一区别就是首字母大写
方法名:首字母小写和驼峰原则:run(),runRun()
跟上面一样
今天是不是学得不怎么明白,没关系,视频和博客多看几遍,没看懂那是真没什么办法了,毕竟我也一脸懵逼的也没听懂多少,但是规范还是要注意的