標籤:data setname 輸出 非靜態屬性 property his 變數 使用 修改
靜態屬性(即靜態變數)
- 一個類的某個屬性為靜態時, 該屬性是全域的, 即以該類為模板建立的所有的對象的這個靜態屬性的指向同一個方法區.靜態屬性在使用方式上不依賴於對象.
靜態屬性是全域的, 該屬性只有一份, 這個只有一份的意思就是:相對於非靜態屬性而言, 每個對象的非靜態屬性都是獨立的, 而每個對象的靜態屬性都是一樣的, 都指向同一片記憶體區. 所以當修改了這個類模板的靜態屬性或者某個對象修改了自己的這個靜態屬性, 對應的所有的對象的該靜態屬性都會更改.案例: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);}@Datapublic 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 + ‘}‘; }}
}
1. 靜態