国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

什么是面向?qū)ο螅?

DirtyMind / 2459人閱讀

摘要:第一章面向?qū)ο笮“资且婚T(mén)完全面向?qū)ο蟮木幊陶Z(yǔ)言嗯什么是面向過(guò)程什么又是面向?qū)ο竽卮罄性谖覀冋竭M(jìn)入學(xué)習(xí)這部分前,了解一下面向過(guò)程和面向?qū)ο筮@兩個(gè)概念,對(duì)于我們接下來(lái)的學(xué)習(xí)有很大的好處。這一部分我們會(huì)在面向?qū)ο髮W(xué)習(xí)結(jié)束后進(jìn)行系統(tǒng)的整理和總結(jié)。

第一章 面向?qū)ο?/b>
小白:Java是一門(mén)完全面向?qū)ο蟮木幊陶Z(yǔ)言!嗯?什么是面向過(guò)程?什么又是面向?qū)ο竽兀?p>大佬:在我們正式進(jìn)入學(xué)習(xí)這部分前,了解一下面向過(guò)程和面向?qū)ο筮@兩個(gè)概念,對(duì)于我們 接下來(lái)的學(xué)習(xí)有很大的好處。別急,下面我就來(lái)和你說(shuō)一說(shuō)。

面向過(guò)程——步驟化

面向過(guò)程就是分析出實(shí)現(xiàn)需求所需要的步驟,通過(guò)函數(shù)一步一步實(shí)現(xiàn)這些步驟,接著依次調(diào)用即可

面向?qū)ο蟆袨榛?/strong>

面向?qū)ο笫前颜麄€(gè)需求按照特點(diǎn)、功能劃分,將這些存在共性的部分封裝成對(duì)象,創(chuàng)建了對(duì)象不是為了完成某一個(gè)步驟,而是描述某個(gè)事物在解決問(wèn)題的步驟中的行為

小白:面向過(guò)程還挺明白的,面向?qū)ο笠蔡y理解了吧(哭了)

大佬:我再來(lái)舉個(gè)例子再給你好好說(shuō)一說(shuō)

桌球?qū)嵗?幫助理解

我們先提出一個(gè)需求:

設(shè)計(jì)一個(gè)桌球游戲(略過(guò)開(kāi)球,只考慮中間過(guò)程)

面向過(guò)程方式思考:

1.palyer1 擊球

2.實(shí)現(xiàn)畫(huà)面擊球效果

3.判斷是否進(jìn)球及有效

4.palyer2擊球

5.實(shí)現(xiàn)畫(huà)面擊球效果

6.判斷是否進(jìn)球及有效

7.返回步驟1

8.輸出游戲結(jié)果

把上面的步驟通過(guò)函數(shù)一步一步實(shí)現(xiàn),這個(gè)需求就完成了。

面向?qū)ο蠓绞剿伎迹?/strong>

經(jīng)過(guò)觀察我們可以看到,其實(shí)在上面的流程中存在很多共性的地方

所以我們將這些共性部分全集中起來(lái),做成一個(gè)通用的結(jié)構(gòu)

玩家系統(tǒng)(包括palyer1和palyer2)

擊球效果系統(tǒng),負(fù)責(zé)展示給用戶游戲時(shí)的畫(huà)面

規(guī)則系統(tǒng),判斷是否犯規(guī),輸贏等

我們將繁瑣的步驟,通過(guò)行為、功能,模塊化,這就是面向?qū)ο螅覀兩踔量梢岳迷摮绦颍謩e快速實(shí)現(xiàn)8球和斯諾克的不同游戲(只需要修改規(guī)則即可,玩家系統(tǒng),擊球效果系統(tǒng)都是一致的)

面向過(guò)程和面向?qū)ο蟮膬?yōu)缺點(diǎn): 面向過(guò)程

優(yōu)點(diǎn):性能上它是優(yōu)于面向?qū)ο蟮?*,因?yàn)轭愒谡{(diào)用的時(shí)候需要實(shí)例化,開(kāi)銷(xiāo)過(guò)大。

缺點(diǎn):不易維護(hù)、復(fù)用、擴(kuò)展**

用途:?jiǎn)纹瑱C(jī)、嵌入式開(kāi)發(fā)、Linux/Unix等對(duì)性能要求較高的地方

