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

Java中的封裝性(包含this關(guān)鍵字,構(gòu)造器等)

 更新時(shí)間:2024年03月27日 09:06:04   作者:ice-Hamster  
這篇文章主要介紹了Java中的封裝性(包含this關(guān)鍵字,構(gòu)造器等)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、封裝性的含義

封裝性的作為java面向?qū)ο笏枷氲娜筇卣髦弧?/p>

從字面上看,就是將一部分的東西整合成一個(gè)整體。

用專業(yè)的術(shù)語來講,可以理解為:隱藏對(duì)象內(nèi)部的復(fù)雜性,只對(duì)外公開簡(jiǎn)單的接口。

(通俗來講封裝性的設(shè)計(jì)思想:把該隱藏的隱藏起來,該暴露的暴露出來)       

二、封裝性的作用

①提高了代碼的復(fù)用性。

②提高了代碼的安全性。(利用private訪問控制符,讓訪問權(quán)限降到最低,從而提高安全性)

③降低了代碼的復(fù)雜程度。(將復(fù)雜的內(nèi)部細(xì)節(jié)全部進(jìn)行封裝,只留下簡(jiǎn)單的接口,通過接口進(jìn)行對(duì)方法的調(diào)用。)

三、封裝性的體現(xiàn)

在了解實(shí)現(xiàn)分裝性前我們要先了解Java的四種權(quán)限修飾符。

3.1、四種權(quán)限修飾符的介紹

Java權(quán)限修飾符 public、protected、default、private 可以放置在類的成員對(duì)象定義前

4 種權(quán)限用來修飾類及類的內(nèi)部結(jié)構(gòu):屬性、方法、構(gòu)造器、內(nèi)部類 (不同權(quán)限的訪問權(quán)限如下:)

注意:class 的權(quán)限修飾只可以用public 和 default(缺?。?。

3.2、分裝性具體的實(shí)現(xiàn)

我們將類的屬性私有化(private)同時(shí),要提供公共的(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("這只動(dòng)物的名字叫做:" + animals.name + 
				",年齡為:" + animals.getAge() + "歲," + "有" + animals.getLeg() + "條腿");
		//相對(duì)應(yīng)的私有性的age和legs要分別使用getAge()、getLeg()方法輸出。
	}
}
 
class animals{
	String name; //動(dòng)物的名字
	private int age;  //動(dòng)物的年齡(私有性)
	private int legs;  //動(dòng)物的腿的個(gè)數(shù)(私有性)
	
	public void setLeg(int legs) {  //legs對(duì)應(yīng)的set方法
		this.legs = legs;
	}
	
	public int getLeg(){    //legs對(duì)應(yīng)的get方法
		return legs;
	}
	
	public void setAge(int age) {  //age對(duì)應(yīng)的set方法
		this.age = age;
	}
	
	public int getAge() {   //age對(duì)用的get方法
		return age;
	}
}

(代碼中涉及到了Java的構(gòu)造器和this關(guān)鍵字,下面會(huì)一一進(jìn)行介紹)

四、構(gòu)造器的解釋

4.1、構(gòu)造器的作用

①創(chuàng)建對(duì)象

②初始化對(duì)象的屬性

4.2、注意事項(xiàng)

①如果沒有顯示的定義類的構(gòu)造器的話,則系統(tǒng)默認(rèn)提供一個(gè)空參的構(gòu)造器。

②定義構(gòu)造器的格式:權(quán)限修飾符 類名(形參列表){}  

③一個(gè)類中定義的多個(gè)構(gòu)造器,彼此之間會(huì)構(gòu)成重載。

④一旦顯示的定義類的構(gòu)造器后,系統(tǒng)就不會(huì)再提供默認(rèn)的空參構(gòu)造器。

