www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 芯聞號(hào) > 充電吧
[導(dǎo)讀]靜態(tài)代碼塊格式:static{狀態(tài)代碼塊的執(zhí)行語(yǔ)句}特點(diǎn):隨著類的加載而執(zhí)行,只執(zhí)行一次,優(yōu)先于主函數(shù)用于給類進(jìn)行初始化重點(diǎn):靜態(tài)的特性,執(zhí)行順序?Person p = new Person();=&

靜態(tài)代碼塊
格式:
static
{
狀態(tài)代碼塊的執(zhí)行語(yǔ)句
}

特點(diǎn):隨著類的加載而執(zhí)行,只執(zhí)行一次,優(yōu)先于主函數(shù)
用于給類進(jìn)行初始化
重點(diǎn):靜態(tài)的特性,執(zhí)行順序


?

Person p = new Person();

=>JVM
=>棧 main函數(shù)
=>棧生成P變量
=>堆加載Person類
=>靜態(tài)代碼塊執(zhí)行
=>堆開(kāi)辟空間存儲(chǔ)屬性
=>屬性默認(rèn)初始化
=>構(gòu)造代碼塊初始化
=>構(gòu)造函數(shù)初始化
=>P指向生成的Person類,成為對(duì)象


1.因?yàn)閚ew用到了Person,class所以會(huì)先找到Person.class文件并加載到內(nèi)存中
2.執(zhí)行該類的static代碼塊,如果有的話,給Person.class類進(jìn)行初始化
3.在堆內(nèi)存中開(kāi)辟空間,分配內(nèi)存地址
4.在堆內(nèi)存中劍靈對(duì)象的特有屬性,并進(jìn)行默認(rèn)初始化
5.對(duì)屬性進(jìn)行顯示初始化
6.對(duì)對(duì)象進(jìn)行構(gòu)造代碼塊初始化
7.對(duì)對(duì)象進(jìn)行對(duì)于的構(gòu)造函數(shù)初始化
8.將內(nèi)存地址賦值給棧內(nèi)存中P變量

?


擴(kuò)展====>>>>設(shè)計(jì)模式:解決某一類問(wèn)題最行之有效的方法
java中23種通用設(shè)計(jì)模式
單例設(shè)計(jì)模式:解決一個(gè)類在內(nèi)存中只存在一個(gè)對(duì)象
1.為了避免其他程序過(guò)多建立,先禁止其他程序建立該類對(duì)象
2.還為了讓其他程序可以訪問(wèn)到該類對(duì)象,只好在本類中.自定義一個(gè)對(duì)象
3.為了方便其他程序?qū)ψ远x對(duì)象的訪問(wèn),可以對(duì)外提供一些訪問(wèn)方式

具體實(shí)現(xiàn)??????????? (靈活使用static和private修飾符)
1.將構(gòu)造函數(shù)私有化
2.在類中創(chuàng)建一個(gè)本類對(duì)象
3.提供一個(gè)方法可以獲取到該對(duì)象

?


惡漢式>>>>對(duì)象靜態(tài)加載>>>>一般用這個(gè)


懶漢式>>>>對(duì)象延時(shí)加載>>>>存在BUG>>>與CPU處理機(jī)制相關(guān)


繼承:???????

java只支持單繼承,不支持多繼承
因?yàn)槎嗬^承容易帶來(lái)安全隱患:
當(dāng)多個(gè)父類中定義了功能相同內(nèi)容不同時(shí)子類無(wú)法確定運(yùn)行那個(gè)
java其實(shí)保留了多繼承,并用另一種表現(xiàn)形式來(lái)完成>>>多實(shí)現(xiàn)
java支持多層繼承
父類中的內(nèi)容是子類中的共性內(nèi)容
創(chuàng)建對(duì)象時(shí)只創(chuàng)建最子類的對(duì)象即可
>>>>>查閱父類功能,創(chuàng)建子類對(duì)象

super超類>>>父類對(duì)象的引用

this代表的是本類對(duì)象的引用
super代表父類對(duì)象的引用

?

