激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java this、final等關(guān)鍵字總結(jié)

Java this、final等關(guān)鍵字總結(jié)

2020-09-12 15:35DeMon輝 Java教程

這篇文章主要對java中this、final等關(guān)鍵字進(jìn)行了總結(jié),需要的朋友可以參考下

this

關(guān)鍵字this引用對象自身。它也可以在構(gòu)造方法內(nèi)部用于調(diào)用同一個(gè)類的其他構(gòu)造方法。

隱藏的靜態(tài)變量可以通過”類.靜態(tài)變量”來引用,而隱藏的實(shí)例變量就需要使用”this.實(shí)例變量”來引用。

調(diào)用一個(gè)重載的構(gòu)造方法this引用是必須的。

this是個(gè)隱式參數(shù),代表當(dāng)前對象

?
1
2
3
4
5
publie class Student{
 private String name;
 public void setName(String name){
 this.name=name; //this.name為當(dāng)前對象的成員變量
} }

如果某個(gè)構(gòu)造方法的第一個(gè)語句具有形式this( ••• ),那么這個(gè)構(gòu)造方法將調(diào)用同一類中的其他構(gòu)造方法。

注意:

在構(gòu)造器中this(…)必須放在該構(gòu)造器的第一行。

this不能出現(xiàn)在靜態(tài)方法里面

super

super關(guān)鍵字代指父類,可以用于調(diào)用父類的普通方法和構(gòu)造方法。

super()表示調(diào)用父類的構(gòu)造器

super.方法來引用父類的方法

super()也和this()一樣必須放在方法的第一句

super()和this()不能同時(shí)出現(xiàn)

super可以屏蔽子類屬性和父類屬性重名時(shí)帶來的屬性遮蓋,super. 表示調(diào)用父類的方法或?qū)傩?/p>

在子類的構(gòu)造器中如果沒有指定調(diào)用父類的哪一個(gè)構(gòu)造器,那么就會(huì)調(diào)用父類的無參構(gòu)造器,即super()

注意:

父類的構(gòu)造器不能被子類繼承

方法和屬性可以被繼承,權(quán)限不限制能否繼承過來,限制的是能否直接訪問

先構(gòu)造父類,后構(gòu)造子類

instanceof

用法:引用 instanceof 類名

判斷這個(gè)引用所指向的對象是否屬于這個(gè)類。

用在強(qiáng)制轉(zhuǎn)換之前,避免類型轉(zhuǎn)換異常。

?
1
2
3
4
if(a instanceof Dog){
 Dog d=(Dog)a;
 }
implements

一個(gè)類實(shí)現(xiàn)一個(gè)接口必須實(shí)現(xiàn)接口中所有的方法,否則其為抽象類,并且在實(shí)現(xiàn)類中的方法要加上public(不能省略)。

類中的默認(rèn)修飾符:default。

接口中的默認(rèn)修飾符:public。

一個(gè)類除了繼承另一個(gè)類外(只能繼承一個(gè)類),還可以實(shí)現(xiàn)多個(gè)接口(接口之間用逗號分隔)。

static

把對象相關(guān)的變成類相關(guān)的,它可以修飾屬性、方法、代碼塊和內(nèi)部類.

static修飾屬性(類變量):

那么這個(gè)屬性就可以用” 類名.屬性名 “來訪問,也就是使這個(gè)屬性成為本類的類變量,為本類對象所共享。

類加載的過程

類本身也是保存在文件中(字節(jié)碼文件保存著類的信息)的,Java會(huì)通過I/O流把類的文件讀入JVM(java虛擬機(jī)),這個(gè)過程稱為類的 加載。

JVM會(huì)通過類路徑(CLASSPATH)來找字節(jié)碼文件。需要的時(shí)候才會(huì)進(jìn)行類加載,生成對象時(shí)是先加載后構(gòu)造

類變量,會(huì)在加載時(shí)自動(dòng)初始化,初始化規(guī)則和實(shí)例變量相同。

注意:

類中的實(shí)例變量是在創(chuàng)建對象時(shí)被初始化的。

