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