當(dāng)子類出現(xiàn)和父類一模一樣的函數(shù)時(shí),子類的函數(shù)會(huì)覆蓋父類的函數(shù)

當(dāng)子類繼承父類,沿襲了父類的功能,到子類中
但是子類雖級(jí)別該功能,但是內(nèi)容卻和父類不一致
這時(shí),沒(méi)必要定義新功能,而是使用覆蓋,,保留父類的功能,并重寫(xiě)功能

在父類功能上添加內(nèi)容,可以在重寫(xiě)時(shí)使用super關(guān)鍵字保留原內(nèi)容

子類覆蓋父類,必須保證子類權(quán)限大于等于父類權(quán)限,才可以覆蓋
否則會(huì)造成語(yǔ)法上的錯(cuò)誤

靜態(tài)只能覆蓋靜態(tài)

public大于默認(rèn)大于private

重載:阻抗同名函數(shù)的參數(shù)列表
重寫(xiě):子父類方法要一模一樣


子父類構(gòu)造函數(shù)
在子類對(duì)象初始化時(shí),父類的構(gòu)造函數(shù)也會(huì)運(yùn)行
那是因?yàn)樽宇惖臉?gòu)造函數(shù)默認(rèn)第一行有一條隱式的語(yǔ)句 super()
super():會(huì)訪問(wèn)父類中空參數(shù)的構(gòu)造函數(shù)
而且子類中所有的構(gòu)造函數(shù)默認(rèn)第一行都是super()
子類肯定會(huì)訪問(wèn)父類的構(gòu)造函數(shù)
因?yàn)楦割愔械臄?shù)據(jù),子類可以直接獲取,所以子類對(duì)象在建立時(shí)
需要先查看父類是如何對(duì)這些數(shù)據(jù)進(jìn)行初始的
所以子類在對(duì)象初始化時(shí),要先訪問(wèn)下父類中的構(gòu)造函數(shù)
如果要訪問(wèn)父類中指定的構(gòu)造函數(shù),可以通過(guò)搜東定義super()語(yǔ)句的方式來(lái)指定
注意:super語(yǔ)句一定定義在子類構(gòu)造函數(shù)的第一行
this()和super()不能在同時(shí)在構(gòu)造函數(shù)當(dāng)中
因?yàn)樗麄兌急仨殞?xiě)在第一行
必須要先進(jìn)行初始

??? 子類所有的構(gòu)造函數(shù),默認(rèn)都會(huì)訪問(wèn)父類中空參數(shù)的構(gòu)造函數(shù)
??? 因?yàn)樽宇惷恳粋€(gè)構(gòu)造函數(shù)內(nèi)的第一行都有一句隱式的super()
??? 當(dāng)父類中沒(méi)有空參數(shù)的構(gòu)造函數(shù)時(shí)
??? 子類必須手動(dòng)通過(guò)super語(yǔ)句形式來(lái)指定要訪問(wèn)父類中的構(gòu)造函數(shù)
??? 子類中至少會(huì)有一個(gè)剛轉(zhuǎn)身會(huì)訪問(wèn)父類中的構(gòu)造函數(shù)


final關(guān)鍵字(修飾符)>>>>>>最終
可以修飾類,函數(shù),變量
被final修飾的類不可以被繼承
為了避免繼承后被子類復(fù)寫(xiě)
被final修飾的方法不能被復(fù)寫(xiě)
被final修飾的變量是一個(gè)常量,只能賦值一次
既可以修飾成員變量,也可以修飾局部變量
當(dāng)在描述事物時(shí),一些數(shù)據(jù)的出現(xiàn)值是固定的,那么這時(shí)為了增強(qiáng)閱讀性
都給這些值起個(gè)名字方便閱讀,而這個(gè)值不需要改變,所以加上final修飾
注意:常量手寫(xiě)規(guī)范,所有字母都大寫(xiě),如果多個(gè)單詞組成,單詞間_理解
內(nèi)部類定義在局部位置上時(shí),只能訪問(wèn)該局部被final修飾的局部變量