面向?qū)ο?/strong>

優(yōu)點(diǎn):易維護(hù)、易復(fù)用、易擴(kuò)展,由于面向?qū)ο笥?strong>封裝繼承多態(tài)性的特性,可以設(shè)計(jì)出低耦合的系統(tǒng),使系統(tǒng)更加靈活、更加易于維護(hù)
缺點(diǎn):性能比面向過(guò)程低

低耦合,簡(jiǎn)單的理解就是說(shuō),模塊與模塊之間盡可能的獨(dú)立,兩者之間的關(guān)系盡可能簡(jiǎn)單,盡量使其獨(dú)立的完成成一些子功能,這避免了牽一發(fā)而動(dòng)全身的問(wèn)題。這一部分我們會(huì)在面向?qū)ο髮W(xué)習(xí)結(jié)束后進(jìn)行系統(tǒng)的整理和總結(jié)。

只通過(guò)教科書(shū)后的例題是無(wú)法體會(huì)到面向過(guò)程所存在的問(wèn)題的,在一些小例程中,面向過(guò)程感覺(jué)反而會(huì)更加的簡(jiǎn)單,但是一旦面臨較大的項(xiàng)目,我們需要編寫(xiě)N個(gè)功能相似的函數(shù),函數(shù)越來(lái)越多,代碼量越來(lái)越多,Bug之路也就此開(kāi)始了。

1.1 類和對(duì)象

面向?qū)ο蟮乃枷胧侨绾卧趈ava展現(xiàn)的呢? 就是通過(guò)類和對(duì)象

是一組相關(guān)的屬性和行為的集合。是一個(gè)抽象的概念。
對(duì)象是該類事物的具體表現(xiàn)形式。具體存在的個(gè)體。

成員變量事物的屬性

成員方法事物的行為

上面我們說(shuō)了這幾個(gè)概念,那么到底應(yīng)該怎么理解呢?

類就是對(duì)一些具有共性特征,并且行為相似的個(gè)體的描述。

比如小李和老張都有姓名、年齡、身高、體重等一些屬性,并且兩人都能夠進(jìn)行聊天、運(yùn)動(dòng)等相似的行為

由于這兩個(gè)人具有這些共性的地方,所以我們把它抽象出來(lái),定義為一個(gè)——人類,而小李、老王正是這個(gè)類中的個(gè)體(對(duì)象),而個(gè)體才是真正具體的存在,光提到人類,你只知道應(yīng)該有哪些屬性行為,但你不知道他具體的一些值,比如你知道他屬于“人類”所以他應(yīng)該有姓名,年齡等屬性,但你并不知道他具體叫什么,年齡多大了。而小李和老王這兩個(gè)具體的對(duì)象,卻能夠?qū)崒?shí)在在的知道老王今年30歲了、身高175等值。

結(jié)合上面的例子再總結(jié)一下:

成員變量就是用來(lái)描述這個(gè)類的屬性的,比如人類應(yīng)該擁有姓名,年齡等屬性

成員方法就是用來(lái)描述事物的行為的,比如人類能夠聊天、運(yùn)動(dòng)等行為

1.1_1 類的定義及使用

我們了解了類和對(duì)象的基本定義和概念

下面我們就通過(guò)一個(gè)實(shí)例 來(lái)了解到底如定義一個(gè)類

A:類的定義

成員變量:定義格式和普通變量一樣,只是位置不同,在類中,方法外

成員方法:定義格式和普通方法一樣,只是去掉了static(后期講解原因)

B:創(chuàng)建并且使用類

a:創(chuàng)建對(duì)象格式

類名 對(duì)象名 = new 類名();

Eg:Person p = new Person();

b:如何使用成員變量和成員方法呢

對(duì)象名.成員變量

對(duì)象名.成員方法()

Eg:p.reading();

p.sleeping();

其實(shí)我們可以看出來(lái),類的定義還是很簡(jiǎn)單的,結(jié)合了我們前面的知識(shí),只是一些位置上的不同罷了,至于創(chuàng)建對(duì)象格式中每部分的意義我們?cè)谙旅骜R上就要講解了(我們還需要補(bǔ)充一些知識(shí)點(diǎn))

