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

示例解析java面向?qū)ο缶幊谭庋b與訪問(wèn)控制

 更新時(shí)間:2023年05月30日 09:35:25   作者:移動(dòng)安全星球  
這篇文章主要為大家介紹了java封裝與訪問(wèn)控制的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

封裝(Encapsulation)

是面向?qū)ο缶幊痰囊粋€(gè)核心概念,它意味著將數(shù)據(jù)(屬性)和方法(操作數(shù)據(jù)的函數(shù))捆綁在一起,形成一個(gè)類(Class)。封裝的目的是將數(shù)據(jù)和操作數(shù)據(jù)的方法隱藏起來(lái),以防止外部對(duì)數(shù)據(jù)的直接訪問(wèn)。這樣,我們就可以通過(guò)定義公共接口(Public Interface)來(lái)控制外部對(duì)類的訪問(wèn),提高代碼的可維護(hù)性和安全性。

Java 提供了四種訪問(wèn)修飾符(Access Modifier)來(lái)實(shí)現(xiàn)封裝,它們分別是:public、privateprotected 和不寫(xiě)(默認(rèn))。訪問(wèn)修飾符可以修飾類的屬性和方法,不同的訪問(wèn)修飾符有不同的訪問(wèn)權(quán)限。

  • public:最高權(quán)限,表示該屬性或方法可以被任何其他類訪問(wèn)。
  • private:最低權(quán)限,表示該屬性或方法只能被其所在的類訪問(wèn)。
  • protected:較低權(quán)限,表示該屬性或方法可以被其所在類及其子類和同一包中的其他類訪問(wèn)。
  • 默認(rèn):表示該屬性或方法可以被其所在類和同一包中的其他類訪問(wèn),但不能被子類訪問(wèn)。

通過(guò)案例了解這四種訪問(wèn)修飾符

// 位于包 com.example 的 Person 類
package com.example;
public class Person {
    public String name;        // 公共屬性,任何類都可以訪問(wèn)
    private int age;           // 私有屬性,只能在 Person 類中訪問(wèn)
    protected String address;  // 受保護(hù)屬性,可以在 Person 類,同一包中的類和子類中訪問(wèn)
    String phoneNumber;        // 默認(rèn)屬性,可以在 Person 類和同一包中的類訪問(wèn),但不能被子類訪問(wèn)
    public void sayHello() {   // 公共方法,任何類都可以訪問(wèn)
        System.out.println("Hello! I am " + name);
    }
    private void growUp() {    // 私有方法,只能在 Person 類中訪問(wèn)
        age++;
    }
    protected void changeAddress(String newAddress) { // 受保護(hù)方法,可以在 Person 類,同一包中的類和子類中訪問(wèn)
        address = newAddress;
    }
    void updatePhoneNumber(String newNumber) { // 默認(rèn)方法,可以在 Person 類和同一包中的類訪問(wèn),但不能被子類訪問(wèn)
        phoneNumber = newNumber;
    }
}
// 位于包 com.example 的 Employee 類
package com.example;
public class Employee extends Person {
    public void work() {
        sayHello();            // 可以訪問(wèn)父類的公共方法 sayHello
        changeAddress("New York"); // 可以訪問(wèn)父類的受保護(hù)方法 changeAddress
    }
}
// 位于包 com.other 的 Another 類
package com.other;
import com.example.Person;
public class Another {
    public void test() {
        Person person = new Person();
        person.sayHello();     // 可以訪問(wèn) Person 類的公共方法 sayHello
    }
}

這個(gè)例子中,Person 類有四個(gè)屬性和四個(gè)方法,分別使用了四種不同的訪問(wèn)修飾符。Employee 類繼承了 Person 類,可以訪問(wèn)其公共方法和受保護(hù)方法。Another 類雖然不在同一包中,但是可以訪問(wèn) Person 類的公共方法。

當(dāng)我們?cè)O(shè)計(jì)類時(shí),應(yīng)該盡量將屬性設(shè)置為 private,并通過(guò)公共方法(如 getter 和 setter)來(lái)訪問(wèn)這些屬性。這樣做可以確保類的實(shí)現(xiàn)細(xì)節(jié)不會(huì)泄露給外部,提高代碼的可維護(hù)性和安全性。