當(dāng)多個(gè)類中出現(xiàn)相同功能,但是功能內(nèi)容不同
這時(shí)可以進(jìn)行向上抽取
這時(shí)只抽取功能第一,而不抽取功能內(nèi)容
abstrace>>抽象
抽象方法一定定義在抽象類中
抽象方法和抽象類都必須被abstract關(guān)鍵字修飾
抽象類不可以用new創(chuàng)建對(duì)象,因?yàn)檎{(diào)用抽象方法沒(méi)意義
抽象類中的方法要被使用,必須由子類復(fù)寫(xiě)所有的抽象方法后,劍靈子類對(duì)象調(diào)用
如果只覆蓋了部分抽象方法,那么該子類還是一個(gè)抽象類
抽象類和一般類沒(méi)有太大的不同
抽象類可以不定義抽象方法,這樣做僅僅是不讓改類建立對(duì)象

模板方法設(shè)計(jì)模式
模板方法:在定義功能時(shí),功能的一部分是確定的,但是有一部分是不確定的
而確定的部分使用不確定的部分
那么就將不確定的部分抽象
由子類具像化


接口:interface
接口的格式特點(diǎn):
接口中常見(jiàn)定義:常量,抽象方法
常量:public static final
抽象方法:public abstract
接口中的成員都是public的(共有的)
接口不可以創(chuàng)建對(duì)象
需要子類將接口具象化
implements?? 具像化接口

接口可以被類多實(shí)現(xiàn),這也java是對(duì)多繼承不支持的轉(zhuǎn)換形式

一個(gè)類可以繼承一個(gè)類以及多個(gè)接口
class 子類名 extends 父類名 implements 接口名,接口名........
接口之間可以有繼承關(guān)系,且接口支持多繼承

接口的特點(diǎn):
對(duì)外暴露的規(guī)則
程序功能的擴(kuò)展
可以用來(lái)多實(shí)現(xiàn)
類與接口之間是實(shí)現(xiàn)關(guān)系,而且類可以繼承一個(gè)類的同時(shí)實(shí)現(xiàn)多個(gè)接口
接口與接口之間可以有繼承關(guān)系


多態(tài):可以理解為事物存在的多種體現(xiàn)形態(tài)
多態(tài)的體現(xiàn)
?父類的引用指向了自己的子類對(duì)象
?父類的引用也可以接收自己的子類對(duì)象
多態(tài)的前提
?必須是類與類之間有關(guān)系>>>>繼承,實(shí)現(xiàn)
?通常還有一個(gè)前提>>>>存在覆蓋
多態(tài)的好處
?多態(tài)的出現(xiàn)大大的提高了程序的擴(kuò)展性
多態(tài)的弊端
?提高了擴(kuò)展性的同時(shí),只能使用父類的引用訪問(wèn)父類中的成員
多態(tài)的應(yīng)用
多態(tài)的出現(xiàn)注意代碼的特點(diǎn)
?

可以向上轉(zhuǎn)型,類型提升
也可以強(qiáng)制將父類的引用轉(zhuǎn)換成子類類型
但是父類的對(duì)象不能強(qiáng)制轉(zhuǎn)換成子類對(duì)象
在多態(tài)的應(yīng)用中,始終是子類在變化

判斷某一類型引用指向的對(duì)象是什么類型>>>>>>>>>>instanceof

在多態(tài)中成員函數(shù)的特點(diǎn)
在編譯時(shí)期,參閱引用型變量所屬的類是否有調(diào)用的方法,如果有編譯通過(guò),沒(méi)有則失敗
在運(yùn)行時(shí)期,參閱對(duì)象所屬類中是否有調(diào)用方法
成員函數(shù)在多態(tài)調(diào)用時(shí),編譯看左邊,運(yùn)行看右邊

在多態(tài)中,成員變量的特點(diǎn)
無(wú)論編譯和運(yùn)行,都參考左邊(引用類型變量所屬的類)

在多態(tài)中,成員函數(shù)的特點(diǎn)
無(wú)論編譯和運(yùn)行都參考左邊

上帝>>>>>>>>>--------------Obhect
所有對(duì)象的超類(多有對(duì)象的直接或者間接父類)
該類中定義的肯定是所有對(duì)象都具備的功能
Object類中已經(jīng)提供了的方法,沒(méi)有必要重新定義
只要沿襲父類中的功能,建立自己特有內(nèi)容,即覆蓋

內(nèi)部類
將一個(gè)類定義在另一個(gè)類里面,對(duì)里面那個(gè)類就稱為內(nèi)部類(內(nèi)置類,箱套類)
訪問(wèn)特點(diǎn):
內(nèi)部類可以直接訪問(wèn)外部類中的成員,包括私有成員
而外部類要訪問(wèn)內(nèi)部類中的成員必須要建立內(nèi)部類的對(duì)象
訪問(wèn)格式:
?1 =>當(dāng)內(nèi)部類定義在外部類的成員位置上,而且非私有,可以在外部其他類中
可以直接建立內(nèi)部類對(duì)象,
格式:
?外部類名.內(nèi)部類名 變量名 = 外部類對(duì)象.內(nèi)部類對(duì)象;
?Outer.Inner in = new Outer().new Inner();
?2 =>單內(nèi)部類在成員位置上,就可以被成員修飾符所修飾
?比如:prinvate 將內(nèi)部類在外部類中進(jìn)行封裝
???? static 內(nèi)部類就具備static的特性
???? 當(dāng)內(nèi)部類被static修飾后,只能直接訪問(wèn)外部類中是static成員出現(xiàn)訪問(wèn)局限
???? 在外部類其他類中,如何直接訪問(wèn)static內(nèi)部類的非靜態(tài)成員
??new Outer.Inner().function()
???? 唉外部其他類中,如何直接訪問(wèn)static內(nèi)部類的靜態(tài)成員
??Outer.Inner.function()
注意:當(dāng)內(nèi)部類中定義了靜態(tài)成員,該內(nèi)部類必須是static的
?當(dāng)外部類中的靜態(tài)方法訪問(wèn)內(nèi)部類時(shí),內(nèi)部類也必須是static的


當(dāng)描述事物時(shí),事物的內(nèi)部還有事物,該事物用內(nèi)部類來(lái)描述
因?yàn)閮?nèi)部事物在使用外部事物的內(nèi)容