我們先來(lái)看這么一個(gè)話題

經(jīng)常聽(tīng)說(shuō)有一個(gè)詞叫做局部變量,它和類中的成員變量有什么關(guān)系嗎?

1.1_2 成員變量和局部變量的區(qū)別:

(1)在類中的位置不同

成員變量:類中方法外

局部變量:方法定義中或者方法聲明上

(2)在內(nèi)存中的位置不同

成員變量:在堆中

局部變量:在棧中

(3)生命周期不同

成員變量:隨著對(duì)象的創(chuàng)建而存在,隨著對(duì)象的消失而消失

局部變量:隨著方法的調(diào)用而存在,隨著方法的調(diào)用完畢而消失

(4)初始化值不同

成員變量:有默認(rèn)值(下面會(huì)詳講這一點(diǎn))

局部變量:沒(méi)有默認(rèn)值,必須定義,賦值,然后才能使用

關(guān)于初始化問(wèn)題我們?cè)谙旅嬖敿?xì)講解,但是我現(xiàn)在還有一個(gè)問(wèn)題,在我們學(xué)習(xí)java中內(nèi)存分配的時(shí)候,有這樣一>句話,“堆內(nèi)存用來(lái)存放new創(chuàng)建的對(duì)象和數(shù)組” 換句話說(shuō)對(duì)象存在于堆中,而成員變量存在于類中而且對(duì)象是類>的個(gè)體,所以成員變量也存在于堆中,那么問(wèn)題就來(lái)了,按照同樣的方式推導(dǎo)的時(shí)候,則會(huì)發(fā)現(xiàn)方法也和成員變>量一樣存在于對(duì)象中,豈不就是說(shuō),局部變量也存在于堆中呢? 這明顯與我們上面的定義有區(qū)別

一個(gè)類可以創(chuàng)建n個(gè)不同的對(duì)象,當(dāng)我們new一個(gè)對(duì)象后,這個(gè)對(duì)象實(shí)體,已經(jīng)在堆上分配了內(nèi)存空間,由于類>的成員變量在不同的對(duì)象中各不相同(例如,小李和老王的姓名不同),都需要自己各自的存儲(chǔ)空間,所以類的成員變量會(huì)隨著對(duì)象存儲(chǔ)在堆中,而由于類的方法是所有對(duì)象通用的,所以創(chuàng)建對(duì)象時(shí),方法里面的局部變量并沒(méi)有被創(chuàng)建,只有等到對(duì)象使用方法的時(shí)候才會(huì)被壓入棧。

1.1_3 形式參數(shù)的問(wèn)題

我們知道堆中存放著new出來(lái)的對(duì)象以及數(shù)組,兩者均為引用類型

在講數(shù)組的相關(guān)知識(shí)的時(shí)候,我們已經(jīng)講過(guò)了基本類型和數(shù)組這一種引用類型,形式參數(shù)對(duì)實(shí)際參數(shù)的影響

跳轉(zhuǎn)—第三章 3.3_1參數(shù)傳遞問(wèn)題

在我們學(xué)習(xí)對(duì)象后,我們繼續(xù)來(lái)看一下這個(gè)問(wèn)題

基本類型:形式參數(shù)的改變不影響實(shí)際參數(shù)(值傳遞)
引用類型:形式參數(shù)的改變直接影響實(shí)際參數(shù)(引用傳遞)

1.1_4 匿名對(duì)象(理解)

我們先來(lái)了解一下如何創(chuàng)建匿名對(duì)象

(1)簡(jiǎn)單的理解就是:沒(méi)有名字的對(duì)象

(2)應(yīng)用場(chǎng)景

A:調(diào)用方法,僅僅只調(diào)用一次的時(shí)候。

B:可以作為實(shí)際參數(shù)傳遞

好處:匿名對(duì)象調(diào)用完就是垃圾,可以被垃圾回收器回收,并且這樣寫(xiě)比較簡(jiǎn)化。

注意:如果對(duì)一個(gè)對(duì)象的多個(gè)成員進(jìn)行調(diào)用,就必須給這個(gè)對(duì)象起名字(即上圖中的 s),即使用普通創(chuàng)建對(duì)象的方法

