1.概述
JAVA通过变量来存储相关的值,可以改变的值,称为变量。在Java语言中,所有的变量在使用前必须声明其具体的类型,一般通过“变量类型 变量名 = 变量值 ;”这三部分来描述一个变量。如:int a = 3 。
变量的使用遵循就近原则,即尽量控制变量的使用范围到保持可能的最小范围。
常量就是固定不变的变量,可以理解为一种特殊的变量。
2.变量的声明
JAVA是一种强类型的语言,在声明变量时,每个变量都有一个类型(type),先指定变量的类型,然后是变量名,此时可以先不赋值,只要保证在使用变量前给其赋值即可,最后以分号结尾。
例如:
int a = 2;
double c;
c = 3.1;
boolean b = true; 等
其中变量名必须是以字母开头,由字母或数字组成的,其中A与a也代表不同的含义,在开发中,变量的命名最好通俗易懂,见名知意。同样的,也不能使用保留字作为变量名。
3.变量的初始化
声明变量之后,给变量赋值的过程就是变量的初始化,在使用变量前,一定要进行变量的初始化,不能使用未初始化的变量。
在日常开发中,尽量将变量的声明放到靠近要使用这个变量的地方,这样更方便后期的维护,以及代码的开发。
4.常量
在变量的前边加上final关键字,那么这个变量就变为了常量,常量的值不能更改,表示这个变量只能赋值一次,在开发中,大家习惯将常量的名字全大写,便于区分代码中变量与常量。
5.变量的默认值测试
package partOne;
/**
* 本类用于测试各种类型的变量默认值
* @author Administrator
*
*/
public class TestVariabal {
static String name; //不加static无法使用,String不是静态的,需要将其转为静态的,后面会讲解具体原因
static byte a;
static short b ;
static int c;
static long d;
static float e;
static double f;
static char g;
static boolean h;
public static void main(String[] args) {
//由于main()方法是static静态修饰的,所以main()想要使用的这样代码,也必须是静态的
System.out.println(name); //结果为null
System.out.println(a); //结果为0
System.out.println(b); //结果为0
System.out.println(c); //结果为0
System.out.println(d); //结果为0
System.out.println(e); //结果为0.0
System.out.println(f); //结果为0.0
System.out.println(g); //结果为\u0000
System.out.println(h); //结果为false
}
}
整型数据的默认值为0
浮点型数据的默认值为0.0
布尔类型的默认值为false
字符型类型的默认值为\u0000,在eclipse中是一个空格
引用类型[除8大类型以外的类型]默认值是null
6.局部变量与成员变量
局部变量:
- 位置:定义在方法里或者局部代码块中
- 注意:必须手动初始化来分配内存.如:int i = 5;或者int i; i = 5;
- 作用域:也就是方法里或者局部代码块中,方法运行完内存就释放了
成员变量:
- 位置:定义在类里方法外
- 注意:不用初始化,也会自动被初始化成默认值
- 作用域:整个类中,类消失了,变量才会释放
区别 | 成员变量 | 局部变量 |
---|---|---|
类中位置不同 | 类里方法外 | 方法里或方法声明上 |
生命周期不同 | 随着对象的存在而存在,随着对象的消失而消失 | 随着方法的调用而存在,随着方法的调用完毕而消失 |
初始化值不同 | 有默认的对应类型的默认值 | 没有默认值,必须手动初始化 |
7.成员变量与局部变量的入门案例
package partOne;
/**
* 本类用于成员变量与局部变量的入门案例
* @author Administrator
*
*/
public class TestVariabal2 {
//创建程序的入口函数main方法
/**
* 成员变量
* 1.位置:在类class里,main方法外;
* 2.注意事项:成员变量有自己的对应类型的默认值,不需要手动初始化赋值;
* 3.生效范围:在整个类中都可以生效,类消失,成员变量才会随着消失;
*/
static int count; //成员变量必须用static修饰,不修饰会报错;
public static void main(String[] args) {
//定义局部变量
/**
* 局部变量:
* 1.位置:在方法里/局部代码块里
* 2.注意事项:使用时必须赋值,初始化
* 3.生效范围:在方法里/局部代码块里,对应的代码执行完毕,局部变量也随之释放
*/
// int sum; The local variable sum may not have been initialized 定义变量不赋值的话,会报错,显示没有初始化值
int sum = 1;
System.out.println(sum);
System.out.println(count);
}
}