欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2017年04月17日 09:33:41   作者:DeMon輝  
這篇文章主要對(duì)java中this、final等關(guān)鍵字進(jìn)行了總結(jié),需要的朋友可以參考下

this

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

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

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

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

publie class Student{
 private String name; 
 public void setName(String name){ 
 this.name=name; //this.name為當(dāng)前對(duì)象的成員變量 
} }

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

注意:

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

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

super

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

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

super.方法來(lái)引用父類(lèi)的方法

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

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

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

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

注意:

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

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

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

instanceof

用法:引用 instanceof 類(lèi)名

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

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

 if(a instanceof Dog){ 
 Dog d=(Dog)a; 
 } 
implements

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

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

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

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

static

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

static修飾屬性(類(lèi)變量):

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

類(lèi)加載的過(guò)程

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

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

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

注意:

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

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

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

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

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

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

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

java中的main方法必須寫(xiě)成static的原因:

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

static修飾初始代碼塊:

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

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

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

final

修飾符final:不允許改變,可以修飾變量、方法、類(lèi)。

final修飾變量:

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

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

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

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

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

final修飾方法:

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

final修飾類(lèi):

被final修飾的類(lèi)將不能被繼承

final類(lèi)中的方法也都是final的

注意:

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

abstract:

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

abstract修飾類(lèi):

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

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

abstract修飾方法:

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

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

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

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

注意:

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

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

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

相關(guān)文章

  • Java實(shí)現(xiàn)批量下載文件的示例代碼

    Java實(shí)現(xiàn)批量下載文件的示例代碼

    這篇文章主要為大家詳細(xì)介紹了Java如何實(shí)現(xiàn)批量下載文件,并以壓縮輸出流的形式返回前端,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考一下
    2023-10-10
  • Java中使用Preconditions來(lái)檢查傳入?yún)?shù)介紹

    Java中使用Preconditions來(lái)檢查傳入?yún)?shù)介紹

    這篇文章主要介紹了Java中使用Preconditions來(lái)檢查傳入?yún)?shù)介紹,本文只是作為一個(gè)簡(jiǎn)單的用法介紹,需要的朋友可以參考下
    2015-06-06
  • 基于HttpServletResponse 相關(guān)常用方法的應(yīng)用

    基于HttpServletResponse 相關(guān)常用方法的應(yīng)用

    本篇文章小編為大家介紹,基于HttpServletResponse 相關(guān)常用方法的應(yīng)用,需要的朋友參考下
    2013-04-04
  • springboot配置mysql數(shù)據(jù)庫(kù)spring.datasource.url報(bào)錯(cuò)的解決

    springboot配置mysql數(shù)據(jù)庫(kù)spring.datasource.url報(bào)錯(cuò)的解決

    這篇文章主要介紹了springboot配置mysql數(shù)據(jù)庫(kù)spring.datasource.url報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Spring實(shí)例化bean過(guò)程解析及完整代碼示例

    Spring實(shí)例化bean過(guò)程解析及完整代碼示例

    這篇文章主要介紹了Spring實(shí)例化bean過(guò)程解析及完整代碼示例,簡(jiǎn)單分析實(shí)例化bean過(guò)程并且分享了相關(guān)實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • 舉例講解Java中synchronized關(guān)鍵字的用法

    舉例講解Java中synchronized關(guān)鍵字的用法

    這篇文章主要介紹了Java中synchronized關(guān)鍵字的用法,針對(duì)synchronized修飾方法的使用作出了簡(jiǎn)單講解和演示,需要的朋友可以參考下
    2016-04-04
  • Springboot中的自定義攔截器及原理詳解

    Springboot中的自定義攔截器及原理詳解

    這篇文章主要介紹了Springboot中的自定義攔截器及原理詳解,攔截器主要是用于在用戶請(qǐng)求控制中,對(duì)于請(qǐng)求識(shí)別,鑒權(quán),以及區(qū)分資源是否可以被目標(biāo)方法調(diào)用的安全機(jī)制,需要的朋友可以參考下
    2023-12-12
  • Java Arrays.fill()的具體使用

    Java Arrays.fill()的具體使用

    本文主要介紹了Java Arrays.fill()的具體使用,更好地理解Arrays.fill()方法的用法以及在實(shí)際應(yīng)用中如何使用它,感興趣的可以了解一下
    2023-09-09
  • 在Mac上安裝JDK21的詳細(xì)流程

    在Mac上安裝JDK21的詳細(xì)流程

    在macOS上安裝JDK(Java Development Kit)21是相對(duì)簡(jiǎn)單的過(guò)程,這篇文章主要給大家介紹了關(guān)于在Mac上安裝JDK21的詳細(xì)流程,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • 一篇文章搞定數(shù)據(jù)庫(kù)連接池

    一篇文章搞定數(shù)據(jù)庫(kù)連接池

    數(shù)據(jù)庫(kù)連接池在編寫(xiě)應(yīng)用服務(wù)是經(jīng)常需要用到的模塊,太過(guò)頻繁的連接數(shù)據(jù)庫(kù)對(duì)服務(wù)性能來(lái)講是一個(gè)瓶頸,使用緩沖池技術(shù)可以來(lái)消除這個(gè)瓶頸,本文就來(lái)介紹Java常見(jiàn)的幾種,感興趣的可以了解一下
    2021-07-07

最新評(píng)論