目录

一、类变量和实例变量的定义

二、类变量和实例变量的区别

三、代码体现

四、类变量在实际项目中的使用

一、类变量和实例变量的定义

|-成员变量:把类内、方法体外定义的变量称为成员变量。
        |-类变量:有static修饰,称为类变量(静态变量);
                |-随着类的加载而加载;
                |-优先于对象存在;
                |-被所有对象所共享;
                |-可以直接被类名调用;
        |-实例变量:无static修饰,称为实例变量。

二、类变量和实例变量的区别

类实例化变量引用 python 类变量和实例变量区别_类变量

PS:类变量是指一个类的变量,通常为静态变量,而实例变量通常是动态的,区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的也是改变后的结果;而实例变量容则属对象私有,某一个对象将其值改变,不影响其他对象。

三、代码体现

public class ClassVariableAndInstanceVariable {
	public static void main(String[] args) {
		//实例一个对象
		Person p = new Person();
		p.say(); // 对象调用成员方法
		Person.run();// 类名调用静态方法
		//p.run();//对象调用静态方法(不推荐,编译工具抱黄灯)
	}
}
class Person {
	public String name;//<实例变量>成员变量,随着对象的创建而存在于堆内存中
	public static Integer country = 18;//<类变量>静态成员变量,随着类的加载而存在于方法区中

	// 成员方法
	public void say() {
		System.out.println("Hello, ✿◠‿◠✿   我是百里慕溪");
	}
	// 静态方法
	public static void run() {
		System.out.println("ヾ(≧O≦)〃嗷~  奔跑吧代码君...");
		//this.haha();//静态方法中不能出现this关键字
	}
}

输出:

类实例化变量引用 python 类变量和实例变量区别_类变量_02

四、类变量在实际项目中的使用

通常项目中会有一些变量,需要在不同的业务中重复使用,并且同一个变量的值在整个项目的各个地方都要保持一致,这时候我们一般定义一个存储全局变量的类,然后在配置文件中指定初始化值,项目启动会读取配置文件自动初始化,以便在整个项目中使用指定的全局变量。如下图:

1、定义全局变量类,所有成员变量均用static修饰,使其成为类变量(静态变量):

类实例化变量引用 python 类变量和实例变量区别_类变量_03

2、配置文件,变量名相互对应,项目启动自动注入初始化值。

类实例化变量引用 python 类变量和实例变量区别_实例变量_04