我們下面來(lái)看一個(gè)實(shí)例來(lái)看一下如何具體使用匿名對(duì)象

1.1_5 封裝的概述和使用

首先我們先來(lái)簡(jiǎn)單舉一個(gè)例子:

例如:夏天宿舍很熱,我們(用戶)只需要操作遙控器即可使用空調(diào),并不需要了解空調(diào)內(nèi)部是如何運(yùn)行的

現(xiàn)在由于知識(shí)掌握較少,所以對(duì)于封裝的概念理解不是很深,不要著急,先過(guò)一遍,針對(duì)封裝的意義及問(wèn)題我會(huì)寫(xiě)一篇具體的文章,現(xiàn)在只需要有一個(gè)印象即可。

封裝概述:是指隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外提供公共訪問(wèn)方式

封裝好處

· 隱藏實(shí)現(xiàn)細(xì)節(jié),提供公共的訪問(wèn)方式

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

· 提高安全性

封裝原則:

· 將不需要對(duì)外提供的內(nèi)容都隱藏起來(lái)

· 把屬性隱藏,提供公共方法對(duì)其訪問(wèn)

思考過(guò)程:

通過(guò)對(duì)象去給成員變量賦值,可以賦值一些非法的數(shù)據(jù)

這是不合理的。所以在賦值之前應(yīng)該先對(duì)數(shù)據(jù)進(jìn)行判斷

StudenDemo是一個(gè)測(cè)試類,測(cè)試類一般只創(chuàng)建對(duì)象,調(diào)用方法

所以這個(gè)判斷應(yīng)該定義在Student類中。需要使用邏輯語(yǔ)句

邏輯語(yǔ)句應(yīng)該定義在方法中。所以在Student類中提供一個(gè)方法來(lái)對(duì)數(shù)據(jù)進(jìn)行校驗(yàn)

但是如果偏偏不調(diào)用方法來(lái)賦值,還是直接賦值

這樣我們的方法就沒(méi)有起作用

所以我們必須強(qiáng)制要求使用我的方法,而不能直接調(diào)用成員變量

針對(duì)這種情況 Java提供了一個(gè)關(guān)鍵字 private

Private:私有的,可以修飾成員變量和成員方法

被private修飾的成員只能在本類中訪問(wèn),所以外界想要操作類中的成員變量就必須通過(guò)調(diào)用類中的方法來(lái)實(shí)現(xiàn)

1.1_6 訪問(wèn)修飾符

客戶端程序員:即在其應(yīng)用中使用數(shù)據(jù)類型的類消費(fèi)者,他的目標(biāo)是收集各種用來(lái)實(shí)現(xiàn)快速應(yīng)用開(kāi)發(fā)的類。

類創(chuàng)建者:即創(chuàng)建新數(shù)據(jù)類型的程序員,目標(biāo)是構(gòu)建類。  

訪問(wèn)控制存在的原因:

a、讓客戶端程序員無(wú)法觸及他們不應(yīng)該觸及的部分 ;

b、允許庫(kù)設(shè)計(jì)者可以改變類內(nèi)部的工作方式而不用擔(dān)心會(huì)影響到客戶端程序員

java的四個(gè)關(guān)鍵字:public、protected、default、private

(他們決定了緊跟其后被定義的東西可以被誰(shuí)使用)

適用范圍<訪問(wèn)權(quán)限范圍越小,安全性越高>

訪問(wèn)權(quán)限 子類 其他包
public 對(duì)任何人都是可用的
protect 繼承的類可以訪問(wèn)以及和private一樣的權(quán)限
default 繼承的類可以訪問(wèn)以及和private一樣的權(quán)限
private 除類型創(chuàng)建者和類型的內(nèi)部方法之外的任何人都不能訪問(wèn)的元素

1.1_7 private的應(yīng)用標(biāo)準(zhǔn)案例

可用this關(guān)鍵字進(jìn)行完善(一般都是使用完善后的)

this的內(nèi)容在下面馬上介紹

1.1_8 this關(guān)鍵字的概述和應(yīng)用

