多年以前,第一次学Java的时候,总觉得变量没有什么可说的,就是自己定义的标识符嘛;

直到最近重新学习Java,看到一份资料,上面对变量的概念讲得更详细了:


变量的概念:

变量,占据着内存中的某一存储区域;

该区域有自己的名称和数据类型;

该区域的数据可以在同一类型范围内不断的变化~ 

* 这就是为什么叫做变量的原因所在吧!多年以前学习Java从来没关注过内存什么的概念,那时候的书上也很少提及JVM内存的原理;


为什么要定义变量:

用来不断的,存放同一类型的常量,并且可以重复使用;

* 根据我看视频的所学,重复使用指的是不同变量,同一个数值的时候,这个变量就是可以被重复使用的;


使用变量的注意点:

初始化值;

* 初始化值是由变量的数据类型决定的;

String  s = null,
int i = 0;

作用范围:

定义开始到定义它的代码块结束,同一代码块范围内不允许有多个相同命名的局部变量。


局部变量和成员变量:

局部变量:声明在方法括号里面的变量;

* 只能在方法体中使用和访问,其他方法体访问不到,所以叫局部,使用前必须赋值;

成员变量:声明在类括号内、方法括号外的变量;又称Field 或 全局变量~  作用域是整个类。

* 原来成员变量就是全局变量,其实Java中没有全局变量的概念,因为Java面向对象的特性,所有变

* 由于默认会被隐式初始化值,所以可以不用赋值,直接使用。


下面的例子,很好的说明了这一点:


public class Variable {
	// 成员变量
	String name = "成员变量";

	public static void main(String[] args) {
		// 新建类对象
		Variable variable = new Variable();
		// 调用对象的方法local方法
		variable.local();
	}

	void local() {
		// 局部变量
		String name = "局部变量";
		// 在方法体内打印变量name
		System.out.println(name);
		// 用this指向对象本身.this.name,为对象(Variable类对象)
		System.out.println("打印:" + this.name);
	}

}