static修飾的屬性,是在類加載時(shí)被創(chuàng)建并進(jìn)行初始化,類加載的過程只進(jìn)行一次,也就是類變量只會(huì)被創(chuàng)建一次。

static修飾方法(靜態(tài)方法):

會(huì)使這個(gè)方法成為整個(gè)類所公有的方法,可以用” 類名.方法名 “訪問。

static修飾的方法,不能直接訪問本類中的非靜態(tài)成員,但本類的非靜態(tài)方法可以訪問本類的靜態(tài)成員。

在靜態(tài)方法中不能出現(xiàn)this關(guān)鍵字。

父類中是靜態(tài)方法,子類中不能覆蓋為非靜態(tài)方法,在符合覆蓋規(guī)則的前提下,在父子類中,父類中的靜態(tài)方法可以被子類中的靜態(tài)方法覆蓋,但是沒有多態(tài)。(在使用對象調(diào)用靜態(tài)方法時(shí)其實(shí)是調(diào)用編譯時(shí)類型的靜態(tài)方法)

java中的main方法必須寫成static的原因:

在類加載時(shí)無法創(chuàng)建對象,而靜態(tài)方法可以不通過對象調(diào)用,所以在類加載時(shí)就可以通過main方法入口來運(yùn)行程序。

static修飾初始代碼塊:

這時(shí)這個(gè)初始代碼塊就叫做靜態(tài)初始代碼塊,這個(gè)代碼塊只在類加載時(shí)被執(zhí)行一次。

可以用靜態(tài)初始代碼塊初始化一個(gè)類。

動(dòng)態(tài)初始代碼塊,寫在類體中的“{}”,這個(gè)代碼塊是在生成對象時(shí)運(yùn)行,這種代碼塊叫動(dòng)態(tài)初始代碼

final

修飾符final:不允許改變,可以修飾變量、方法、類。

final修飾變量:

被fianl修飾的變量就會(huì)變成常量,一旦賦值不能改變

常量可以在初始化時(shí)直接賦值,也可以在構(gòu)造方法里賦值,只能在這兩種方法里二選一,不能不為常量賦值

常量不會(huì)有默認(rèn)初始值

鎖定棧,使棧中的數(shù)據(jù)不可以改變

靜態(tài)常量只能在初始化時(shí)直接賦值

final修飾方法:

被final修飾的方法將不能被其子類覆蓋,保持方法的穩(wěn)定不能被覆蓋

final修飾類:

被final修飾的類將不能被繼承

final類中的方法也都是final的

注意:

final不能用來修飾構(gòu)造方法

abstract:

修飾符abstract:抽象的,定義框架不去實(shí)現(xiàn),可以修飾類和方法

abstract修飾類:

會(huì)使這個(gè)類成為一個(gè)抽象類,這個(gè)類將不能生成對象實(shí)例,但可以做為對象變量聲明的類型,也就是編譯時(shí)類型

抽象類就相當(dāng)于一個(gè)類的半成品,需要子類繼承并覆蓋其中的抽象方法,這時(shí)子類才又創(chuàng)建實(shí)例的能力,如果子類沒有實(shí)現(xiàn)父類的抽象方法,那么子類也要為抽象類。

abstract修飾方法:

會(huì)使這個(gè)方法變成抽象方法,也就是只有聲明而沒有實(shí)現(xiàn),實(shí)現(xiàn)部分以”;”代替,需要子類繼承實(shí)現(xiàn)。

抽象方法代表了某種標(biāo)準(zhǔn),定義標(biāo)準(zhǔn),定義功能,在子類中去實(shí)現(xiàn)功能

(子類繼承了父類并需要給出從父類繼承的抽象方法的實(shí)現(xiàn))。

方法一時(shí)間想不到怎么被實(shí)現(xiàn),或有意要子類去實(shí)現(xiàn)而定義某種標(biāo)準(zhǔn),這個(gè)方法可以被定義為抽象。

注意:

