類的封裝其實就是封裝其屬性和方法,然後通過get、set方法去通路類内部。
封裝屬性:private 屬性類型 屬性名
封裝方法:private 方法傳回類型 方法名稱(參數)
舉例:
未封裝時,可以通過對象直接去調用屬性或方法
class Person {
String name;
int age;
public void talk() {
System.out.println("我是:" + name + ",今年:" + age + "歲");
}
}
public class TestPerson {
public static void main(String[] args) {
// 聲明并執行個體化一Person對象p
Person p = new Person();
p.name = "23123";
p.age = -22;
p.talk();
}
}
無法控制屬性值的合法性
封裝後,因為屬性類型限制隻能通過get、set方法通路屬性或方法
public class Person {
private String name;
private int age;
public void talk() {
System.out.println("我是:" + name + ",今年:" + age + "歲");
}
public void setName(String str) {
name = str;
}
public void setAge(int a) {
if (a > 0)
age = a;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
class TestPerson {
public static void main(String[] args) {
// 聲明并執行個體化一Person對象p
Person p = new Person();
// 給p中的屬性指派
p.setName("張三");
// 在這裡将p對象中的年齡指派為-25歲
p.setAge(-25);
// 調用Person類中的talk()方法
p.talk();
}
}