摘要:知識點總結(jié)面向?qū)ο笾R點總結(jié)面向?qū)ο竺嫦驅(qū)ο蟾拍钍窍鄬τ诿嫦蜻^程而言,過程其實就是函數(shù),對象是將函數(shù)和屬性進行了封裝。指向了該對象關(guān)鍵字代表對象。靜態(tài)變量所屬于類,所以也稱為類變量成員變量存在于堆內(nèi)存中。
Java知識點總結(jié)(面向?qū)ο螅?/b>
@(Java知識點總結(jié))[Java, Java面向?qū)ο骫
[toc]
面向?qū)ο蟾拍?/b>是相對于面向過程而言,過程其實就是函數(shù),對象是將函數(shù)和屬性進行了封裝。
將復(fù)雜的事情簡單化。
面對對象將一切的過程中的執(zhí)行者,變成了指揮者
面向?qū)ο笏枷敕先藗兯伎剂晳T的一種思想
面向?qū)ο蠛兔嫦蜻^程的區(qū)別面向過程:事物比較簡單,可以用線性的思維去解決
面向?qū)ο螅菏挛锉容^復(fù)雜,使用簡單的線性思維無法解決
共同點:都是解決實際問題的一種思維方式。解決復(fù)雜問題,通過面向?qū)ο蠓绞奖阌谖覀儚暮暧^上把握事物之間的復(fù)雜關(guān)系,方便我們分析整個系統(tǒng);具體到微觀操作,仍然使用面向過程方式來處理
Java中的面向?qū)ο?/b> 對象接收消息的實體,一切皆為對象,對象都有屬性和行為,對象都屬于某個類,每個對象都是獨一無二的
類創(chuàng)建對象的藍圖和模板
類的屬性:數(shù)據(jù)抽象
類的方法:行為抽象
構(gòu)造器(構(gòu)造方法)
接口抽象方法的集合
作用:
能力,實現(xiàn)一個接口就代表具備了某方面的能力
約定,一個類實現(xiàn)了接口就必須實現(xiàn)接口中的所有抽象方法否則要被聲明為抽象類
角色,一個類可以實現(xiàn)多個接口來扮演多種角色
接口之間可以繼承而且支持多重繼承
從Java 8開始接口中允許有默認實現(xiàn)
常用到的接口用法
單方法接口(函數(shù)式接口):Lambda表達式、@FunctionalInterface
標識性接口
普通接口
常量接口(接口最不正確的用法)
Java面向?qū)ο笳Z言的三大特點
繼承:從已有類創(chuàng)建新類的過程
父類(超類/基類):提供繼承信息的類
子類(派生類):得到繼承信息的類
封裝:隱藏一切可隱藏的實現(xiàn)細節(jié)提供簡單的編程接口。私有屬性,公有方法。好處:將變化隔離;便于使用;提高重用性,安全性
多態(tài):
方法重新:子類的父類的方法給出自己實現(xiàn)的版本。
對象造型:用父類型的引用去指向子類對象
成員定義在類中。成員有兩種
成員變量:其實對應(yīng)的就是事物的屬性
成員函數(shù):其實對應(yīng)的就是事物的行為
局部變量和成員變量的區(qū)別
成員變量直接定義在類中
局部變量定義在方法中,參數(shù)上,語句中
成員變量在這個類中有效
局部變量只在自己所屬的大括號中內(nèi)有效,大括號結(jié)束,局部變量失去作用域
成員變量定義在堆內(nèi)存中,隨著對象的產(chǎn)生而存在,消失而消失
局部存在于棧內(nèi)存中,隨著所屬區(qū)域的運行而存在,結(jié)束而釋放
構(gòu)造函數(shù)用于給對象進行初始化,函數(shù)中的一種。構(gòu)造函數(shù)是在對象創(chuàng)建時被調(diào)用,而且初始化動作只執(zhí)行一次。
特點:該函數(shù)的沒錯和所在類的名稱相同。不需要指定返回類型。該函數(shù)沒有具體的返回值。
注意:在定義一個類的時候,如果沒有定義一個構(gòu)造函數(shù),系統(tǒng)會自動生成一個無參構(gòu)造函數(shù),以便于該類對象的創(chuàng)建和初始化。如果類中自定了構(gòu)造函數(shù),那么默認的構(gòu)造函數(shù)就沒有了。
構(gòu)造代碼塊和構(gòu)造函數(shù)的區(qū)別構(gòu)造代碼塊:是給所有對象進行初始化,只要對象一建立就會調(diào)用這個代碼塊
構(gòu)造函數(shù):是給與之對應(yīng)的對象進行初始化
創(chuàng)建一個對象內(nèi)存中執(zhí)行過程Person p=new Person();
將硬盤中指定位置的Person.class文件加載進內(nèi)存中
執(zhí)行main方法時,在棧內(nèi)存中開辟了main的空間(壓棧-進棧),然后在main方法的棧區(qū)分配了一個變量P。
new。在堆內(nèi)存中開辟了一個實體空間,分配了一個內(nèi)存首地址。
在該實體空間中進行屬性的空間分配,并進行了默認初始化。
對空間中的屬性進行顯示初始化
進行實體的構(gòu)造代碼塊初始化
調(diào)用該實體對應(yīng)的構(gòu)造函數(shù),進行構(gòu)造函數(shù)初始化
將首地址賦值給p,p變量就引用了該實體。(指向了該對象)
this關(guān)鍵字代表對象。就是所在函數(shù)所屬對象的引用。哪個對象調(diào)用了this所在的函數(shù),this就代表哪個對象
this是方法(除靜態(tài)方法外)中存在的隱式參數(shù),所以在方法中使用this
* 普通方法中,this總是指向調(diào)用該方法的對象。this.xx;(調(diào)用的是成員屬性和成員方法) * 構(gòu)造方法中,this總是指向正要初始化的對象。this(...);(調(diào)用本類對應(yīng)參數(shù)的構(gòu)造函數(shù)) * 注意:this調(diào)用構(gòu)造函數(shù),必須在構(gòu)造函數(shù)的第一行。否則編譯失敗。
this不能用于static修飾的方法
static關(guān)鍵字關(guān)鍵字,是一個修飾符,用于修飾成員(成員變量和成員函數(shù))
在類中,用static聲明的成員變量為靜態(tài)變量,或者叫做:類屬性,類變量,從屬于類,給對象分配的內(nèi)存里沒有它為類的公用變量,屬于類,被該類的所有實例共享,在類被載入時被顯示初始化,對于該類的素有對象來說,static成員變量只有一份。被該類的所有對象共享。
可以使用"對象.類屬性"來調(diào)用。不過,一般都是用"類名.類屬性"。
static變量放置與方法區(qū)中。
用static聲明的方法為靜態(tài)方法
類名.方法名的方式來調(diào)用
在調(diào)用該方法時,不會將對象的引用傳遞給它,所以在static方法中,不可訪問非static的成員
在靜態(tài)方法中,不能用this和supper關(guān)鍵字
成員變量和靜態(tài)變量的區(qū)別
成員變量所屬于對象,所以也稱為實例變量。
靜態(tài)變量所屬于類,所以也稱為類變量
成員變量存在于堆內(nèi)存中。
靜態(tài)變量存在于方法區(qū)中。
成員變量隨著對象的創(chuàng)建而存在,隨著對象被收回而消失。
靜態(tài)成員隨著類的加載而存在,隨著類的消失而消失
成員變量只能被對象所調(diào)用
靜態(tài)變量可以被對象調(diào)用,也可以被類名調(diào)用
所以,成員變量可以稱為對象的特有數(shù)據(jù),靜態(tài)變量稱為對象的共享數(shù)據(jù)靜態(tài)代碼塊
就是一個有靜態(tài)關(guān)鍵字標識的一個代碼塊區(qū)域。定義在類中。
作用:可以完成類的初始化。靜態(tài)代碼塊隨著類的加載而執(zhí)行,而且只執(zhí)行一次。如果和主函數(shù)在同一個類中,優(yōu)先于主函數(shù)執(zhí)行
靜態(tài)代碼塊 --> 構(gòu)造代碼塊 --> 構(gòu)造函數(shù)
繼承類是對對象的抽象,繼承是對某一批類的抽象,從而實現(xiàn)對現(xiàn)實世界到更好的建模
提高代碼的復(fù)用性
extends的意思是"擴展",子類是父類的擴展
子類繼承父類,可以得到父類的全部屬性和方法(除父類的構(gòu)造方法)
Java中只有單繼承,沒有多重繼承。多重繼承會引起混亂,使得繼承鏈過于復(fù)雜,系統(tǒng)難于維護。
Java中的多繼承,可以通過接口來實現(xiàn)
java.lang.Object是所有的類的超類
重載(overload)方法的重載是指一個類中可以定義有相同的名字,但參數(shù)不同的多個方法。調(diào)用時,會根據(jù)不同的參數(shù)列表選擇對應(yīng)的方法
共同:同一個類,同一個方法名
不同:參數(shù)列表不同(類型,個數(shù),順序不同)
與返回值無關(guān)
方法重寫(override)在子類中可以根據(jù)需要對從父類中繼承來的方法進行重寫
重寫方法必須和被重寫方法具有相同方法名稱,參數(shù)列表和返回類型
重寫方法不能使用比被重寫方法更嚴格的訪問權(quán)限(由于多態(tài))
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/69130.html
摘要:最近在備戰(zhàn)面試的過程中,整理一下面試題。成員變量如果沒有被賦初值,則會自動以類型的默認值而賦值一種情況例外被修飾但沒有被修飾的成員變量必須顯示地賦值而局部變量則不會自動賦值。 最近在備戰(zhàn)面試的過程中,整理一下面試題。大多數(shù)題目都是自己手敲的,網(wǎng)上也有很多這樣的總結(jié)。自己感覺總是很亂,所以花了很久把自己覺得重要的東西總結(jié)了一下。 面向?qū)ο蠛兔嫦蜻^程的區(qū)別 面向過程: 優(yōu)點:性能比面...
摘要:而面向搜索引擎,就是我們要及時的使用百度谷歌遇到問題無法解決,先別急著放棄,可以去網(wǎng)絡(luò)尋找答案,你的坑大部分別人都已經(jīng)走過了,大部分都可以找到合適的解決方案。 showImg(https://segmentfault.com/img/remote/1460000019236352?w=866&h=456); 前言: ●眾多的語言,到底哪一門才是適合我的?●我們?yōu)槭裁匆獙W習Java語言呢...
摘要:知識點總結(jié)常用類包裝類知識點總結(jié)常用類包裝類是一個面向?qū)ο蟮恼Z言,但是中的基本數(shù)據(jù)類型卻不是面向?qū)ο蟮?。但是我們在實際使用中經(jīng)常將基本數(shù)據(jù)類型轉(zhuǎn)換成對象,便于操作。 Java知識點總結(jié)(常用類-包裝類) @(Java知識點總結(jié))[Java, Java常用類] [toc] 包裝類(wrapper) Java是一個面向?qū)ο蟮恼Z言,但是Java中的基本數(shù)據(jù)類型卻不是面向?qū)ο蟮摹5俏覀冊趯嶋H...
閱讀 1005·2021-11-17 09:33
閱讀 474·2019-08-30 11:16
閱讀 2532·2019-08-29 16:05
閱讀 3410·2019-08-29 15:28
閱讀 1460·2019-08-29 11:29
閱讀 2008·2019-08-26 13:51
閱讀 3448·2019-08-26 11:55
閱讀 1274·2019-08-26 11:31