這里的調(diào)用只能通過(guò)對(duì)象名,這里它應(yīng)該代表的是student的一個(gè)對(duì)象

this:代表所在類的對(duì)象引用

記住: 方法被哪個(gè)對(duì)象調(diào)用,this就代表哪個(gè)對(duì)象

適用:局部變量隱藏成員變量(稍后補(bǔ)充)

1.2 構(gòu)造方法

構(gòu)造方法和它所在類的名字相同,但構(gòu)造方法沒(méi)有返回值。

通常會(huì)使用構(gòu)造方法給一個(gè)類的實(shí)例變量賦初值,或者執(zhí)行其它必要的步驟來(lái)創(chuàng)建一個(gè)完整的對(duì)象

怎么理解呢?

當(dāng)一個(gè)對(duì)象被創(chuàng)建時(shí)候,構(gòu)造方法用來(lái)初始化該對(duì)象。

那么什么叫做初始化呢?

我們要知道嗎,構(gòu)造函數(shù)又被叫做構(gòu)造器,它就是為了初始化類,當(dāng)調(diào)用該構(gòu)造器,會(huì)用值去初始化成員,當(dāng)使用帶參構(gòu)造時(shí),會(huì)將參數(shù)中的值傳遞給成員,而使用無(wú)參構(gòu)造時(shí),即會(huì)用一些默認(rèn)的值來(lái)進(jìn)行成員的初始化

例如:

private String name;

private int age;

public bool flag;

上面的三個(gè)成員變量被無(wú)參構(gòu)造進(jìn)行默認(rèn)初始化的時(shí)候,會(huì)被初始化

name = null; age = 0; flag = false

注意:

A:如果我們沒(méi)有給出構(gòu)造方法,系統(tǒng)將自動(dòng)提供一個(gè)無(wú)參構(gòu)造方法

B:如果我們給出了構(gòu)造方法,系統(tǒng)將不再提供默認(rèn)的無(wú)參構(gòu)造方法

如果這個(gè)時(shí)候我們還想使用無(wú)參構(gòu)造方法,就必須自己給出,建議永遠(yuǎn) 給出無(wú)參構(gòu)造方法(所以我們習(xí)慣于在類中同時(shí)給出無(wú)參和帶參構(gòu)造方法)

給成員變量賦值的兩種方法:

A:setXxx()

B:構(gòu)造方法

講到這里我們不得不提一下,get、set方法,在今后寫(xiě)代碼的時(shí)候,我們需要頻繁的用到,其實(shí)這里就體現(xiàn)了封裝不讓用戶直接操作成員,可以起到安全的作用,具體內(nèi)容可以看前封裝部分的知識(shí)

構(gòu)造方法是為了創(chuàng)建對(duì)象時(shí),傳入一些必要的參數(shù)用來(lái)初始化對(duì)象。

setter/getter是為了控制屬性可不可以讀寫(xiě)

兩者不矛盾

之前在講解類的時(shí)候,我們由于缺少一些知識(shí)的鋪墊,所以我們將類的初始化過(guò)程講一下:

類的初始化過(guò)程

Student s = new Student();在內(nèi)存中做了哪些事情?

·加載Student.class文件進(jìn)內(nèi)存

·在棧內(nèi)存為s開(kāi)辟空間

·在堆內(nèi)存為學(xué)生對(duì)象開(kāi)辟空間

·對(duì)學(xué)生對(duì)象的成員變量進(jìn)行默認(rèn)初始化

·對(duì)學(xué)生對(duì)象的成員變量進(jìn)行顯示初始化

·通過(guò)構(gòu)造方法對(duì)學(xué)生對(duì)象的成員變量賦值

·學(xué)生對(duì)象初始化完畢,把對(duì)象地址賦值給s變量

1.3 static關(guān)鍵字

Static關(guān)鍵字注意事項(xiàng)

A:在靜態(tài)方法中是沒(méi)有this關(guān)鍵字的

靜態(tài)是隨著類的加載而加載,this是隨著對(duì)象的創(chuàng)建而 存在的 → 靜態(tài)比對(duì)象先存在

B:靜態(tài)方法只能訪問(wèn)靜態(tài)的成員變量和靜態(tài)的成員方法

