Java中的封裝性(包含this關鍵字,構(gòu)造器等)
一、封裝性的含義
封裝性的作為java面向?qū)ο笏枷氲娜筇卣髦弧?/p>
從字面上看,就是將一部分的東西整合成一個整體。
用專業(yè)的術語來講,可以理解為:隱藏對象內(nèi)部的復雜性,只對外公開簡單的接口。
(通俗來講封裝性的設計思想:把該隱藏的隱藏起來,該暴露的暴露出來)
二、封裝性的作用
①提高了代碼的復用性。
②提高了代碼的安全性。(利用private訪問控制符,讓訪問權(quán)限降到最低,從而提高安全性)
③降低了代碼的復雜程度。(將復雜的內(nèi)部細節(jié)全部進行封裝,只留下簡單的接口,通過接口進行對方法的調(diào)用。)
三、封裝性的體現(xiàn)
在了解實現(xiàn)分裝性前我們要先了解Java的四種權(quán)限修飾符。
3.1、四種權(quán)限修飾符的介紹
Java權(quán)限修飾符 public、protected、default、private 可以放置在類的成員對象定義前
4 種權(quán)限用來修飾類及類的內(nèi)部結(jié)構(gòu):屬性、方法、構(gòu)造器、內(nèi)部類 (不同權(quán)限的訪問權(quán)限如下:)

注意:class 的權(quán)限修飾只可以用public 和 default(缺?。?/p>
3.2、分裝性具體的實現(xiàn)
我們將類的屬性私有化(private)同時,要提供公共的(public)getxxx和setxxx方法來獲取和輸出值。(示例代碼如下)
package cn.spilt_charging.contact;
public class Animal {
public static void main(String[] args) {
animals animals = new animals();
animals.name = "小白";
//animals.age = 10; //無法直接調(diào)用(age為私有性)
//animals.legs = 4; //無法直接調(diào)用(legs為私有性)
animals.setAge(10); //通過權(quán)限為public的setAge()方法錄入age的值
animals.setLeg(4); //通過權(quán)限為public的setLeg()方法錄入legs的值
System.out.print("這只動物的名字叫做:" + animals.name +
",年齡為:" + animals.getAge() + "歲," + "有" + animals.getLeg() + "條腿");
//相對應的私有性的age和legs要分別使用getAge()、getLeg()方法輸出。
}
}
class animals{
String name; //動物的名字
private int age; //動物的年齡(私有性)
private int legs; //動物的腿的個數(shù)(私有性)
public void setLeg(int legs) { //legs對應的set方法
this.legs = legs;
}
public int getLeg(){ //legs對應的get方法
return legs;
}
public void setAge(int age) { //age對應的set方法
this.age = age;
}
public int getAge() { //age對用的get方法
return age;
}
}(代碼中涉及到了Java的構(gòu)造器和this關鍵字,下面會一一進行介紹)
四、構(gòu)造器的解釋
4.1、構(gòu)造器的作用
①創(chuàng)建對象
②初始化對象的屬性
4.2、注意事項
①如果沒有顯示的定義類的構(gòu)造器的話,則系統(tǒng)默認提供一個空參的構(gòu)造器。
②定義構(gòu)造器的格式:權(quán)限修飾符 類名(形參列表){}
③一個類中定義的多個構(gòu)造器,彼此之間會構(gòu)成重載。
④一旦顯示的定義類的構(gòu)造器后,系統(tǒng)就不會再提供默認的空參構(gòu)造器。
⑤一個類中,至少有一個構(gòu)造器。
4.3、構(gòu)造器的舉例說明
(這些都是構(gòu)造器)
public animals() {
System.out.print(".......");
}
public animals(String name) {
name = name;
}
public animals(String name,int age) {
name = name;
age = age;
}就3.2的代碼來說,下面代碼中 animals()就是構(gòu)造器
animals animals = new animals();
五、this關鍵字的使用
this 用來修飾、調(diào)用:屬性、方法、構(gòu)造器
5.1、this修飾屬性和方法
this 理解為:當前對象 , 或當前正在創(chuàng)建的對象。
①在類的方法中,我們可以使用 "this. 屬性 " 或 "this. 方法 " 的方式,調(diào)用當前對象屬性或方法。通常情況下,我們都選擇省略“this.”。特殊情況下,如果方法的形參和類的屬性同名,我們必須顯式的使用 "this. 變量 " 的方式,表明此變量是屬性,而非形參。
②在類的構(gòu)造器中,我們可以使用 "this. 屬性 " 或 "this. 方法 " 的方式,調(diào)用正在創(chuàng)建的對象屬性和方法。但是,通常情況下,我們都選擇省略“this.”。特殊情況下,如果構(gòu)造器的形參和類的屬性同名,我們必須顯式的使用 "this. 變量 " 的方式,表明此變量是屬性,而非形參。
5.2、this 調(diào)用構(gòu)造器
① 我們可以在類的構(gòu)造器中,顯式的使用 " this( 形參列表 ) " 的方式,調(diào)用本類中重載的其他的構(gòu)造器!
② 構(gòu)造器中不能通過 "this ( 形參列表 ) " 的方式調(diào)用自己。
③ 如果一個類中有 n 個構(gòu)造器,則最多有 n -1 個構(gòu)造器中使用了"this ( 形參列表 )"。
④ 規(guī)定: " this( 形參列表 ) " 必須聲明在類的構(gòu)造器的首行!
⑤ 在類的一個構(gòu)造器中,最多只能聲明一個 "this( 形參列表 )",用來調(diào)用其他構(gòu)造器。
5.3、this的舉例
如3.2的代碼所示:
public void setLeg(int legs) { //legs對應的set方法
this.legs = legs;
}
public void setAge(int age) { //age對應的set方法
this.age = age;
}總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
解決idea中maven項目打包成jar報錯:沒有主清單屬性的問題
這篇文章主要給大家分享了idea中maven項目打包成jar,報錯沒有主清單屬性解決方法,文中有詳細的解決方法,如果又遇到同樣問題的朋友可以參考一下本文2023-09-09
Java使用WebFlux調(diào)用大模型實現(xiàn)智能對話
這篇文章主要為大家詳細介紹了Java如何使用WebFlux調(diào)用大模型實現(xiàn)智能對話效果,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2025-06-06
java 裝飾模式(Decorator Pattern)詳解及實例代碼
裝飾器模式(Decorator Pattern)允許向一個現(xiàn)有的對象添加新的功能,同時又不改變其結(jié)構(gòu)。這種類型的設計模式屬于結(jié)構(gòu)型模式,它是作為現(xiàn)有的類的一個包裝2016-10-10
idea配置全局變量Jdk、maven倉庫以及maven詳解(全文圖解)
這篇文章主要給大家介紹了關于idea配置全局變量Jdk、maven倉庫以及maven的相關資料,在配置JDK和Maven之前,需要確保已經(jīng)正確安裝了JDK和Maven,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2024-01-01
基于SpringBoot打造一個通用CLI命令系統(tǒng)
在日常開發(fā)中,某些情況下可能需要為服務提供一個命令行工具(CLI),方便運維、調(diào)試或者遠程調(diào)用業(yè)務接口,下面我們就來使用SpringBoot打造一個通用的CLI命令系統(tǒng)吧2025-12-12

