static
一种java内置关键字,静态关键字,可以修饰成员变量、成员方法。
static + 成员变量
- 1.static + 成员变量
- 2.类变量图解
- 3.类变量的访问
- 4.类变量的内存原理
- 5.类变量的应用
1.static + 成员变量
成员变量按照有无static修饰,可以分为
- 类变量:static + 变量,属于类,仅存一份,由类全部对象所共享。
- 实例变量(对象的变量):无static修饰,属于每个对象。
2.类变量图解
3.类变量的访问
类变量可以由 对象访问,也可以由 类进行访问。
对比:实例变量仅支持由 对象进行访问。
// 类变量的访问//1.类 . 变量名称Student.name = "szg";System.out.println(Student.name);//2.对象 . 变量名称Student s1 = new Student();System.out.println(s1.name);// 实例变量的访问//1.类 . 变量名称 error//Student.age = 16; // error//System.out.println(Student.age); // error//2.对象 . 变量名称Student s2 = new Student();System.out.println(s1.age);
4.类变量的内存原理
代码测试验证:
// 类变量被所有对象所共享,而实例变量每个对象都有一个,相互独立s1.age = 10;s2.age = 20;s1.name = "wangwu";s2.name = "lisi";System.out.println(s1.age);System.out.println(s2.age);System.out.println(s1.name);System.out.println(s2.name);
输出结果:
5.类变量的应用
测试类:
// User 的个数User u1 = new User();User u2 = new User();User u3 = new User();User u4 = new User();User u5 = new User();User u6 = new User();System.out.println(User.number);
User类:
package suziguang_d1_staticdemo;public class User
{public static int number;public User(){number++;//User.number++;}
}
输出结果:
EOF