⑤一個(gè)類中,至少有一個(gè)構(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關(guān)鍵字的使用

this 用來修飾、調(diào)用:屬性、方法、構(gòu)造器

5.1、this修飾屬性和方法 

this 理解為:當(dāng)前對(duì)象 , 或當(dāng)前正在創(chuàng)建的對(duì)象。

①在類的方法中,我們可以使用 "this. 屬性 " 或 "this. 方法 " 的方式,調(diào)用當(dāng)前對(duì)象屬性或方法。通常情況下,我們都選擇省略“this.”。特殊情況下,如果方法的形參和類的屬性同名,我們必須顯式的使用 "this. 變量 " 的方式,表明此變量是屬性,而非形參。

②在類的構(gòu)造器中,我們可以使用 "this. 屬性 " 或 "this. 方法 " 的方式,調(diào)用正在創(chuàng)建的對(duì)象屬性和方法。但是,通常情況下,我們都選擇省略“this.”。特殊情況下,如果構(gòu)造器的形參和類的屬性同名,我們必須顯式的使用 "this. 變量 " 的方式,表明此變量是屬性,而非形參。

5.2、this 調(diào)用構(gòu)造器

① 我們可以在類的構(gòu)造器中,顯式的使用 " this( 形參列表 ) " 的方式,調(diào)用本類中重載的其他的構(gòu)造器!

② 構(gòu)造器中不能通過 "this ( 形參列表 ) " 的方式調(diào)用自己。

③ 如果一個(gè)類中有 n 個(gè)構(gòu)造器,則最多有 n -1 個(gè)構(gòu)造器中使用了"this ( 形參列表 )"。

④ 規(guī)定: " this( 形參列表 ) " 必須聲明在類的構(gòu)造器的首行!

⑤ 在類的一個(gè)構(gòu)造器中,最多只能聲明一個(gè) "this( 形參列表 )",用來調(diào)用其他構(gòu)造器。

5.3、this的舉例

如3.2的代碼所示:

	public void setLeg(int legs) {  //legs對(duì)應(yīng)的set方法
		this.legs = legs;
	}
 
	public void setAge(int age) {  //age對(duì)應(yīng)的set方法
		this.age = age;
	}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java后端服務(wù)間歇性響應(yīng)慢的問題排查與解決

    Java后端服務(wù)間歇性響應(yīng)慢的問題排查與解決

    之前在公司內(nèi)其它團(tuán)隊(duì)找到幫忙排查的一個(gè)后端服務(wù)連接超時(shí)問題,問題的表現(xiàn)是服務(wù)部署到線上后出現(xiàn)間歇性請(qǐng)求響應(yīng)非常慢(大于10s),但是后端業(yè)務(wù)分析業(yè)務(wù)日志時(shí)卻沒有發(fā)現(xiàn)慢請(qǐng)求,所以本文給大家介紹了Java后端服務(wù)間歇性響應(yīng)慢的問題排查與解決,需要的朋友可以參考下
    2025-03-03
  • jmeter正則表達(dá)式提取器的用法與正則詳解

    jmeter正則表達(dá)式提取器的用法與正則詳解

    在使用Jmeter過程中,會(huì)經(jīng)常使用到正則表達(dá)式提取器提取器,下面這篇文章主要給大家介紹了關(guān)于jmeter正則表達(dá)式提取器的用法與正則的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Spring使用xml方式整合第三方框架流程詳解

    Spring使用xml方式整合第三方框架流程詳解

    這篇文章主要介紹了Spring使用xml方式整合第三方框架流程,Spring會(huì)在應(yīng)用上下文中為某個(gè)bean尋找其依賴的bean,Spring中bean有三種裝配機(jī)制,分別是:在xml中顯式配置、在java中顯式配置、隱式的bean發(fā)現(xiàn)機(jī)制和自動(dòng)裝配
    2023-02-02
  • Java隨機(jī)數(shù)算法原理與實(shí)現(xiàn)方法實(shí)例詳解

    Java隨機(jī)數(shù)算法原理與實(shí)現(xiàn)方法實(shí)例詳解

    這篇文章主要介紹了Java隨機(jī)數(shù)算法原理與實(shí)現(xiàn)方法,簡(jiǎn)單分析了隨機(jī)數(shù)算法的原理并結(jié)合具體實(shí)例形式給出了java編程計(jì)算隨機(jī)數(shù)的具體操作技巧,需要的朋友可以參考下
    2017-09-09
  • Java Socket一對(duì)多通信實(shí)現(xiàn)之并發(fā)處理方式

    Java Socket一對(duì)多通信實(shí)現(xiàn)之并發(fā)處理方式

    這篇文章主要介紹了Java Socket一對(duì)多通信實(shí)現(xiàn)之并發(fā)處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • SpringBoot項(xiàng)目中訪問HTML頁面的三種方法

    SpringBoot項(xiàng)目中訪問HTML頁面的三種方法

    這篇文章主要介紹了SpringBoot項(xiàng)目中訪問HTML頁面的三種方法,文中通過代碼示例和圖文結(jié)合的方式講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • 你必須得會(huì)的SpringBoot全局統(tǒng)一處理異常詳解

    你必須得會(huì)的SpringBoot全局統(tǒng)一處理異常詳解

    程序在運(yùn)行的過程中,不可避免會(huì)產(chǎn)生各種各樣的錯(cuò)誤,這個(gè)時(shí)候就需要進(jìn)行異常處理,本文主要為大家介紹了SpringBoot實(shí)現(xiàn)全局統(tǒng)一處理異常的方法,需要的可以參考一下
    2023-06-06
  • Java基礎(chǔ)之引用相關(guān)知識(shí)總結(jié)

    Java基礎(chǔ)之引用相關(guān)知識(shí)總結(jié)

    今天聊聊Java的引用,大多數(shù)時(shí)候我們說引用都是強(qiáng)引用,只有在對(duì)象不使用的情況下才會(huì)釋放內(nèi)存,其實(shí)Java 內(nèi)存有四種不同的引用.一起看看吧,,需要的朋友可以參考下
    2021-05-05
  • Maven項(xiàng)目引用第三方j(luò)ar包找不到類ClassNotFoundException

    Maven項(xiàng)目引用第三方j(luò)ar包找不到類ClassNotFoundException

    這篇文章主要為大家介紹了Maven項(xiàng)目引用第三方j(luò)ar包找不到類ClassNotFoundException解決及原因分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Struts和servlet不能共存問題解決方法

    Struts和servlet不能共存問題解決方法

    這篇文章主要介紹了Struts和servlet不能共存問題解決方法,共有三種方法,需要的朋友可以參考下。
    2017-09-09

最新評(píng)論