靜態(tài)方法:

A:成員變量:只能訪問(wèn)靜態(tài)變量

B:成員方法:只能訪問(wèn)靜態(tài)成員方法

非靜態(tài)方法:

A:成員變量:可以是靜態(tài)的,也可以是非靜態(tài)的

B:成員方法:可以是靜態(tài)的成員方法,也可以是非靜態(tài)的成員方法

為什么靜態(tài)方法不能訪問(wèn)非靜態(tài)方法呢?

因?yàn)殪o態(tài)方法是隨著類的加載而加載的,靜態(tài)是優(yōu)于對(duì)象存在的,你要訪問(wèn)非靜態(tài)的東西,可是這時(shí)候可能它還不存在。

總結(jié)起來(lái)一句話:靜態(tài)只能訪問(wèn)靜態(tài)

1.4 靜態(tài)變量和成員變量

趁熱打鐵,我們來(lái)對(duì)靜態(tài)變量和成員變量做一些區(qū)分

所屬不同

·靜態(tài)變量屬于類,所以也稱為類變量

·成員變量屬于對(duì)象。所以也稱為實(shí)例變量(對(duì)象變量)

·內(nèi)存中位置不同

·靜態(tài)變量存儲(chǔ)于方法區(qū)的靜態(tài)區(qū)

·成員變量存儲(chǔ)于堆內(nèi)存

·內(nèi)存出現(xiàn)時(shí)間不一樣

·靜態(tài)變量隨著類的加載而加載,隨著類的消失而消失

·成員變量隨著對(duì)象的創(chuàng)建而存在,隨著對(duì)象的消失而消失

·調(diào)用不同·

·靜態(tài)變量可以通過(guò)類名調(diào)用,也可以通過(guò)對(duì)象調(diào)用

·成員變量只能通過(guò)對(duì)象名調(diào)用

方式一 是用對(duì)象調(diào)用成員方法

方式二 是用類調(diào)用成員方法(推薦方式二【需要將對(duì)應(yīng)成員方法寫(xiě)為靜態(tài)的】)

如果不想讓用戶創(chuàng)建對(duì)象調(diào)用成員方法:

只需要把構(gòu)造方法私有,外界就不能創(chuàng)建對(duì)象了

在同一個(gè)文件夾下,類定義兩個(gè)文件夾中和一個(gè)文件夾中是一樣的

1.4 制作文檔注釋和說(shuō)明書(shū)

(一)

制作文檔注釋,文檔說(shuō)明書(shū)工具解析文檔注釋
javadoc工具
D:格式
javadoc -d 目錄 -author -version ArrayTool.java
目錄:就可以寫(xiě)一個(gè)文件夾的路徑
制作幫助文檔出錯(cuò):
找不到可以文檔化的公共或受保護(hù)的類:告訴我們類的權(quán)限不夠(解決辦法: 在class前面加public)

(二)

API(Application Programming Interface)

應(yīng)用程序編程接口(幫助文檔)

Jdk可以幫助我們查閱一些類、方法的詳細(xì)用法以及參數(shù)說(shuō)明,學(xué)會(huì)查閱文檔也是一項(xiàng)很重要的本領(lǐng)(網(wǎng)絡(luò)上自行下載)

下面試著自己通過(guò)查閱文檔使用一個(gè)類

Math類

A:是針對(duì)數(shù)學(xué)進(jìn)行操作的類

B:沒(méi)有構(gòu)造方法,因?yàn)樗某蓡T都是靜態(tài)的

C:產(chǎn)生隨機(jī)數(shù)

public static double random(): [0.0,1.0)

D:如何產(chǎn)生一個(gè)1-100之間的隨機(jī)數(shù)

int number = (int)(Math.random()*100)+1;

E:猜數(shù)字小游戲

1.5 代碼塊

我們下面來(lái)講解這一部分的最后一個(gè)知識(shí)點(diǎn)

(1)用{}括起來(lái)的代碼。

(2)分類:

A:靜態(tài)代碼塊

概念: 在java類中(方法中不能存在靜態(tài)代碼塊)

使用static關(guān) 鍵字和{} 聲明的代碼塊:

