1. 程式人生 > 其它 >java 面向物件特性之一:封裝性

java 面向物件特性之一:封裝性

技術標籤:# 4.6 Javajava封裝

一、為什麼要使用封裝性:

當我們建立物件以後,就可以通過物件名.屬性名的方式對屬性進行賦值。這種方式預設只能對內容的型別和範圍進行約束。

但是在實際開發中往往我們還會有更多的限制條件,但這些限制條件無法在屬性的宣告處加以限制。所以我們採取如下方式

  1. 使用private修飾屬性,這樣就不能直接再使用物件名.屬性名的方式進行賦值了
  2. 提供公共的方法給屬性賦值和獲取屬性的值,這樣可以在方法中對賦值的內容加以限制。

二、封裝性的體現(狹義上)

  1. 私有化屬性,提供公共的set/get方法

三、封裝性的體現(廣義上)

  1. 四種許可權修飾符 :private 預設的 protected public
  2. 可以使用四種許可權修飾符修飾 : 屬性,方法,構造器,內部類。
  3. 類只能使用public和預設的修飾。

四、注意

  1. set/get方法就是普通方法。如果開心可以起任意名字
class Animal{
	String name;
	
	private int age;
	/*
	 * 哥們我求求你傳值就傳4
	 */
	
	private int legs;
	
	/**
	 * 獲取age的值
	 */
	public int getAge(){
		return age;
	}
	
	/**
	 * 給age賦值
	 * @param a
	 */
	public void setAge(int a){
		if
(a <= 0){ System.out.println("年紀不合法"); age = 10; }else{ age = a; } } /** * 獲取屬性的值 * @return */ public int getLegs(){ return legs; } /** * 給屬性賦值 - 習慣性的把設定給屬性內容的方法叫作 setXxx ,獲取屬性值的方法叫作getXxx * * 以後只要提setXxx和getXxx就去給屬性賦值和獲取屬性值的方法。(都是普通方法) * @param l */ public
void setLegs(int l){ if(l != 4){ System.out.println("你給我去死"); //賦值一個預設值 legs = 4; /* * 如果輸入的值不在合理的範圍內 * 1.給設定一個預設值 * 2.拋異常強制終止程式 */ }else{ legs = l; } } public void info(){ System.out.println("name=" + name + " age=" + age + " legs=" + legs); } } public class AnimalTest { public static void main(String[] args) { Animal animal = new Animal(); //給屬性賦值 animal.name = null; // animal.age = 2; animal.setAge(-2); // animal.legs = -4; animal.setLegs(-4); animal.info(); System.out.println("程式結束"); } }

執行結果:
在這裡插入圖片描述