1. 静态

静态属性(即静态变量)

  1. 一个类的某个属性为静态时, 该属性是全局的, 即以该类为模板创建的所有的对象的这个静态属性的指向同一个方法区.静态属性在使用方式上不依赖于对象.
    静态属性是全局的, 该属性只有一份, 这个只有一份的意思就是:相对于非静态属性而言, 每个对象的非静态属性都是独立的, 而每个对象的静态属性都是一样的, 都指向同一片内存区. 所以当修改了这个类模板的静态属性或者某个对象修改了自己的这个静态属性, 对应的所有的对象的该静态属性都会更改.
    
    案例:
    import lombok.Data;

public class OuterClass {

public static void main(String[] args) {
    // 创建对象1
    StaticProperty staticProperty1 = new OuterClass.StaticProperty();
    staticProperty1.setId(2);
    staticProperty1.setName("li");

    // 创建对象2
    StaticProperty staticProperty2 = new OuterClass.StaticProperty();
    staticProperty2.name = "wu";

    // 输出对象1和对象2
    System.out.println(staticProperty1);
    System.out.println(staticProperty2);
}

@Data
public static class StaticProperty {
    private int id = 1;
    private static String name;
    public void setName(String name) {
        StaticProperty.name =  name;
    }

    @Override
    public String toString() {
        return "StaticProperty{" +
                "id=" + id + ", name=" + this.name +
                '}';
    }
}

}

猜你喜欢

转载自blog.51cto.com/13604100/2298215
1.
今日推荐