2.8 变量与常量

时间:2023-01-30 22:16:03


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);
	}

}