面向?qū)ο?--->封裝

何時(shí)使用封裝:
在編程中如果遇到【實(shí)體類】,生活中實(shí)際存在的類,通常就會(huì)被這個(gè)類當(dāng)中的數(shù)據(jù)全部私有化private。?代碼中,程序只會(huì)嚴(yán)格的執(zhí)行數(shù)據(jù)類型一致化問題,不會(huì)判斷你書寫代碼是否符合生活邏輯。?那么就有可能再賦值或者運(yùn)算過程中,某些參數(shù)或者方法,使用的是不符合業(yè)務(wù)邏輯。

就像性別,正常意義下是男和女,如果不對性別進(jìn)行封裝,那么若是輸入了外星人也是沒有辦法的,為了生活邏輯以及業(yè)務(wù)邏輯,當(dāng)然需要對一些變量進(jìn)行封裝。


public:公有的,公共屬性,用public 修飾的 成員變量和方法是任何人都可以使用的
???
private:私有的,用private修飾的成員變量或者成員方法只能在本類當(dāng)中使用,類外不能直接使用

用private修飾,就只能在本類里使用,但是此時(shí)如果需要在外部操作就遇到了問題。在這里引入set 和? get 方法。

set方法就是用來在類外【設(shè)置】類當(dāng)中的,用private修飾的成員變量的值

get方法就是用來在類外【獲取】類當(dāng)中的,用private修飾的成員變量的值

【使用set的好處】
??1. 使用set 可以將數(shù)據(jù)的賦值操作更加安全符合業(yè)務(wù)邏輯
??2. 可以將使用的方法進(jìn)行保密,只給外部提供了一個(gè)使用的接口

【封裝的好處】

1.提供了 代碼的安全性

2.操作數(shù)據(jù)變的簡單

3.隱藏一部分代碼

代碼如下:

class VIP {
?
?//成員變量
?private int age;
?private char sex;//age和sex都被封裝過了,在類外不能使用
?String userName;
?
??public void setSex(char s) {

//set 方法:通過set方法提供給類外一個(gè)修改sex值的方式


if (s == '男' || s == '女') {
???sex = s;
??} else {
???System.out.println("輸入的性別有誤?你是不是去過泰國?系統(tǒng)默認(rèn)為女");
???sex = '女';
??}
?}
?
?public char getSex() {
??return sex;
?}//set與get的使用方法,后面的對象名首字母大寫
?
?public void setAge(int a) {
??if (a < 0) {
???System.out.println("輸入的年齡有誤,系統(tǒng)默認(rèn)為0");
???age = 0;
??} else {
???age = a;
??}
?} //參數(shù)合法性判斷是在set里面進(jìn)行的
?
?public int getAge() {
??return age;
?}

public String userName() {

??return userName;
?}
}

//以上是構(gòu)造函數(shù),上面的成員變量一定要在這里進(jìn)行初始化,否則下面調(diào)用需要在定義。

public class Demo4 {
?public static void main(String[] args) {
??VIP v4 = new VIP();
??
??v4.userName = "劉先生";
??//v4.age = -5;年齡不合法
??v4.setAge(5);
??v4.setSex('男');;
??//userName = "鐵臂阿童木";前面沒有v4,無法正確運(yùn)行,加入v4后,下面的打印名字就是鐵臂阿童木
??System.out.println("Sex :" + v4.getSex());
??System.out.println("Age :" + v4.getAge());
??System.out.println("name :" + v4.userName());//這里一定要注意!上面一定要寫上構(gòu)造函數(shù),否則打印不出來。
?}
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 類:確定對象將會(huì)擁有的特征(屬性)和行為(方法)。類的特點(diǎn):類是具有相同屬性和方法的一組對象的集合。 對象: 對象...
    字節(jié)碼閱讀 588評論 0 3
  • 面向?qū)ο笕筇匦裕悍庋b,繼承,多態(tài)。 封裝: 將對象具有的一些屬性和方法打包到一起,隱藏屬性和方法的具體實(shí)現(xiàn)。即封...
    silingling閱讀 386評論 0 0
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,853評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評論 19 139
  • 味品堂黃桃罐頭一直有貨 味道超贊425克*6罐35包郵, 味品堂大品牌,日期超級新鮮?。?! 不會(huì)像其他牌子罐頭那樣...
    帥氣的昵稱是哈哈閱讀 225評論 0 0

友情鏈接更多精彩內(nèi)容