示例解析java面向?qū)ο缶幊谭庋b與訪問控制
封裝(Encapsulation)
是面向?qū)ο缶幊痰囊粋€核心概念,它意味著將數(shù)據(jù)(屬性)和方法(操作數(shù)據(jù)的函數(shù))捆綁在一起,形成一個類(Class)。封裝的目的是將數(shù)據(jù)和操作數(shù)據(jù)的方法隱藏起來,以防止外部對數(shù)據(jù)的直接訪問。這樣,我們就可以通過定義公共接口(Public Interface)來控制外部對類的訪問,提高代碼的可維護(hù)性和安全性。
Java 提供了四種訪問修飾符(Access Modifier)來實現(xiàn)封裝,它們分別是:public
、private
、protected
和不寫(默認(rèn))。訪問修飾符可以修飾類的屬性和方法,不同的訪問修飾符有不同的訪問權(quán)限。
- public:最高權(quán)限,表示該屬性或方法可以被任何其他類訪問。
- private:最低權(quán)限,表示該屬性或方法只能被其所在的類訪問。
- protected:較低權(quán)限,表示該屬性或方法可以被其所在類及其子類和同一包中的其他類訪問。
- 默認(rèn):表示該屬性或方法可以被其所在類和同一包中的其他類訪問,但不能被子類訪問。
通過案例了解這四種訪問修飾符
// 位于包 com.example 的 Person 類 package com.example; public class Person { public String name; // 公共屬性,任何類都可以訪問 private int age; // 私有屬性,只能在 Person 類中訪問 protected String address; // 受保護(hù)屬性,可以在 Person 類,同一包中的類和子類中訪問 String phoneNumber; // 默認(rèn)屬性,可以在 Person 類和同一包中的類訪問,但不能被子類訪問 public void sayHello() { // 公共方法,任何類都可以訪問 System.out.println("Hello! I am " + name); } private void growUp() { // 私有方法,只能在 Person 類中訪問 age++; } protected void changeAddress(String newAddress) { // 受保護(hù)方法,可以在 Person 類,同一包中的類和子類中訪問 address = newAddress; } void updatePhoneNumber(String newNumber) { // 默認(rèn)方法,可以在 Person 類和同一包中的類訪問,但不能被子類訪問 phoneNumber = newNumber; } }
// 位于包 com.example 的 Employee 類 package com.example; public class Employee extends Person { public void work() { sayHello(); // 可以訪問父類的公共方法 sayHello changeAddress("New York"); // 可以訪問父類的受保護(hù)方法 changeAddress } }
// 位于包 com.other 的 Another 類 package com.other; import com.example.Person; public class Another { public void test() { Person person = new Person(); person.sayHello(); // 可以訪問 Person 類的公共方法 sayHello } }
這個例子中,Person
類有四個屬性和四個方法,分別使用了四種不同的訪問修飾符。Employee
類繼承了 Person
類,可以訪問其公共方法和受保護(hù)方法。Another
類雖然不在同一包中,但是可以訪問 Person
類的公共方法。
當(dāng)我們設(shè)計類時,應(yīng)該盡量將屬性設(shè)置為 private
,并通過公共方法(如 getter 和 setter)來訪問這些屬性。這樣做可以確保類的實現(xiàn)細(xì)節(jié)不會泄露給外部,提高代碼的可維護(hù)性和安全性。
總結(jié)
封裝和訪問控制是面向?qū)ο缶幊痰暮诵母拍钪弧Mㄟ^使用訪問修飾符,我們可以限制類的屬性和方法的訪問權(quán)限,從而保護(hù)類的實現(xiàn)細(xì)節(jié)。理解這些概念并在實際編程中應(yīng)用它們,可以幫助我們編寫更加健壯、可維護(hù)的代碼。
以上就是示例解析java封裝與訪問控制的詳細(xì)內(nèi)容,更多關(guān)于java封裝訪問控制的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用SpringMVC在redirect重定向的時候攜帶參數(shù)的問題
這篇文章主要介紹了使用SpringMVC在redirect重定向的時候攜帶參數(shù)的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03在IDEA中配置tomcat并創(chuàng)建tomcat項目的圖文教程
這篇文章主要介紹了在IDEA中配置tomcat并創(chuàng)建tomcat項目的圖文教程,需要的朋友可以參考下2020-07-07Java中JFrame實現(xiàn)無邊框無標(biāo)題方法
這篇文章主要介紹了Java中JFrame實現(xiàn)無邊框無標(biāo)題方法,本文直接給出代碼實例,需要的朋友可以參考下2015-05-05詳解SpringBoot中Controller接收對象列表實現(xiàn)
這篇文章主要介紹了詳解SpringBoot中Controller接收對象列表實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05在Java中將List轉(zhuǎn)換為String輸出過程解析
這篇文章主要介紹了在Java中將List轉(zhuǎn)換為String輸出過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09