当前位置:网站首页>3. static成员

3. static成员

2022-08-11 10:42:00 陆悠漓

static修饰成员变量

如果定义3个学生,且他们都属于同一个班,那么定义三次的成员变量会不会显得太繁琐了,那么这个时候我们就可以使用static把班级放到方法区,在Java中,被static修饰的成员,称之为静态成员,也可以称为类成员,其不属于某个具体的对象,是所有对象所共享的

class Student {
    
// 成员变量
    public String name;
    public int score;
// 由static修饰的静态成员变量,由类来控制访问
    public static String classes = "一班";
}
  • 不属于某个具体的对象,是类的属性,所有对象共享的,不存储在某个对象的空间中
  • 既可以通过对象访问,也可以通过类名访问,但一般更推荐使用类名访问
  • 类变量存储在方法区当中
  • 生命周期伴随类的一生(即:随嘞的加载而创建,随类的卸载而销毁)
    static修饰的对象一般使用类名去访问

static修饰成员方法

Java中,被static修饰的成员方法称为静态成员方法,是类的方法,不是某个对象所特有的。静态成员一般是通过静态方法来访问的。

静态方法特征

  1. 不属于某个具体的对象,是类方法
  2. 可以通过对象调用,也可以通过类名.静态方法名(…)方式调用,更推荐使用后者
  3. 不能在静态方法中访问任何非静态成员变量

static成员变量初始化

  1. 就地初始化
public static String classes = "一班";
  1. 静态代码块初始化
class Student {
    
    public static String classes;
// 静态代码块
    static {
    
        classes = "一班";
    }
}

注意事项

  • 静态代码块不管生成多少个对象,其只会执行一次
  • 静态成员变量是类的属性,因此是在JVM加载类时开辟空间并初始化的
  • 如果一个类中包含多个静态代码块,在编译代码时,编译器会按照定义的先后次序依次合并
  • 实例代码块只有在创建对象时才会执行
原网站

版权声明
本文为[陆悠漓]所创,转载请带上原文链接,感谢
https://blog.csdn.net/youstory/article/details/125826589