最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一篇文章帶你了解JAVA面對(duì)對(duì)象三大特征之封裝

 更新時(shí)間:2021年08月03日 09:20:26   作者:鉛華殿  
所有的面向?qū)ο缶幊陶Z(yǔ)言的思路都是差不多的,而這三大特性,則是思路中的支柱點(diǎn),接下來(lái)我就重點(diǎn)講解了一下java三大特性-封裝,感興趣的朋友跟隨腳本之家小編一起看看吧

面對(duì)對(duì)象的三大特征: 封裝、繼承、多態(tài)

封裝

封裝是把客觀事物抽象成類(lèi),并且把自己的屬性和方法讓可信的類(lèi)或?qū)ο蟛僮?,?duì)不可性的隱藏。

繼承

繼承是指這樣一種能力:它可以使用現(xiàn)有類(lèi)的所有功能,并在無(wú)需重新編寫(xiě)原來(lái)的類(lèi)的情況下對(duì)這些功能進(jìn)行擴(kuò)展。

1. 繼承得到的新類(lèi)稱(chēng)為“子類(lèi)”或“派生類(lèi)”。被繼承的父類(lèi)稱(chēng)為“基類(lèi)”、“父類(lèi)”或“超類(lèi)”。

2. 繼承的過(guò)程是一個(gè)從一般到特殊的的過(guò)程。

3. 繼承概念的實(shí)現(xiàn)方式有二類(lèi):實(shí)現(xiàn)繼承與接口繼承。實(shí)現(xiàn)繼承是指直接使用基類(lèi)的屬性和方法而無(wú)需額外編碼的能力;接口繼承是指僅使用屬性和方法的名稱(chēng)、但是子類(lèi)必須提供實(shí)現(xiàn)的能力;

多態(tài)

多態(tài)性(polymorphism)是允許你將父對(duì)象設(shè)置成為和一個(gè)或更多的他的子對(duì)象相等的技術(shù),賦值之后,父對(duì)象就可以根據(jù)當(dāng)前賦值給它的子對(duì)象的特性以不同的方式運(yùn)作。這就意味著雖然針對(duì)不同對(duì)象的具體操作不同,但通過(guò)一個(gè)公共的類(lèi),它們(那些操作)可以通過(guò)相同的方式予以調(diào)用。

類(lèi)和對(duì)象

了解封裝之前我們先來(lái)了解什么是類(lèi)和對(duì)象

關(guān)于類(lèi)

類(lèi)是對(duì)象的數(shù)據(jù)類(lèi)型,類(lèi)是具有相同屬性和行為的一組對(duì)象的集合。也就是說(shuō),類(lèi)是對(duì)現(xiàn)實(shí)事物的一種描述,類(lèi)由屬性和行為組成,

類(lèi)的步驟 :

  • ①定義類(lèi)
  • ②編寫(xiě)類(lèi)的成員變量
  • ③編寫(xiě)類(lèi)的成員方法

例如代碼 :

/*
    手機(jī)類(lèi):
        類(lèi)名:
        手機(jī)(Phone)

        成員變量:
        品牌(brand)
        價(jià)格(price)

        成員方法:
        打電話(huà)(call)
        發(fā)短信(sendMessage)
 */
public class Phone {
    //成員變量
    String brand;
    int price;

    //成員方法
    public void call() {
        System.out.println("打電話(huà)");
    }

    public void sendMessage() {
        System.out.println("發(fā)短信");
    }
}

關(guān)于對(duì)象

一句話(huà)描述就是能夠看得到摸的著的真實(shí)存在的實(shí)體

  • 創(chuàng)建對(duì)象的格式:
    • 類(lèi)名 對(duì)象名 = new 類(lèi)名();
  • 調(diào)用成員的格式:
    • 對(duì)象名.成員變量
    • 對(duì)象名.成員方法();

例如代碼 :

/*
    創(chuàng)建對(duì)象
        格式:類(lèi)名 對(duì)象名 = new 類(lèi)名();
        范例:Phone p = new Phone();

    使用對(duì)象
        1:使用成員變量
            格式:對(duì)象名.變量名
            范例:p.brand
        2:使用成員方法
            格式:對(duì)象名.方法名()
            范例:p.call()
 */
