国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java中的封裝

2019-11-06 07:43:55
字體:
供稿:網(wǎng)友

面向?qū)ο蟮娜筇匦裕悍庋b、繼承、多態(tài)

一、什么是java中的封裝

1、概念

將類的某些信息隱藏在類內(nèi)部,不允許外部程序直接訪問,而是通過該類提供的方法來實(shí)現(xiàn)對隱藏信息的操作和訪問。

2、好處:

a.只能通過規(guī)定的方法訪問數(shù)據(jù) b.隱藏類的事例細(xì)節(jié),方便修改和實(shí)現(xiàn)

3、封裝的實(shí)現(xiàn)步驟(即隱藏屬性,通過方法得到屬性)

step1、修改屬性的可見性(設(shè)為PRivate) step2、創(chuàng)建getter/setter方法(用于屬性的讀寫) step3、在getter/setter方法中加入屬性控制語句(對屬性值的合法性進(jìn)行判斷)

二、使用包管理Java中的類

1、包的作用:

管理Java文件解決同名文件沖突

2、定義包:

package 包名注:必須放在Java源程序的第一行,包名間可以用”.”號隔開

3、系統(tǒng)中的包

java.(功能).(類)java.lang.(類)包含java語言基礎(chǔ)的類java.util.(類)包含java語言中各種工具類java.io.(類)包含輸入、輸出相關(guān)功能的類

4、包的使用

(1)可以通過import關(guān)鍵字,在某個(gè)文件使用其它文件中的類。

import java.util.(類)

(2)Java中,包的命名規(guī)范是全小寫字母拼寫 (3)加載某個(gè)包下的所有文件

import java.util.*

三、Java中的訪問修飾符

作用:可以修飾屬性和方法的訪問范圍

這里寫圖片描述

屬性通常設(shè)為private

四、Java中的this關(guān)鍵字

1、this關(guān)鍵字代表當(dāng)前對象

this.屬性 操作當(dāng)前對象的屬性this.方法 調(diào)用當(dāng)前對象的方法

2、封裝對象的屬性的時(shí)候,經(jīng)常會使用this關(guān)鍵字

五、Java中的內(nèi)部類

1、什么是內(nèi)部類?

定義在另外一個(gè)類里面的類。與之對應(yīng),包含內(nèi)部類的類被稱為外部類。

2、內(nèi)部類的主要作用:

內(nèi)部類提供了更好的封裝,可以把內(nèi)部類隱藏在外部類之內(nèi),不允許同一個(gè)包中的其他類訪問該類。內(nèi)部類的方法可以直接訪問外部類的所有數(shù)據(jù),包括私有的數(shù)據(jù)內(nèi)部類所實(shí)現(xiàn)的功能使用外部類同樣可以實(shí)現(xiàn),只是有時(shí)使用內(nèi)部類更方便

3、內(nèi)部類的種類

成員內(nèi)部類靜態(tài)內(nèi)部類方法內(nèi)部類匿名內(nèi)部類

六、成員內(nèi)部類

1、內(nèi)部類中最常見的就是成員內(nèi)部類,也稱為普通內(nèi)部類。 2、成員內(nèi)部類的使用方法:

Inner 類定義在 Outer 類的內(nèi)部,相當(dāng)于 Outer 類的一個(gè)成員變量的位置,Inner 類可以使用任意訪問控制符,如public 、 protected 、 private 等Inner 類中定義的方法可以直接訪問 Outer 類中的數(shù)據(jù),而不受訪問控制符的影響定義了成員內(nèi)部類后,必須使用外部類對象來創(chuàng)建內(nèi)部類對象,而不能直接去 new 一個(gè)內(nèi)部類對象,即: 內(nèi)部類 對象名 = 外部類對象.new 內(nèi)部類( );外部類不能直接使用內(nèi)部類的成員和方法,可先創(chuàng)建內(nèi)部類的對象,然后通過內(nèi)部類的對象來訪問其成員變量和方法。如果外部類和內(nèi)部類具有相同的成員變量或方法,內(nèi)部類默認(rèn)訪問自己的成員變量或方法,如果要訪問外部類的成員變量,可以使用 this 關(guān)鍵字。

七、靜態(tài)內(nèi)部類

靜態(tài)內(nèi)部類不能直接訪問外部類的非靜態(tài)成員,但可以通過 new 外部類().成員 的方式訪問如果外部類的靜態(tài)成員與內(nèi)部類的成員名稱相同,可通過“類名.靜態(tài)成員”訪問外部類的靜態(tài)成員;如果外部類的靜態(tài)成員與內(nèi)部類的成員名稱不相同,則可通過“成員名”直接調(diào)用外部類的靜態(tài)成員創(chuàng)建靜態(tài)內(nèi)部類的對象時(shí),不需要外部類的對象,可以直接創(chuàng)建 內(nèi)部類 對象名= new 內(nèi)部類();

八、方法內(nèi)部類

方法內(nèi)部類就是內(nèi)部類定義在外部類的方法中,方法內(nèi)部類只在該方法的內(nèi)部可見,即只在該方法內(nèi)可以使用。由于方法內(nèi)部類不能在外部類的方法以外的地方使用,因此方法內(nèi)部類不能使用訪問控制符和 static 修飾符。

九、構(gòu)造方法私有化

類的封裝性不光體現(xiàn)在對屬性的封裝上,實(shí)際上方法也是可以被封裝的,當(dāng)然,在方法封裝中也包含了對構(gòu)造方法的封裝。class Singleton{ private Singleton(){} // 此處將構(gòu)造方法進(jìn)行封裝}

十、匿名對象

只使用一次的對象,稱為匿名對象。匿名對象只在堆內(nèi)存中開辟空間,而不存在棧內(nèi)存的引用。public class NonameDemo01 { public static void main(String args[]) { new Person("張三", 30).tell(); // 匿名對象 }}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 都兰县| 竹北市| 台南县| 黎川县| 辽源市| 定结县| 通江县| 黔南| 禹州市| 岚皋县| 简阳市| 湘乡市| 兴宁市| 丰顺县| 栾城县| 大荔县| 靖州| 忻城县| 涡阳县| 西宁市| 兰西县| 镇远县| 高尔夫| 南开区| 靖宇县| 合阳县| 遂川县| 荃湾区| 岢岚县| 英超| 延川县| 将乐县| 金平| 应城市| 湘潭市| 泸西县| 云南省| 隆回县| 舞阳县| 浠水县| 广东省|