最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 封裝的使用詳解

 更新時(shí)間:2021年11月05日 10:19:45   作者:兮動(dòng)人  
在面向?qū)ο蟪淌皆O(shè)計(jì)方法中,封裝(英語:Encapsulation)是指一種將抽象性函式接口的實(shí)現(xiàn)細(xì)節(jié)部分包裝、隱藏起來的方法。封裝可以被認(rèn)為是一個(gè)保護(hù)屏障,防止該類的代碼和數(shù)據(jù)被外部類定義的代碼隨機(jī)訪問。要訪問該類的代碼和數(shù)據(jù),必須通過嚴(yán)格的接口控制

1. 基本介紹

面向?qū)ο缶幊逃腥筇卣鳎悍庋b、繼承和多態(tài)。

2. 封裝介紹

在這里插入圖片描述

3. 封裝的理解和好處

在這里插入圖片描述

4. 封裝的實(shí)現(xiàn)步驟 (三步)

在這里插入圖片描述

5. 快速入門案例

在這里插入圖片描述

package com.xdr630.encap;

public class Encapsulation01 {

    public static void main(String[] args) {

        Person person = new Person();
        person.setName("兮動(dòng)人");
        person.setAge(1000);
        person.setSalary(30000);
        System.out.println(person.info());
        System.out.println(person.getSalary());

    }
}

class Person {
    public  String name; //名字公開
    private int age; //age 私有化
    private double salary; //..


    public String getName() {
        return name;
    }
    public void setName(String name) {
        //加入對(duì)數(shù)據(jù)的校驗(yàn),相當(dāng)于增加了業(yè)務(wù)邏輯
        if(name.length() >= 2 && name.length() <=6 ) {
            this.name = name;
        }else {
            System.out.println("名字的長度不對(duì),需要(2-6)個(gè)字符,默認(rèn)名字");
            this.name = "無名人";
        }
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        //判斷
        if(age >= 1 && age <= 120) {//如果是合理范圍
            this.age = age;
        } else {
            System.out.println("你設(shè)置年齡不對(duì),需要在 (1-120), 給默認(rèn)年齡18 ");
            this.age = 18;//給一個(gè)默認(rèn)年齡
        }
    }

    public double getSalary() {
        //可以這里增加對(duì)當(dāng)前對(duì)象的權(quán)限判斷
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }
    //寫一個(gè)方法,返回屬性信息
    public String info() {
        return "信息為 name=" + name  + " age=" + age + " 薪水=" + salary;
    }
}

在這里插入圖片描述

在這里插入圖片描述

6. 將構(gòu)造器和 setXxx 結(jié)合

在使用構(gòu)造方法時(shí),也同樣可以驗(yàn)證,把 set 方法寫到構(gòu)造器中,在上面的基礎(chǔ)上增加如下

		//如果我們自己使用構(gòu)造器指定屬性
        Person person1 = new Person("云兮動(dòng)人", 200, 10000);
        System.out.println("====兮動(dòng)人的信息====");
        System.out.println(person1.info());

	//有三個(gè)屬性的構(gòu)造器
    public Person(String name, int age, double salary) {
       /* this.name = name;
        this.age = age;
        this.salary = salary;*/
        //可以將 set 方法寫在構(gòu)造器當(dāng)中,這樣仍然可以驗(yàn)證
        setName(name);
        setAge(age);
        setSalary(salary);
    }

在這里插入圖片描述

7. 練習(xí)

在這里插入圖片描述

public class Account {
    //為了封裝,將3個(gè)屬性設(shè)置為private
    private String name;
    private double balance;
    private String pwd;

    //提供兩個(gè)構(gòu)造器
    public Account() {
    }

    public Account(String name, double balance, String pwd) {
        this.setName(name);
        this.setBalance(balance);
        this.setPwd(pwd);
    }

    public String getName() {
        return name;
    }

    //姓名(長度為2位3位或4位)
    public void setName(String name) {
        if (name.length() >= 2 && name.length() <= 4) {
            this.name = name;
        } else {
            System.out.println("姓名要求(長度為2位3位或4位),默認(rèn)值 無名");
            this.name = "無名";
        }
    }

    public double getBalance() {
        return balance;
    }

    //余額(必須>20)
    public void setBalance(double balance) {
        if (balance > 20) {
            this.balance = balance;
        } else {
            System.out.println("余額(必須>20) 默認(rèn)為0");
        }
    }

    public String getPwd() {
        return pwd;
    }