public class PhoneDemo {
    public static void main(String[] args) {
        //創(chuàng)建對(duì)象
        Phone p = new Phone();

        //使用成員變量
        System.out.println(p.brand);
        System.out.println(p.price);

        p.brand = "小米";
        p.price = 2999;

        System.out.println(p.brand);
        System.out.println(p.price);

        //使用成員方法
        p.call();
        p.sendMessage();
    }
}

三大特征第一封裝

關(guān)于封裝思想 :

1.封裝概述

是面向?qū)ο笕筇卣髦?br />

是面向?qū)ο缶幊陶Z(yǔ)言對(duì)客觀世界的模擬,客觀世界里成員變量都是隱藏在對(duì)象內(nèi)部的,外界是無(wú)法直接操作的

2.封裝原則

將類(lèi)的某些信息隱藏在類(lèi)內(nèi)部,不允許外部程序直接訪(fǎng)問(wèn),而是通過(guò)該類(lèi)提供的方法來(lái)實(shí)現(xiàn)對(duì)隱藏信息的操作和訪(fǎng)問(wèn)
成員變量private,提供對(duì)應(yīng)的getXxx()/setXxx()方法

3.封裝好處

通過(guò)方法來(lái)控制成員變量的操作,提高了代碼的安全性

把代碼用方法進(jìn)行封裝,提高了代碼的復(fù)用性

private關(guān)鍵字

private是一個(gè)修飾符,可以用來(lái)修飾成員(成員變量,成員方法)

  • 被private修飾的成員,只能在本類(lèi)進(jìn)行訪(fǎng)問(wèn),針對(duì)private修飾的成員變量,如果需要被其他類(lèi)使用,提供相應(yīng)的操作
    • 提供“get變量名()”方法,用于獲取成員變量的值,方法用public修飾
    • 提供“set變量名(參數(shù))”方法,用于設(shè)置成員變量的值,方法用public修飾

this關(guān)鍵字

this修飾的變量用于指代成員變量,其主要作用是(區(qū)分局部變量和成員變量的重名問(wèn)題)

  • 方法的形參如果與成員變量同名,不帶this修飾的變量指的是形參,而不是成員變量
  • 方法的形參沒(méi)有與成員變量同名,不帶this修飾的變量指的是成員變量

圖解

構(gòu)造方法

構(gòu)造方法是一種特殊的方法

  • 作用:創(chuàng)建對(duì)象 Student stu = new Student();
  • 格式:

public class 類(lèi)名{

​ 修飾符 類(lèi)名( 參數(shù) ) {

​ }

}

  • 功能:主要是完成對(duì)象數(shù)據(jù)的初始化

例如代碼 :

class Student {
    private String name;
    private int age;
    //構(gòu)造方法
    public Student() {
        System.out.println("無(wú)參構(gòu)造方法");
    }
    public void show() {
        System.out.println(name + "," + age);
    }
}
/*
    測(cè)試類(lèi)
 */
public class StudentDemo {
    public static void main(String[] args) {
        //創(chuàng)建對(duì)象
        Student s = new Student();
        s.show();
    }
}

構(gòu)造方法注意事項(xiàng)

構(gòu)造方法的創(chuàng)建:

  • a.如果沒(méi)有定義構(gòu)造方法,系統(tǒng)將給出一個(gè)默認(rèn)的無(wú)參數(shù)構(gòu)造方法
  • b.如果定義了構(gòu)造方法,系統(tǒng)將不再提供默認(rèn)的構(gòu)造方法

構(gòu)造方法的重載:

  • 如果自定義了帶參構(gòu)造方法,還要使用無(wú)參數(shù)構(gòu)造方法,就必須再寫(xiě)一個(gè)無(wú)參數(shù)構(gòu)造方法

總結(jié)