內(nèi)部類定義在局部時(shí)
不可以被成員修飾符修飾
可以直接訪問(wèn)外部類中的成員,因?yàn)檫€持有外部類的引用
但是不可以訪問(wèn)它所在的局部中的變量,只能訪問(wèn)被final修飾的局部變量(常量)

匿名內(nèi)部類
匿名內(nèi)部類其實(shí)就是內(nèi)部類的簡(jiǎn)寫(xiě)格式
定義匿名內(nèi)部類的前提:內(nèi)部類必須是繼承一個(gè)類或者實(shí)現(xiàn)一個(gè)借口
匿名內(nèi)部類的格式:new 父類或接口名(){子類內(nèi)容}
其實(shí)匿名內(nèi)部類就是一個(gè)匿名子類對(duì)象


異常
異常的體系
Throwable
|--Error:通常出現(xiàn)大問(wèn)題如:運(yùn)行的類不存在或者內(nèi)存溢出,無(wú)法編寫(xiě)針對(duì)代碼對(duì)其處理
|--Exception:在運(yùn)行時(shí)運(yùn)行出現(xiàn)的一起情況,可以通過(guò)try,catch,finally進(jìn)行針對(duì)處理
Error和Exception的子類名都是以父類名作為后綴

異常:就是程序在運(yùn)行時(shí)出現(xiàn)不正常情況
異常的由來(lái):java對(duì)不正常的情況的封裝

異常的處理(Exception):
try
{
可能出現(xiàn)異常的代碼
}
catch(Exception e)
{
出現(xiàn)異常時(shí)的處理代碼
(對(duì)捕獲到底異常進(jìn)行常見(jiàn)出方法操作:e.printStackTrace)
(String.getMessage(),獲取異常信息)
}
finally
{
一定會(huì)執(zhí)行的語(yǔ)句
}


