按照作用域的不同,变量可分为:成员变量和局部变量。成员变量有两种:静态变量和实例变量。
成员变量:在类中声明,作用域是整个类。
局部变量:在一个方法的内部声明,作用域是整个方法。
静态变量:被static关键字修饰,在内存中只有一个,被类的所有实例共享,可以直接通过类名被访问。
实例变量:没有被static关键字修饰,类的每个实例都有相应的实例变量,每创建一个类的实例,Java虚拟机就会为每个实例分配一次内存。
静态变量和实例变量举例说明:
唐僧师徒在西天取经的路上经过女儿国,那里的女子都会到子母河中去打水。假设子母河对应waterInRiver变量,每个女子家中有一个水缸对应waterInVat变量,用来存放从河里打来的水。此时,waterInRiver变量就是静态变量,waterInVat变量就是实例变量。