執(zhí)行: 靜態(tài)代碼塊在類被加載的時(shí)候就運(yùn)行了,而且只運(yùn)行一次,并且優(yōu) 先于各種代碼塊以及構(gòu)造函數(shù)。

作用: 一般情況下,如果有些代碼需要在項(xiàng)目啟動(dòng)的時(shí)候就執(zhí)行, 這時(shí)候 就需要靜態(tài)代碼塊。比如一個(gè)項(xiàng)目啟動(dòng)需要加載的 很多配置文件等 資源,我們就可以都放入靜態(tài)代碼塊中。

對(duì)類的數(shù)據(jù)進(jìn)行初始化,僅僅只執(zhí)行一次。

B:構(gòu)造代碼塊

概念:在java類中使用{}聲明的代碼塊(和靜態(tài)代碼塊的 區(qū) 別是少了static關(guān)鍵字):

執(zhí)行: 構(gòu)造代碼塊在創(chuàng)建對(duì)象時(shí)被調(diào)用,每次創(chuàng)建對(duì)象都會(huì)調(diào)用一 次,但是優(yōu)先于構(gòu)造函數(shù)執(zhí)行。

作用: 和構(gòu)造函數(shù)的作用類似,都能對(duì)對(duì)象進(jìn)行初始化,并且只要 創(chuàng)建一個(gè)對(duì)象,構(gòu)造代碼塊都會(huì)執(zhí)行一次。但是反過(guò)來(lái),構(gòu) 造函數(shù)則不一定每個(gè)對(duì)象建立時(shí)都執(zhí)行(多個(gè)構(gòu)造函數(shù)情況 下,建立對(duì)象時(shí)傳入的參數(shù)不同則初始化使用對(duì)應(yīng)的構(gòu)造函 數(shù))。

把多個(gè)構(gòu)造方法中相同的代碼可以放到這里,每個(gè)構(gòu)造方法 執(zhí)行前, 首先執(zhí)行構(gòu)造代碼塊。

C:局部代碼塊

用于限定變量的生命周期,及早釋放,提高內(nèi)存利用率。

靜態(tài)代碼塊,構(gòu)造代碼塊,構(gòu)造方法的順序問(wèn)題

·靜態(tài)代碼塊 > 構(gòu)造代碼塊 > 構(gòu)造方法

結(jié)尾:

如果內(nèi)容中有什么不足,或者錯(cuò)誤的地方,歡迎大家給我留言提出意見(jiàn), 蟹蟹大家 !^_^

如果能幫到你的話,那就來(lái)關(guān)注我吧!

在這里的我們素不相識(shí),卻都在為了自己的夢(mèng)而努力 ?

一個(gè)堅(jiān)持推送原創(chuàng)Java技術(shù)的公眾號(hào):理想二旬不止

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/74664.html

