3.6 变量、常量、作用域
一、变量
变量:就是可以变化的量,类似于我们学习的一元二次方程,我们可以通过变量来操作内存中的数据。变量就是指代的一个空间,假设内存中有个一空间,变量指的就是这个空间,这个空间放什么东西是自己是不确定的。也就是说这个空间的位置是定死的,但是内要存的数据是不确定的。这就好比家里有一个大衣柜,衣柜被分割成大小不同的格子,每个格子我们给它贴上不同的标签,有鞋子、衣服、袜子等,首先这个柜子本身就存在,就像我们电脑中的内存一样,而各个格子,以及贴的不同的标签就是我们说的变量,我们给内存不同空间贴上了不同的标签,使它能够放入合适的数,我们需要给内存指定一定的空间,这个空间要放某个数据类型整数或者浮点等,为了区分各个空间就需要给各个空间起一个名字,这个名字就叫做变量名。
Java是一种强类型语言,每个变量都必须声明七类型。
Java变量是程序汇总最基本的存储单元,其要素包括变量名,变量类型和作用域
type varName [=value] [{,varName[=value]}]
//数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型变量,但是不建议在一行中定义多个值
注意事项
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个生命都必须以分号结束。
- 当类越来越多非常麻烦的时候,就可以给类进行分类,也就用包机制来分类
二、变量作用域
变量有以下三种作用域
- 类变量:写在类里面的变量,需要加关键词static(静态的),类变量是从属于类的,在类里面使用是可以直接调用。
- 实例变量:写在类中间的变量,不需要加关键词static,在方法的外面,类的里面,实例变量与局部变量是有很大区别的,首先就是作用域更大了,因为它不在方法里面而是在类里面。它是从属于对象的,定义时可以不用初始化,如果不自行初始化会变成这个类型的默认值,所有的数值类型初始化一般都是0或者0.0,字符变量初始化则是00000,布尔值默认是false,而字符串类型初始值是null。而局部变量是写了就能用。示例变量在使用的时候需要先引入类再使用实例变量。
- 局部变量:写在方法里面的,其生命周期就在方法的括号内,而且在使用之前必须声明和初始化值
public class Demo08{
//属性:就是变量
//类变量 static
static double salaly = 2500;
//实例变量,从属于对象的;
String name;//实例变量
int aga;
public static void main(String[] args){
//局部变量,其生命周期就在方法的括号内,而且在使用之前必须声明和初始化值;
int i = 10;//这个变量是不能在其他地方使用的
System.out.println(i);
//变量类型 变量名 = new Demo08()
Demo08 demo08 = new Demo08();
System.out.println(demo08.age);
System.out.println(demo08.name);
System.out.println(salaly);
}
//其他方法
}
这里要注意的是,类里面有一个默认的main方法,这是主程序方法,类里面除了定义一些方法还可以定义一些属性,所谓的属性也就是一些变量,除了main方法之外还可以写其他的方法
三、常量
常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变,他需要关键词final修饰。
常量名一般使用大写中字符,在程序中使用一些常量,可以提高代码的可读性,比如说游戏中设置一些长宽高
final 常量名 = 值;
final double PI = 3.1415926;
public class Demo09{
static final double PI = 3.14;//static与final都是修饰符,不存在先后顺序
public static void main(String[] args){
System.out.println(PI);
}
}
四、变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则(除了第一个单词以外,后面的单词首字母大写):monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()