member variable(成员变量),是类中独立于方法之外的变量,没有static修饰。
成员变量也叫实例变量(instance variable)、域,因为是类实例化后的变量,属于每一个对象的。
local variable (局部变量),是类中的方法里的变量。
class variable(类变量),是类中独立于方法之外的变量,有static修饰。
被static修饰的成员变量、方法、代码块不依赖特定的实例,被类的所有实例共享。
static和final的区别:
sataic表示这个变量是这个类的全体对象所共享的,一旦通过其中某个对象的引用去改变这个变量则其他对象再次引用这个变量时,得到的值也随之改变,因为所有的对象引用的其实是同一个内存地址的东西。
final则表示一旦定义了这个变量的值就不能再改变了,就是常量了。
/*测试static修饰的变量能不能被修改;
*被修改后同一个类的其他对象再次引用这个变量时是哪个值;
*/
public class TestStatic
{
public static void main(String[] args)
{
Lala a = new Lala();
a.change(20);
System.out.println("a中的i为:"+a.i);//20;
Lala b = new Lala();
System.out.println("b中的i为:"+b.i);//20;
}
}
class Lala
{
public static int i = 10;
public void change(int j)
{
i=j;
}
}