static修饰变量
- static变量也称作静态变量,也叫做类变量
- 静态变量被所有的对象所共享,在内存中只有一个副本
- 当且仅当在类初次加载时会被初始化
- 意味着静态变量最先被初始化
- 静态变量属于类
- 通过类名就可以调用静态变量
也可以通过
**对象名.静态变量名**
调用-
static变量
public class Student
{
private String name;
private static String schoolName;
private static int count;
public Student(String name)
{
this.name=name;
count++;
}
public void showStuInfo()
{
System.out.println("学生的姓名是:"+this.name+",学校的名字是:"+Student.schoolName);
}
public static void main(String[] args)
{
Student.schoolName="第五十七中"; //类名.静态变量调用静态变量
Student s1=new Student("小张");
Student s2=new Student("小王");
Student s3=new Student("小美");
s1.showStuInfo();
s2.showStuInfo();
s3.showStuInfo();
System.out.println("学生的数量是:"+Student.count);
}
}
-
学生类 | 学生对象 | 学生对象 |
---|---|---|
姓名 | 姓名:小红 | 姓名:小张 |
年龄 | 年龄:18 | 年龄:19 |
学号 | 学号:001 | 学号:002 |
上课教室 | 上课教室:301教室 | 上课教室:301教室 |
public class Student
{
private String name;
private int age;
private int studentId;
private static String classRoom;
}
static变量和private变量的定义
学生类定义的时候,教室是static变量,因为是学生对象共享的
姓名,年龄和id是学生自己的,所以是private变量
实例变量和静态变量区别
- 静态变量属于类,该类不生产对象,通过类名就可以调用静态变量
实例变量属于该类的对象,必须产生该类对象,才能调用实例变量
静态变量随着类的加载存在于方法区中
实例变量随着对象的建立存在于堆内存中
静态变量在程序开始时创建,在程序结束时销毁
- 实例变量在对象创建的时候创建,在对象被销毁的时候销毁