首先,静态变量和实例变量统称为成员变量。
静态变量:也叫做类变量,是独立于方法之外的变量,它属于整个类,有static修饰。
只要程序加载了类的字节码,静态变量就会被分配空间并初始化,不用再去创建实例对象
调用方式:“类名.属性名” 或者 “对象名.属性名”,这两种方式都可以调用。
使用场合:所有对象的属性是一样的。
实例变量:也是独立于方法之外的变量,但它是属于某个对象的属性。
必须先创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。
调用方式:只能通过“对象名.属性名” 的方式访问。
使用场合:所有对象的属性是不一样的。
定义一个中国人类:其中有3个字段,身份证号和姓名都是唯一的,只有国籍是固定不变的。
所以把前2个设置成实例变量,第3个设置成静态变量。
public class Chinese {
//身份证号
String id;
//姓名
String name;
//国籍
static String country="中国";
public Chinese() {
}
public Chinese(String id, String name) {
this.id = id;
this.name = name;
}
}
public class ChineseTest {
public static void main(String[] args) {
//创建中国人对象1
Chinese zhangsan=new Chinese("1","张三");
System.out.println(zhangsan.id+","+zhangsan.name+","+Chinese.country);
//创建中国人对象2
Chinese lisi=new Chinese("2","李四");
System.out.println(lisi.id+","+lisi.name+","+Chinese.country);
}
}
* 由此可见,如果一个变量在这个类中是固定不需要改变的,那么,可以在这个变量前加上static使其成为静态变量。其特点是:在类加载时就初始化了,不需要再在带参构造方法中创建对象。