1. 程式人生 > >Java基礎知識回顧之封裝性

Java基礎知識回顧之封裝性

Java基礎知識回顧之封裝性
Java基礎知識回顧之繼承性
Java基礎知識回顧之多型性

理解封裝性

封裝(Encapsulation)是面向物件的三大特徵之一(另外兩個是繼承性和多型性),它是指的是將物件的狀態資訊隱藏在物件內部,不允許外部程式直接訪問物件內部資訊,而是通過該類所提供的方法來實現對內部資訊操作與訪問。

封裝是面向物件程式語言對客觀世界的模擬,在客觀世界裡,物件的狀態資訊都被隱藏在物件內部,外界無法直接操作和修改。

封裝性的好處:

  • 隱藏類的實現細節
  • 讓使用者只能通過實現預定的方法來訪問資料,從而可以在該方法里加入控制邏輯,限制對成員變數的不合理訪問。
  • 可進行資料檢查,從而有利於保證物件資訊的完整性。
  • 便於修改,提高程式碼的可維護性。
public class Person {

	// 將屬性封裝起來-私有化
	private String rPerson;

	//  對外提供訪問的方法
	public String getrPerson() {
		return rPerson;
	}

	public void setrPerson(String rPerson) {
		this.rPerson = rPerson;
	}	
}

Java 中類成員的訪問控制權限

在 JAVA 中有四種訪問控制權限,分別為:private, default, protected, public

  • private。私有的成員變數或者方法。只能在本類中使用。
  • default。預設的成員變數或者方法。可以在這個包中的其他類訪問(包括包中的子類,以及包中所有類訪問)。如果子類在不同包,則不能訪問。
  • protected。受保護的成員變數或者方法。成員既可以被這個包中其它類訪問,也可以被不同包中的子類內部訪問。
  • public。公共的成員或者方法。訪問不受限制。

總結

訪問許可權 private default protected public
本類內部可訪問
同一包中的類(包括子類,以及以物件.成員)
其它包中的子類內部
其它包中的類(物件.成員, 不是子類)