" />

欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

封裝

那封裝是什么呢?

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

封裝的目的

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

 封裝的好處

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

封裝的步驟

1.修改屬性的可見(jiàn)性來(lái)限制對(duì)屬性的訪問(wèn)(一般限制為private),

例如:

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

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

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

例如:

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)用本類中的屬性,也就是類中的成員變量。主要為了解決實(shí)例變量(private String name)和局部變量(setName(String name)中的name變量)之間發(fā)生的同名的沖突。

封裝的例子

創(chuàng)建一個(gè)用戶類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;
    }
}

編寫(xiě)測(cè)試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("最愛(ài)吃魚(yú)罐頭");
        user.setPassword("520");
        System.out.println("username: " + user.getUsername() + "-----------"
                            + "password: " + user.getPassword());
    }
}

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

username:最愛(ài)吃魚(yú)罐頭-----------password520

總結(jié)

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

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

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

相關(guān)文章

  • 詳解如何將Spring Boot應(yīng)用跑在Docker容器中

    詳解如何將Spring Boot應(yīng)用跑在Docker容器中

    這篇文章主要介紹了詳解如何將Spring Boot應(yīng)用跑在Docker容器中,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • springboot如何獲取applicationContext?servletContext

    springboot如何獲取applicationContext?servletContext

    這篇文章主要介紹了springboot如何獲取applicationContext?servletContext問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 解決springMVC 跳轉(zhuǎn)js css圖片等靜態(tài)資源無(wú)法加載的問(wèn)題

    解決springMVC 跳轉(zhuǎn)js css圖片等靜態(tài)資源無(wú)法加載的問(wèn)題

    下面小編就為大家?guī)?lái)一篇解決springMVC 跳轉(zhuǎn)js css圖片等靜態(tài)資源無(wú)法加載的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • Java volatile關(guān)鍵字原理剖析與實(shí)例講解

    Java volatile關(guān)鍵字原理剖析與實(shí)例講解

    volatile是Java提供的一種輕量級(jí)的同步機(jī)制,Java?語(yǔ)言包含兩種內(nèi)在的同步機(jī)制:同步塊(或方法)和?volatile?變量,本文將詳細(xì)為大家總結(jié)Java volatile關(guān)鍵字,通過(guò)詳細(xì)的代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • MyBatis XPathParser解析器使用范例詳解

    MyBatis XPathParser解析器使用范例詳解

    這篇文章主要介紹了關(guān)于MyBatis中解析器XPathParser的實(shí)際使用實(shí)踐,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2022-07-07
  • SpringBoot啟動(dòng)后立即執(zhí)行的幾種方法小結(jié)

    SpringBoot啟動(dòng)后立即執(zhí)行的幾種方法小結(jié)

    在項(xiàng)目開(kāi)發(fā)中某些場(chǎng)景必須要用到啟動(dòng)項(xiàng)目后立即執(zhí)行方式的功能,本文主要介紹了SpringBoot啟動(dòng)后立即執(zhí)行的幾種方法小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-05-05
  • Springboot應(yīng)用gradle?Plugin示例詳解

    Springboot應(yīng)用gradle?Plugin示例詳解

    這篇文章主要介紹了Springboot應(yīng)用gradle?Plugin詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • Java異常的幾個(gè)謎題_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java異常的幾個(gè)謎題_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    本文給大家收藏整理java異常的幾個(gè)謎題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-06-06
  • java線程池ThreadPoolExecutor類使用小結(jié)

    java線程池ThreadPoolExecutor類使用小結(jié)

    這篇文章主要介紹了java線程池ThreadPoolExecutor類使用,本文主要對(duì)ThreadPoolExecutor的使用方法進(jìn)行一個(gè)詳細(xì)的概述,示例代碼介紹了ThreadPoolExecutor的構(gòu)造函數(shù)的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2022-03-03
  • java實(shí)現(xiàn)簡(jiǎn)單的客戶信息管理系統(tǒng)

    java實(shí)現(xiàn)簡(jiǎn)單的客戶信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單的客戶信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06

最新評(píng)論