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