有抽象方法的類一定是抽象類。但是抽象類中不一定都是抽象方法,也可以全是具體方法。

關(guān)鍵字 描述
int 32位整型數(shù)
boolean 布爾數(shù)據(jù)類型
float 32-bit單精度浮點(diǎn)數(shù)
long 64位整型數(shù)
short 16位數(shù)字
byte 8-bit 有符號數(shù)據(jù)類型
double 64-bit雙精度浮點(diǎn)數(shù)
char 16-bit Unicode字符數(shù)據(jù)類型
abstract 抽象方法,抽象類的修飾符
extends 表示一個(gè)類是另一個(gè)類的子類
implements 表示一個(gè)類實(shí)現(xiàn)了接口
assert 斷言條件是否滿足
break 跳出循環(huán)或者label代碼段
continue 不執(zhí)行循環(huán)體剩余部分
case switch語句的一個(gè)條件
catch 和try搭配撲捉異常信息
final 表示一個(gè)值在初始化之后就不能再改變了,表示方法不能被重寫,或者一個(gè)類不能有子類
finally try 語句不管是否發(fā)生異常都要執(zhí)行的語句塊
class 定義類
const 未使用
default switch語句中的默認(rèn)分支
enum 枚舉類型
goto 未使用
if 條件語句
import 導(dǎo)入類
instanceof 測試一個(gè)對象是否是某個(gè)類的實(shí)例
interface 接口,一種抽象的類型,僅有方法和常量的定義
native 表示方法用非java代碼實(shí)現(xiàn)
new 分配新的類實(shí)例
package 一系列相關(guān)類組成一個(gè)包
private 表示私有字段,或者方法等,只能從類內(nèi)部訪問
protected 表示字段只能通過類或者其子類訪問,子類或者在同一個(gè)包內(nèi)的其他類
public 表示共有屬性或者方法
return 方法返回值
static 表示在類級別定義,所有實(shí)例共享的
strictfp 浮點(diǎn)數(shù)比較使用嚴(yán)格的規(guī)則
super 表示基類
switch 選擇語句
synchronized 表示同一時(shí)間只能由一個(gè)線程訪問的代碼塊
this 表示調(diào)用當(dāng)前實(shí)例,或者調(diào)用另一個(gè)構(gòu)造函數(shù)
throw 拋出異常
throws 定義方法可能拋出的異常
transient 修飾不要序列化的字段
try 表示代碼塊要做異常處理或者和finally配合表示是否拋出異常都執(zhí)行finally中的代碼
void 標(biāo)記方法不返回任何值
volatile 標(biāo)記字段可能會(huì)被多個(gè)線程同時(shí)訪問,而不做同步

希望本篇文章可以幫到大家

原文鏈接:http://blog.csdn.net/demonliuhui/article/details/70196339

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美1区2区在线观看 | chinese中国真实乱对白 | av播放在线 | 高清国产免费 | 97超碰资源站 | 国产亚洲欧美视频 | 国产精品av久久久久久网址 | 欧洲成人综合网 | 精品国产一区二 | 日韩激情在线视频 | 国产精品久久久久久久模特 | 成人免费观看毛片 | 亚洲午夜不卡 | 国产精品性夜天天视频 | 澳门一级淫片免费视频 | 在线播放视频一区二区 | av中文在线观看 | 欧美激情综合网 | 欧美日韩一区二区综合 | 亚洲四播房| 全黄性性激高免费视频 | 国产成人精品自拍视频 | 深夜福利久久久 | 久久影院一区二区三区 | 精品一区二区三区日本 | 久久国产精品久久久久久久久久 | av在线1| 久久久久亚洲精品国产 | 日韩在线视频观看免费 | 史上最强炼体老祖动漫在线观看 | 国产成人精品午夜视频' | 成人福利在线 | 全网免费毛片 | 色奇米| 久久精品无码一区二区三区 | 国产流白浆高潮在线观看 | 亚洲天堂欧美在线 | 久久久www视频 | 黄色av免费网站 | 亚洲网站免费观看 | 特级黄毛片|