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