本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • JDK8中的HashMap初始化和擴(kuò)容機(jī)制詳解

    JDK8中的HashMap初始化和擴(kuò)容機(jī)制詳解

    這篇文章主要介紹了JDK8中的HashMap初始化和擴(kuò)容機(jī)制,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java?Collection?接口和常用方法綜合詳解

    Java?Collection?接口和常用方法綜合詳解

    Collection派生出三個(gè)子接口,Set代表不可重復(fù)的無(wú)序集合、List代表可重復(fù)的有序集合、Queue是java提供的隊(duì)列實(shí)現(xiàn),通過(guò)它們不斷的擴(kuò)展出很多的集合類(lèi),接下來(lái)我們?cè)敿?xì)介紹一下
    2021-11-11
  • 詳解Java9新特性中的模塊化與反射機(jī)制

    詳解Java9新特性中的模塊化與反射機(jī)制

    Java9中的一個(gè)重大變化就是引入了模塊化系統(tǒng),這個(gè)系統(tǒng)使得Java應(yīng)用程序的構(gòu)建、發(fā)布和部署更加具有可控性和可重用性,與此同時(shí),Java9還改進(jìn)了反射機(jī)制,讓它與模塊化系統(tǒng)更好地配合,本文通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • SpringBoot詳細(xì)講解靜態(tài)資源導(dǎo)入的實(shí)現(xiàn)

    SpringBoot詳細(xì)講解靜態(tài)資源導(dǎo)入的實(shí)現(xiàn)

    在Web開(kāi)發(fā)過(guò)程中,我們需要接觸許多靜態(tài)資源,如CSS、JS、圖片等;在之前的開(kāi)發(fā)中,這些資源都放在Web目錄下,用到的時(shí)候按照對(duì)應(yīng)路徑訪(fǎng)問(wèn)即可。不過(guò)在SpringBoot項(xiàng)目中,沒(méi)有了Web目錄,那這些靜態(tài)資源該放到哪里去,又要如何訪(fǎng)問(wèn)呢?這就是我們要講的靜態(tài)資源導(dǎo)入
    2022-05-05
  • SpringBoot2.0如何自定義404頁(yè)面渲染

    SpringBoot2.0如何自定義404頁(yè)面渲染

    這篇文章主要介紹了SpringBoot2.0如何自定義404頁(yè)面渲染問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 基于Java SWFTools實(shí)現(xiàn)把pdf轉(zhuǎn)成swf

    基于Java SWFTools實(shí)現(xiàn)把pdf轉(zhuǎn)成swf

    這篇文章主要介紹了基于Java SWFTools實(shí)現(xiàn)把pdf轉(zhuǎn)成swf,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 解決mybatis映射結(jié)果集失效的問(wèn)題

    解決mybatis映射結(jié)果集失效的問(wèn)題

    這篇文章主要介紹了解決mybatis映射結(jié)果集失效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • Springboot整合Spring Cloud Kubernetes讀取ConfigMap支持自動(dòng)刷新配置的教程

    Springboot整合Spring Cloud Kubernetes讀取ConfigMap支持自動(dòng)刷新配置的教程

    這篇文章主要介紹了Springboot整合Spring Cloud Kubernetes讀取ConfigMap支持自動(dòng)刷新配置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • spring cloud 之 Feign 使用HTTP請(qǐng)求遠(yuǎn)程服務(wù)的實(shí)現(xiàn)方法

    spring cloud 之 Feign 使用HTTP請(qǐng)求遠(yuǎn)程服務(wù)的實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇spring cloud 之 Feign 使用HTTP請(qǐng)求遠(yuǎn)程服務(wù)的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Java基礎(chǔ)之ClassLoader詳解

    Java基礎(chǔ)之ClassLoader詳解

    這篇文章主要介紹了Java基礎(chǔ)之ClassLoader詳解,文中對(duì)ClassLoader有非常詳細(xì)的解說(shuō),對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04

最新評(píng)論

金阳县| 西安市| 远安县| 香河县| 双柏县| 绥棱县| 钟山县| 冀州市| 原平市| 濉溪县| 广宁县| 张家界市| 都安| 洪泽县| 普陀区| 二连浩特市| 治县。| 囊谦县| 乌拉特前旗| 古田县| 繁昌县| 博野县| 河曲县| 辛集市| 裕民县| 大港区| 永州市| 宜丰县| 富锦市| 波密县| 贵阳市| 长沙市| 鸡西市| 北宁市| 前郭尔| 泸定县| 呼和浩特市| 枣阳市| 青河县| 芦溪县| 石渠县|