Java中,屬性和成員變量都是對象中的數據部分,包括對象狀態的值和對對象進行操作的相關方法。雖然兩者在語義上非常相似,但它們在Java中究竟有什么區別呢?
屬性是指類中的變量定義,它可以使用關鍵字“private”、“public”等來控制對其它類的訪問權限。屬性與成員變量的主要區別在于屬性會對外暴露接口方法,在調用該方法時才能訪問屬性值。因此,屬性更多的是起到信息隱藏的作用,保護了對象的內部數據。
而成員變量則是類中的變量定義,它可以使對象保存自身狀態。和屬性不同的是,成員變量更多的是以底層的方式存儲對象的狀態,也不會提供取值和賦值方法。因此,成員變量不提供對外的訪問接口,需要通過方法的調用才能獲取或設置變量的值。
/* 實例化一個類并設置其屬性和成員變量 */ public class Student { private String name; // 屬性 public int age; // 成員變量 public void setName(String name) { this.name = name; } public String getName() { return name; } } public static void main(String[] args) { Student stu = new Student(); stu.age = 20; // 成員變量可以直接賦值 stu.setName("Tom"); // 屬性需要調用相應方法設置 System.out.println(stu.age); System.out.println(stu.getName()); }
在實際的編程過程中,我們應該根據實際需要來選擇使用屬性還是成員變量。當需要保護對象內部狀態時,可以使用屬性來控制訪問權限;而當需要操作對象時,可以使用成員變量來保存對象狀態。