靜態屬性(即靜態變量)
- 一個類的某個屬性爲靜態時, 該屬性是全局的, 即以該類爲模板創建的所有的對象的這個靜態屬性的指向同一個方法區.靜態屬性在使用方式上不依賴於對象.
靜態屬性是全局的, 該屬性只有一份, 這個只有一份的意思就是:相對於非靜態屬性而言, 每個對象的非靜態屬性都是獨立的, 而每個對象的靜態屬性都是一樣的, 都指向同一片內存區. 所以當修改了這個類模板的靜態屬性或者某個對象修改了自己的這個靜態屬性, 對應的所有的對象的該靜態屬性都會更改.案例: 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 +
'}';
}
}
}