物件導向之封裝(Java)
物件導向之封裝(Java)
物件導向是Java學習中最基礎,也是最重要的一部分,其中它的三大特徵包括:
- 封裝
- 繼承
- 多型
今天讓我們一起來學習物件導向的三個特徵之一 封裝 吧!
何為封裝?
將類的成員屬性的訪問修飾符規定為私有(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()方法輸出
}
}
此案例可以看出類和物件的屬性毫無隱蔽性可言,可以被隨意修改,這樣設計出的程式會有很大的安全性問題。
使用封裝的好處
- 便於使用者正確使用系統,防止錯誤修改屬性。
- 有助於系統之間的鬆耦合,提高系統獨立性。
- 提高軟體的可重用性。
- 降低了構建大型系統的風險。
封裝的實現
- 屬性訪問修飾符定義為私有:private
- 對外提供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()方法對傳入的引數值進行輸出。這就所謂的封裝。這樣也大大的提高了系統的安全性。
不介意一鍵三連!!!
相關文章
- java物件導向的三大特徵之封裝Java物件特徵封裝
- 20. 物件導向之封裝物件封裝
- 物件導向 -- 三大特性之封裝物件封裝
- 物件導向:封裝,多型物件封裝多型
- JavaScript物件導向之一(封裝)JavaScript物件封裝
- 物件導向08:封裝詳解物件封裝
- JAVA物件導向基礎--封裝 繼承 多型Java物件封裝繼承多型
- [JAVA] Java物件導向三大特徵:封裝、繼承、多型Java物件特徵封裝繼承多型
- [JAVA] Java物件導向之包裝類,拆箱、裝箱Java物件
- 二、Java之物件導向Java物件
- Python 物件導向程式設計之封裝的藝術Python物件程式設計封裝
- go物件導向思想:封裝、繼承、多肽Go物件封裝繼承
- day11_物件導向(封裝丶static丶this)物件封裝
- # 095 01 Android 零基礎入門 02 Java物件導向 02 Java封裝 01 封裝的實現 03 # 088 01 Android 零基礎入門 02 Java物件導向 02 Java封裝 03 封裝總結 01 封裝知識點總結AndroidJava物件封裝
- Java正式上路之物件導向一Java物件
- Java正式上路之物件導向二Java物件
- java核心思想物件導向三大特性(封裝,繼承,多型)Java物件封裝繼承多型
- Java物件導向Java物件
- [Java物件導向]Java物件
- Java — 物件導向Java物件
- 物件導向三大特性-----封裝、繼承、多型物件封裝繼承多型
- 物件導向三大特徵(封裝/繼承/多型)物件特徵封裝繼承多型
- js物件導向封裝級聯下拉選單列表JS物件封裝
- JAVA物件導向基礎--物件導向介紹Java物件
- java學習——物件導向之繼承Java物件繼承
- 【Java】瘋狂Java基礎(一)——物件導向的特徵:繼承、封裝和多型Java物件特徵繼承封裝多型
- Java:Java的物件導向Java物件
- java物件導向(上)Java物件
- java物件導向(中)Java物件
- JAVA物件導向思想Java物件
- [Java物件導向]finalJava物件
- Java物件導向(一)Java物件
- java的物件導向Java物件
- Java 物件導向概述Java物件
- Java物件導向——類與物件Java物件
- JavaScript高階:JavaScript物件導向,JavaScript內建物件,JavaScript BOM,JavaScript封裝JavaScript物件封裝
- Cris 的 Scala 筆記整理(八):物件導向中級-封裝筆記物件封裝
- JAVA物件導向--抽象類Java物件抽象