    //密碼(必須是六位)
    public void setPwd(String pwd) {
        if (pwd.length() == 6) {
            this.pwd = pwd;
        } else {
            System.out.println("密碼(必須是六位)默認(rèn)密碼為 000000");
            this.pwd = "000000";
        }
    }
    //顯示賬號(hào)信息
    public void showInfo() {
        //可以增加權(quán)限的校驗(yàn)
        System.out.println("賬號(hào)信息 name=" + name + " 余額=" + balance + " 密碼" + pwd);
//        if() {
//            System.out.println("賬號(hào)信息 name=" + name + " 余額=" + balance + " 密碼");
//        }else{
//            System.out.println("你無權(quán)查看...");
//        }
    }
}
public class TestAccount {
    public static void main(String[] args) {
        //創(chuàng)建Account
        Account account = new Account();
        account.setName("jack");
        account.setBalance(60);
        account.setPwd("123456");

        account.showInfo();
    }
}

在這里插入圖片描述

在這里插入圖片描述

到此這篇關(guān)于Java 封裝的使用詳解的文章就介紹到這了,更多相關(guān)Java 封裝內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java異常處理 如何跟蹤異常的傳播路徑

    Java異常處理 如何跟蹤異常的傳播路徑

    這篇文章主要介紹了Java異常處理 如何跟蹤異常的傳播路徑,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Java學(xué)習(xí)隨記之多線程編程

    Java學(xué)習(xí)隨記之多線程編程

    這篇文章主要介紹了Java中的多線程編程的相關(guān)知識(shí),文中的示例代碼介紹詳細(xì),對(duì)我們的學(xué)習(xí)或工作有一定的價(jià)值,感興趣的小伙伴可以了解一下
    2021-12-12
  • Java spring事務(wù)及事務(wù)不生效的原因詳解

    Java spring事務(wù)及事務(wù)不生效的原因詳解

    在日常編碼過程中常常涉及到事務(wù),在前兩天看到一篇文章提到了Spring事務(wù),那么在此總結(jié)下在Spring環(huán)境下事務(wù)失效的幾種原因
    2021-09-09
  • 了解SpringMVC的上傳和下載

    了解SpringMVC的上傳和下載

    今天小編就為大家分享一篇關(guān)于Spring整合Springmvc的相關(guān)介紹,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2021-07-07
  • Maven中exec插件執(zhí)行Java程序的實(shí)現(xiàn)

    Maven中exec插件執(zhí)行Java程序的實(shí)現(xiàn)

    在Maven項(xiàng)目中,可以使用Maven的插件來執(zhí)行Java程序,本文主要介紹了Maven中exec插件執(zhí)行Java程序的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • Springboot之@Controller注解不生效問題及解決

    Springboot之@Controller注解不生效問題及解決

    這篇文章主要介紹了Springboot之@Controller注解不生效問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 談?wù)凥ttpClient使用詳解

    談?wù)凥ttpClient使用詳解

    這篇文章給大家介紹HttpClient使用,httpClient是一個(gè)客戶端的http通信實(shí)現(xiàn)庫,HttpClient的目標(biāo)是發(fā)送和接收HTTP報(bào)文。本文講解的非常詳細(xì),對(duì)HttpClient使用感興趣的朋友可以參考下
    2015-10-10
  • 解讀maven項(xiàng)目的打包方式

    解讀maven項(xiàng)目的打包方式

    這篇文章主要介紹了關(guān)于maven項(xiàng)目的打包方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • javaweb配置jsp路徑映射操作

    javaweb配置jsp路徑映射操作

    這篇文章主要介紹了javaweb配置jsp路徑映射操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 深入淺析 Spring Security 緩存請(qǐng)求問題

    深入淺析 Spring Security 緩存請(qǐng)求問題

    這篇文章主要介紹了 Spring Security 緩存請(qǐng)求問題,本文通過實(shí)例文字相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2019-04-04

最新評(píng)論

屏山县| 兴文县| 亚东县| 长葛市| 神木县| 开封市| 泸定县| 武宣县| 青铜峡市| 泾阳县| 金昌市| 高淳县| 澳门| 东乌珠穆沁旗| 成都市| 苍山县| 涿州市| 荣昌县| 隆回县| 紫金县| 延庆县| 宣武区| 固始县| 黄梅县| 新津县| 蓬溪县| 大悟县| 滨州市| 芜湖市| 信宜市| 宝应县| 和平区| 吴旗县| 岳池县| 彭水| 永登县| 梧州市| 英山县| 临城县| 清新县| 宣城市|