目录
一、类变量和实例变量的定义
二、类变量和实例变量的区别
三、代码体现
四、类变量在实际项目中的使用
一、类变量和实例变量的定义
|-成员变量:把类内、方法体外定义的变量称为成员变量。
|-类变量:有static修饰,称为类变量(静态变量);
|-随着类的加载而加载;
|-优先于对象存在;
|-被所有对象所共享;
|-可以直接被类名调用;
|-实例变量:无static修饰,称为实例变量。
二、类变量和实例变量的区别
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关键字
}
}
输出:
四、类变量在实际项目中的使用
通常项目中会有一些变量,需要在不同的业务中重复使用,并且同一个变量的值在整个项目的各个地方都要保持一致,这时候我们一般定义一个存储全局变量的类,然后在配置文件中指定初始化值,项目启动会读取配置文件自动初始化,以便在整个项目中使用指定的全局变量。如下图:
1、定义全局变量类,所有成员变量均用static修饰,使其成为类变量(静态变量):
2、配置文件,变量名相互对应,项目启动自动注入初始化值。