天天看點

類的封裝性

類的封裝其實就是封裝其屬性和方法,然後通過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();
	}
}