" />

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

詳解Java基礎(chǔ)之封裝

 更新時間:2022年01月18日 17:14:05   作者:最愛吃魚罐頭  
這篇文章主要為大家介紹了Java基礎(chǔ)之封裝,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

Java基礎(chǔ)知識(封裝)

封裝

那封裝是什么呢?

在面向?qū)ο蟪淌皆O(shè)計方法中,封裝(英語:Encapsulation)是指一種將抽象性函式接口的實現(xiàn)細(xì)節(jié)部分包裝、隱藏起來的方法。

封裝的目的

  • 直接通過操控類對象來達(dá)到目的,不需要對具體實現(xiàn)十分了解,使類屬性和方法的具體實現(xiàn)對外不可見。不但方便還起到了保護作用。
  • 封裝最主要的功能在于我們能修改自己的實現(xiàn)代碼,而不用修改那些調(diào)用我們代碼的程序片段。
  • 適當(dāng)?shù)姆庋b可以讓程式碼更容易理解與維護,也加強了程式碼的安全性。

 封裝的好處

  • 良好的封裝能夠減少耦合。
  • 類內(nèi)部的結(jié)構(gòu)可以自由修改。
  • 可以對成員變量進(jìn)行更精確的控制。
  • 隱藏信息,實現(xiàn)細(xì)節(jié)。

封裝的步驟

1.修改屬性的可見性來限制對屬性的訪問(一般限制為private),

例如:

public class Person {
    private String name ; // 姓名
    private String gender ; // 性別
    private int age; // 年齡
}

這段代碼中,將 name 、sex和 age 屬性設(shè)置為私有的,只能本類才能訪問,其他類都訪問不了,如此就對信息進(jìn)行了隱藏。

2.對每個值屬性提供對外的公共方法訪問,也就是創(chuàng)建一對賦取值方法,用于對私有屬性的訪問

例如:

public class Person {
    private String name ; // 姓名
    private String gender ; // 性別
    private int age; // 年齡
    public void setName(String name) {
      	this.name = name;
    }
    public String getName() {
      	return name;
    }
	public void setGender(String gender) {
        this.gender = gender;
    }
    public String gender(){
        return gender;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public int getAge() {
      	return age;
    }
}

采用 this 關(guān)鍵字調(diào)用本類中的屬性,也就是類中的成員變量。主要為了解決實例變量(private String name)和局部變量(setName(String name)中的name變量)之間發(fā)生的同名的沖突。

封裝的例子

創(chuàng)建一個用戶類User:

代碼如下:

package com.ygt.pojo;
public class User {
    private String username; // 用戶名
    private String password; // 密碼
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

編寫測試User的demo:EncapsulationDemo

代碼如下:

package com.ygt;
import com.ygt.pojo.User;
public class EncapsulationDemo {
    public static void main(String[] args) {
        User user = new User();
        user.setUsername("最愛吃魚罐頭");
        user.setPassword("520");
        System.out.println("username: " + user.getUsername() + "-----------"
                            + "password: " + user.getPassword());
    }
}

執(zhí)行結(jié)果如下:

username:最愛吃魚罐頭-----------password520

總結(jié)

相信各位看官都對封裝有深入的了解吧,那我們繼續(xù)期待更多Java基礎(chǔ)相關(guān)的內(nèi)容吧!歡迎期待下一章的到來!

封裝實際上是將類的某些信息隱藏在類的內(nèi)部,不允許外部程序直接訪問,而是通過該類提供的方法來實現(xiàn)對隱藏信息的訪問和操作。就是把我們想提供給外界的一些方法給暴露出來,以便外界能調(diào)用到我們。

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Java中堆和棧的區(qū)別詳解

    Java中堆和棧的區(qū)別詳解

    這篇文章主要介紹了Java中堆和棧的區(qū)別詳解,所有的Java程序都運行在JVM虛擬機內(nèi)部,我們這里介紹的自然是JVM(虛擬)內(nèi)存中的堆和棧,需要的朋友可以參考下
    2015-01-01
  • JMeter 實現(xiàn)Java請求步驟及原理詳解

    JMeter 實現(xiàn)Java請求步驟及原理詳解

    這篇文章主要介紹了JMeter 實現(xiàn)Java請求步驟及原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • springboot集成本地緩存Caffeine的三種使用方式(小結(jié))

    springboot集成本地緩存Caffeine的三種使用方式(小結(jié))

    本文主要介紹了springboot集成本地緩存Caffeine的三種使用方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • maven項目切換JDK踩坑指南分享

    maven項目切換JDK踩坑指南分享

    文章介紹了如何在Windows系統(tǒng)中配置多版本JDK環(huán)境,并解決環(huán)境變量配置失效的問題,同時,還提供了在IntelliJ?IDEA中配置不同項目JDK版本的方法
    2024-11-11
  • Java讀取String分行字符串的方法

    Java讀取String分行字符串的方法

    今天小編就為大家分享一篇Java讀取String分行字符串的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 如何在SpringBoot項目中使用Oracle11g數(shù)據(jù)庫

    如何在SpringBoot項目中使用Oracle11g數(shù)據(jù)庫

    這篇文章主要介紹了在SpringBoot項目中使用Oracle11g數(shù)據(jù)庫的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • spring boot項目同時傳遞參數(shù)和文件的多種方式代碼演示

    spring boot項目同時傳遞參數(shù)和文件的多種方式代碼演示

    這篇文章主要介紹了spring boot項目同時傳遞參數(shù)和文件的多種方式,在開發(fā)接口中,遇到了需要同時接收參數(shù)和文件的情況,可以有多種方式實現(xiàn)文件+參數(shù)的接收,這里基于spring boot 3 + vue 3 + axios,做一個簡單的代碼演示,需要的朋友可以參考下
    2023-06-06
  • IDEA連接Mysql數(shù)據(jù)庫的詳細(xì)圖文教程

    IDEA連接Mysql數(shù)據(jù)庫的詳細(xì)圖文教程

    項目開發(fā)時使用Intellij IDEA連接本地數(shù)據(jù)庫,將數(shù)據(jù)庫可視化,還可對數(shù)據(jù)庫表直接進(jìn)行增刪改查操作,方便快捷又清晰,下面這篇文章主要給大家介紹了關(guān)于IDEA連接Mysql數(shù)據(jù)庫的詳細(xì)圖文教程,需要的朋友可以參考下
    2023-03-03
  • 解決springboot 連接 mysql 時報錯 using password: NO的方案

    解決springboot 連接 mysql 時報錯 using password: NO的方案

    在本篇文章里小編給大家整理了關(guān)于解決springboot 連接 mysql 時報錯 using password: NO的方案,有需要的朋友們可以學(xué)習(xí)下。
    2020-01-01
  • spring控制事務(wù)的三種方式小結(jié)

    spring控制事務(wù)的三種方式小結(jié)

    這篇文章主要介紹了spring控制事務(wù)的三種方式小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10

最新評論

都安| 奉化市| 鄯善县| 东台市| 郓城县| 五河县| 福建省| 台东县| 德钦县| 嘉荫县| 德兴市| 夏河县| 永丰县| 布拖县| 长沙县| 江永县| 吴川市| 彭州市| 泗水县| 徐州市| 神农架林区| 清水河县| 竹溪县| 信丰县| 平乐县| 临颍县| 车致| 界首市| 沐川县| 卫辉市| 平利县| 红桥区| 太和县| 许昌市| 峡江县| 孙吴县| 鄂尔多斯市| 乌鲁木齐县| 米脂县| 佛教| 怀集县|