在功能上通過(guò)throws關(guān)鍵字,在函數(shù)上聲明該功能有可能出現(xiàn)問(wèn)題,即聲明異常
便于提高安全性,強(qiáng)制讓調(diào)用處進(jìn)行處理,不處理編譯失敗
?
對(duì)多異常的處理
聲明異常時(shí),建議聲明更為具體的異常,這樣可以更具體的處理
聲明幾個(gè)異常,就應(yīng)該對(duì)應(yīng)有幾個(gè)catch處理方法
如果多個(gè)catch接手的異常出現(xiàn)繼承關(guān)系時(shí),父類要放最下面
每個(gè)catch應(yīng)該針對(duì)接手的異常進(jìn)行針對(duì)性處理

因?yàn)轫?xiàng)目中會(huì)出現(xiàn)特有的問(wèn)題
而這些問(wèn)題并未被Java所描述并封裝對(duì)象
所有對(duì)于這些特有的問(wèn)題可以按照J(rèn)ava的對(duì)問(wèn)題封裝的思想
將特有的問(wèn)題,進(jìn)行自定義的異常封裝
即自定義異常:
自定義異常需要繼承于父類異常(Exception類)
可以用throw拋出異常對(duì)象
那么就必須要給出對(duì)應(yīng)的處理動(dòng)作
一般函數(shù)類出現(xiàn)異常,函數(shù)上要聲明
自定義異常你可以自定義異常信息(重寫(xiě)getMessate函數(shù))
只有異常體系(Throwable)中的類和對(duì)象才可以被throws和throw拋出

shrows和shrow的區(qū)別
shrows使用在函數(shù)上,后面跟異常類,可以跟多個(gè),用,隔開(kāi)
shrow作用在函數(shù)內(nèi),后面跟的是異常對(duì)象

Exception中有一個(gè)特殊的子類異常RuntimeException運(yùn)行異常
如果函數(shù)內(nèi)容拋出該異常,函數(shù)上可以不用聲明,編譯一樣通過(guò)
如果在函數(shù)上聲明了異常,調(diào)用者可以不用進(jìn)行處理,編譯一樣通過(guò)
之所以不用再函數(shù)上聲明,是因?yàn)椴恍枰屨{(diào)用者處理
單該異常發(fā)生,希望程序停止因?yàn)樵谶\(yùn)行時(shí),出現(xiàn)了無(wú)法繼續(xù)運(yùn)算的情況
希望停止程序后,對(duì)代碼進(jìn)行修正

自定義異常時(shí),如果該異常的發(fā)生,無(wú)法再繼續(xù)運(yùn)算
就讓自定義異常繼承RuntimeException

對(duì)于異常可分為編譯時(shí)異常和運(yùn)行時(shí)異常(RuntimeException)

try
{
}
catch
{
處理異常后也可以拋出異常(用于被調(diào)用者識(shí)別)
}
finally
{
無(wú)論如何都會(huì)被執(zhí)行的代碼
(通常用于關(guān)閉資源.)
}


其他格式
try
{
}
finally
{
}
注:catch是用于處理異常的,如果沒(méi)有catch就代表異常沒(méi)有被處理過(guò),
如果該異常是檢測(cè) 時(shí)異常,那么必須聲明出去


異常在子父類覆蓋中的體現(xiàn)
子類在覆蓋父類時(shí),如果父類的方法拋出異常,
那么子類的覆蓋方法只能拋出父類的異常或該父類異常的子類(可以不拋異常)
如果父類方法拋出多個(gè)異常,子類在覆蓋該方法時(shí),只能拋出父類異常的子集
如果父類方法沒(méi)有異常拋出,子類在覆蓋方法是時(shí),不可以拋出異常
子類方法發(fā)生了異常,就必須用catch進(jìn)行處理,絕對(duì)不能拋出


包(package)
對(duì)類文件進(jìn)行分類管理
給類提供多層命名空間
寫(xiě)在文件的第一行
類名的全稱是? 包名.類名

包名所有字母小寫(xiě)

當(dāng)程序中使用packate時(shí)
在編譯時(shí)的格式為
javac -d 目錄名 類名.java

protected(保護(hù)權(quán)限)? 權(quán)限修飾符

?


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