總結(jié)

封裝和訪問(wèn)控制是面向?qū)ο缶幊痰暮诵母拍钪弧Mㄟ^(guò)使用訪問(wèn)修飾符,我們可以限制類的屬性和方法的訪問(wèn)權(quán)限,從而保護(hù)類的實(shí)現(xiàn)細(xì)節(jié)。理解這些概念并在實(shí)際編程中應(yīng)用它們,可以幫助我們編寫(xiě)更加健壯、可維護(hù)的代碼。

以上就是示例解析java封裝與訪問(wèn)控制的詳細(xì)內(nèi)容,更多關(guān)于java封裝訪問(wèn)控制的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java常用API介紹之包裝類

    java常用API介紹之包裝類

    這篇文章主要介紹了java常用API介紹之包裝類,API,即Application Programming Interface,中文名稱是“應(yīng)用程序接口",這些接口就是"jdk所提供"給我們使用的類,需要的朋友可以參考下
    2023-04-04
  • 基于java中正則操作的方法總結(jié)

    基于java中正則操作的方法總結(jié)

    本篇文章介紹了,在java中正則操作的方法總結(jié)。需要的朋友參考下
    2013-05-05
  • 使用SpringMVC在redirect重定向的時(shí)候攜帶參數(shù)的問(wèn)題

    使用SpringMVC在redirect重定向的時(shí)候攜帶參數(shù)的問(wèn)題

    這篇文章主要介紹了使用SpringMVC在redirect重定向的時(shí)候攜帶參數(shù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 在IDEA中配置tomcat并創(chuàng)建tomcat項(xiàng)目的圖文教程

    在IDEA中配置tomcat并創(chuàng)建tomcat項(xiàng)目的圖文教程

    這篇文章主要介紹了在IDEA中配置tomcat并創(chuàng)建tomcat項(xiàng)目的圖文教程,需要的朋友可以參考下
    2020-07-07
  • Java中JFrame實(shí)現(xiàn)無(wú)邊框無(wú)標(biāo)題方法

    Java中JFrame實(shí)現(xiàn)無(wú)邊框無(wú)標(biāo)題方法

    這篇文章主要介紹了Java中JFrame實(shí)現(xiàn)無(wú)邊框無(wú)標(biāo)題方法,本文直接給出代碼實(shí)例,需要的朋友可以參考下
    2015-05-05
  • JAVA的反射機(jī)制你了解多少

    JAVA的反射機(jī)制你了解多少

    這篇文章主要為大家詳細(xì)介紹了JAVA的反射機(jī)制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • Java中Sentinel框架詳解

    Java中Sentinel框架詳解

    Sentinel是一個(gè)高可用、高擴(kuò)展、高穩(wěn)定性的開(kāi)源流量控制和熔斷降級(jí)框架,可以在分布式系統(tǒng)中實(shí)現(xiàn)實(shí)時(shí)的流量控制,防止系統(tǒng)因流量過(guò)大導(dǎo)致系統(tǒng)崩潰和服務(wù)降級(jí),Sentinel面向所有的Java應(yīng)用,本文就給大家詳細(xì)介紹一下Java中Sentinel框架,需要的朋友可以參考下
    2023-06-06
  • 詳解SpringBoot中Controller接收對(duì)象列表實(shí)現(xiàn)

    詳解SpringBoot中Controller接收對(duì)象列表實(shí)現(xiàn)

    這篇文章主要介紹了詳解SpringBoot中Controller接收對(duì)象列表實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • JAVA如何調(diào)用wsdl過(guò)程詳解

    JAVA如何調(diào)用wsdl過(guò)程詳解

    這篇文章主要介紹了JAVA如何調(diào)用wsdl過(guò)程詳解,文中介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 在Java中將List轉(zhuǎn)換為String輸出過(guò)程解析

    在Java中將List轉(zhuǎn)換為String輸出過(guò)程解析

    這篇文章主要介紹了在Java中將List轉(zhuǎn)換為String輸出過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09

最新評(píng)論