封裝是一種基本的物件導向程式設計概念,涉及將資料(欄位)和對單一單元(通常是類別)內的資料進行操作的方法(函數)進行捆綁。它限制對某些物件組件的直接訪問,從而更容易維護和保護程式碼。
// Encapsulation refers to restricting access of a class from the outside world public class Person { private String name; private String profession; private double height; private int ID; private int age; // Constructor public Person(String name, String profession, double height, int iD, int age) { this.name = name; this.profession = profession; this.height = height; ID = iD; this.age = age; } // Getters and setters for accessing private fields public String getName() { return name; } public void setName(String name) { this.name = name; } public String getProfession() { return profession; } public void setProfession(String profession) { this.profession = profession; } public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } public int getID() { return ID; } public void setID(int iD) { ID = iD; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } // Main method to demonstrate encapsulation public static void main(String[] args) { Person myPerson = new Person("Robert", "doctor", 130.4, 39, 23); // Accessing private fields through getter methods System.out.println(myPerson.getName()); System.out.println(myPerson.getProfession()); System.out.println(myPerson.getID()); System.out.println(myPerson.getAge()); } }
姓名、職業、身高、ID 和年齡欄位被宣告為私有。這使得它們無法直接從類別外部存取。
諸如 getName()、setName()、getProfession() 等公共方法以及其他方法充當私有欄位的受控存取點。這些方法允許外部程式碼安全地檢索和修改私有資料。
建構函式在建立 Person 類別的物件時初始化欄位。這確保了物件以有效狀態啟動。
main方法示範如何使用封裝。私有欄位透過 getter 方法間接存取。
資料保護:
受控存取:
public void setAge(int age) { if (age > 0) { this.age = age; } else { System.out.println("Age must be positive."); } }
程式碼彈性:
這個範例說明了封裝如何確保 Person 類別保持完整性並隱藏其實作細節,同時提供受控的互動介面。
以上是瞭解物件導向程式設計中的封裝的詳細內容。更多資訊請關注PHP中文網其他相關文章!