在Java中成员变量(也称为实例变量)是类的一部分,并且属于创建的每个对象(实例)。成员变量用于存储对象的状态。
1、声明位置
成员变量是在类中但在任何方法、构造器或块之外声明的变量。
2、作用域和生命周期:
成员变量的作用域是整个类。
生命周期从对象被创建开始直到该对象不再被引用并且被垃圾回收器回收为止。
3、初始化
成员变量可以在声明时进行初始化,也可以在构造器中初始化。
如果没有显式地初始化,那么它们会自动获得默认值(例如,数字类型为0或0.0,布尔类型为false,引用类型为null)。
4、访问修饰符
成员变量可以有四种访问级别:private、protected、public 和默认(同一包下)。
private:只能在声明它的类内部访问。
protected:可以在同一个包内的任何类以及不同包中的子类中访问。
public:可以从任何地方访问。
默认(无修饰符):仅限于同一包内访问。
5、非访问修饰符
static:表示成员变量是一个类变量,它不随实例变化而是与类关联;所有实例共享同一份静态变量。
final:一旦赋值后不能改变其值的成员变量,类似于常量。
transient:指示序列化机制忽略这个变量。
volatile:表明该成员变量可能会被多个线程并发修改,因此每次读取都会去主内存获取最新值,而不是使用缓存中的副本。
6、封装性
成员变量被声明为private以实现封装,即隐藏对象的内部状态并仅通过公共方法来访问和修改这些状态,常见的为getter、setter等方法
7、继承
子类会继承父类的成员变量,除非它们被标记为private。如果子类中有相同名称的成员变量,则会发生覆盖(对于静态变量)或隐藏(对于实例变量)。
/**
* @Description:类结构
* 类中包含5种结构分别为:成员变量 成员方法 构造方法 代码块 内部类
**/
public class ClassStructure {
//成员变量可以有四种访问级别:
//private、protected、public 和默认(同一包下)
private int a;
protected int b;
public int c;
int d;
//静态变量
public static int e;
//常量
public final int g = 2;
//静态常量
public static final int f = 10;
}