相關(guān)文章

  • Python中什么面向對(duì)象-封裝

    摘要:文字有點(diǎn)長(zhǎng),對(duì)于不想看文字的朋友,可以去這里看視頻,內(nèi)容和這個(gè)文字一樣的,視頻可能更好理解回顧面向過(guò)程前面我們已經(jīng)學(xué)過(guò)了面向過(guò)程我們知道,面向過(guò)程的時(shí)候,我們的關(guān)注點(diǎn)是步驟面向過(guò)程做事,就是把一件事情分割為多個(gè)步驟,然后依次去完成每一個(gè)步驟 文字有點(diǎn)長(zhǎng),對(duì)于不想看文字的朋友,可以去這里看視頻,內(nèi)容和這個(gè)文字一樣的,視頻可能更好理解https://www.piqizhu.com/v/yj...

    cangck_X 評(píng)論0 收藏0
  • JS面向對(duì)象之一 【概述】

    摘要:更形象的我們還可以將面向?qū)ο罄斫鉃橐环N宗教信仰。這就導(dǎo)致面向?qū)ο蠼痰某绦騿T們?cè)趯?xiě)時(shí)就很難受。所以為了滿足信仰面向?qū)ο蠼痰男枨笸ㄟ^(guò)構(gòu)造函數(shù)的形式模擬了偽類。這個(gè)套路的核心就是類那么里沒(méi)有類所以其實(shí)是通過(guò)構(gòu)造函數(shù)來(lái)模擬的偽類。 JS面向?qū)ο笾?【概述】 在學(xué)習(xí)JS的面向?qū)ο笾?我們應(yīng)該先自問(wèn)這樣幾個(gè)問(wèn)題: 面向?qū)ο笫鞘裁匆馑? 學(xué)習(xí)面向?qū)ο蟮暮诵氖鞘裁? 為什么要學(xué)習(xí)面向?qū)ο?(它的...

    JohnLui 評(píng)論0 收藏0
  • 面向對(duì)象 方法

    摘要:面向?qū)ο蟮乃枷胍呀?jīng)涉及到軟件開(kāi)發(fā)的各個(gè)方面。面向?qū)ο蟮某绦蛟O(shè)計(jì)是將數(shù)據(jù)成員和屬于此數(shù)據(jù)的操作方法放在同一實(shí)體或?qū)ο笾校褪欠庋b。 面向?qū)ο? 什么是面向?qū)ο?..

    widuu 評(píng)論0 收藏0
  • 初探面向對(duì)象編程之oop與設(shè)計(jì)模式

    摘要:為什么要采用面向?qū)ο缶幊探鉀Q問(wèn)題更容易設(shè)計(jì)計(jì)算機(jī)程序就是為了解決人類的問(wèn)題。面向?qū)ο缶幊绦枰獙?duì)業(yè)務(wù)及代碼的架構(gòu)是有一定的要求的。 1. 編程方式 我們目前的編程方式大體可以有以下三種編程方式: 順序編程 過(guò)程式編程 面向?qū)ο缶幊? 在講面向?qū)ο缶幊虝r(shí)先講一下什么是順序編程,什么是過(guò)程式編程,什么是面向?qū)ο缶幊蹋? 順序編程: 就是只用一個(gè)單線程去執(zhí)行一段代碼,執(zhí)行過(guò)程根據(jù)代碼依次從上...

    BingqiChen 評(píng)論0 收藏0
  • javascript 面向對(duì)象版塊之理解對(duì)象

    摘要:用代碼可以這樣描述安全到達(dá)國(guó)外面向過(guò)程既然說(shuō)了面向?qū)ο螅敲磁c之對(duì)應(yīng)的就是面向過(guò)程。小結(jié)在這篇文章中,介紹了什么是面向?qū)ο蠛兔嫦蜻^(guò)程,以及中對(duì)象的含義。 這是 javascript 面向?qū)ο蟀鎵K的第一篇文章,主要講解對(duì)面向?qū)ο笏枷氲囊粋€(gè)理解。先說(shuō)說(shuō)什么是對(duì)象,其實(shí)這個(gè)還真的不好說(shuō)。我們可以把自己當(dāng)成一個(gè)對(duì)象,或者過(guò)年的時(shí)候相親,找對(duì)象,那么你未來(lái)的老婆也是一個(gè)對(duì)象。我們就要一些屬性,比...

    lovXin 評(píng)論0 收藏0
  • PHP面試之面向對(duì)象(1)

    摘要:二面向?qū)ο笥惺裁刺卣髅嫦驅(qū)ο蟮闹饕卣饔谐橄罄^承封裝和多態(tài)。析構(gòu)函數(shù)析構(gòu)函數(shù)是在引入的,它的作用與調(diào)用時(shí)機(jī)和構(gòu)造函數(shù)剛好相反,它在對(duì)象被銷(xiāo)毀時(shí)自動(dòng)執(zhí)行。 PHP面試專欄正式起更,每周一、三、五更新,提供最好最優(yōu)質(zhì)的PHP面試內(nèi)容。PHP中面向?qū)ο蟪?嫉闹R(shí)點(diǎn)有以下7點(diǎn),我將會(huì)從以下幾點(diǎn)進(jìn)行詳細(xì)介紹說(shuō)明,幫助你更好的應(yīng)對(duì)PHP面試常考的面向?qū)ο笙嚓P(guān)的知識(shí)點(diǎn)和考題。整個(gè)面向?qū)ο笪恼碌慕Y(jié)構(gòu)涉...

    phodal 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

DirtyMind

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<