物件導向之封裝(Java)

萌猩發表於2020-12-19

物件導向之封裝(Java)


物件導向是Java學習中最基礎,也是最重要的一部分,其中它的三大特徵包括:

  1. 封裝
  2. 繼承
  3. 多型

今天讓我們一起來學習物件導向的三個特徵之一 封裝 吧!


何為封裝?

將類的成員屬性的訪問修飾符規定為私有(private),這樣該屬性在其它類就不能呼叫,更不可能被修改。

為什麼要使用封裝?

定義一個類people,有姓名和財產等屬性,預設值是:張三和12000。有show方法,輸出姓名和財產。定義一個測試類,修改張三的money為-10000;

public class People{
	String name = "張三";
	int money = 12000;
	
	public void show(){
		System.out.println("姓名為:" + name);
		System.out.println("財產為:" + money + "元");
	}
}
public class TestPeople{
	public static void main(String[] args) {
		People p = new People();
		p.money = -10000;   //修改了張三的金額為-10000
		p.show();           //呼叫show()方法輸出
	}
}

此案例可以看出類和物件的屬性毫無隱蔽性可言,可以被隨意修改,這樣設計出的程式會有很大的安全性問題。

使用封裝的好處

  1. 便於使用者正確使用系統,防止錯誤修改屬性。
  2. 有助於系統之間的鬆耦合,提高系統獨立性。
  3. 提高軟體的可重用性。
  4. 降低了構建大型系統的風險。

封裝的實現

  1. 屬性訪問修飾符定義為私有:private
  2. 對外提供get和set方法。
public class People{
	private String name = "張三";
	private int money = 12000;
	
	public void show(){
		System.out.println("姓名為:" + this.getName());
		System.out.println("財產為:" + this.getMoney()+ "元");
	}

	public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getMoney() {
        return money;
    }

    public void setMoney(int money) {
        this.money = money;
    }
}
public class TestPeople{
	public static void main(String[] args) {
		People p = new People();
		p.setName(200000);   
		p.show();           
	}
}

輸出結果
在這裡插入圖片描述

對屬性的封裝,在IDEA中有快捷鍵可以直接生成,鍵盤按住Alt+Insert,選擇Getter and Setter即可自動生成get和set方法,前提條件是必須將屬性的訪問修飾符設定為私有private,這樣才可以對其進行封裝操作。在測試類中,通過setMoney()方法對屬性值進行設定,通過getMoney()方法對傳入的引數值進行輸出。這就所謂的封裝。這樣也大大的提高了系統的安全性。

在這裡插入圖片描述

不介意一鍵三連!!!

相關文章