java面向对象06_静态变量(static关键字)

在类中(方法之外),用static修饰的变量我们称之为静态变量类变量

切记:static不能用于修饰局部变量!!!

1.静态变量特点

  1. 静态变量优先于对象存在,静态变量随着类的加载就已经存在了。

  2. 一个类中,静态变量只有一份,可以被该类和该类的对象所共享。

  3. 我们可以通过 类名.静态变量对象.静态变量 来操作静态变量。

2.静态变量内存图

我们在类中声明的静态变量存储在方法区中。
在这里插入图片描述

3.静态变量的使用

【示例】静态变量的使用示例

class Student {
	// 成员变量
	String name;
	// 静态变量
	static String classRoom;
	// 构造方法
	public Student(String name) {
		this.name = name;
	}
}
public class StaticVariableDemo {
	public static void main(String[] args) {
		// 通过类名,操作静态变量(推荐使用)
		System.out.println(Student.classRoom); // 输出:null
		Student.classRoom = "WH8527"; // 给静态变量赋值
		System.out.println(Student.classRoom); // 输出:"WH8527"
		// 创建对象操作
		Student stu = new Student("小明");
		// 通过对象,操作静态变量(不建议使用该方式)
		stu.classRoom = "WH8528"; // 给静态变量赋值
		System.out.println(stu.classRoom); // 输出:"WH8528"
	}
}

4.静态变量和成员变量区别

  • 区别一:生命周期不同

    成员变量随着对象的创建而创建,随着对象的回收而释放。

    静态变量随着类的第一次加载而存在,随着类的消失而消失。

  • 区别二:调用方式不同

    成员变量只能被对象调用。

    静态变量可以被类名调用,也可以被对象调用。

  • 区别三:数据存储位置不同

    成员变量存储在堆中,也称为对象的特有数据。

    静态变量存储在方法区(共享数据区)的静态区,也称为对象的共享数据。

  • 区别四:创建次数不同

    成员变量可以创建任意多次,每创建一次对象就创建了一次成员变量。

    静态变量只能创建一次,被该类和该类的对象所共享。

ps:如需最新的免费文档资料和教学视频,请添加QQ群(627407545)领取。

发布了55 篇原创文章 · 获赞 0 · 访问量 804

猜你喜欢

转载自blog.csdn.net/zhoujunfeng121/article/details/104581650