亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

this

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

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

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

this是個隱式參數(shù),代表當前對象

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

如果某個構(gòu)造方法的第一個語句具有形式this( ••• ),那么這個構(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()不能同時出現(xiàn)

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

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

注意:

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

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

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

instanceof

用法:引用 instanceof 類名

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

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

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

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

類中的默認修飾符:default。

接口中的默認修飾符:public。

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

static

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

static修飾屬性(類變量):

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

類加載的過程

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

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

類變量,會在加載時自動初始化,初始化規(guī)則和實例變量相同。

注意:

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

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

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

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

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)方法時其實是調(diào)用編譯時類型的靜態(tài)方法)

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

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

static修飾初始代碼塊:

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

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

動態(tài)初始代碼塊,寫在類體中的“{}”,這個代碼塊是在生成對象時運行,這種代碼塊叫動態(tài)初始代碼

final

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

final修飾變量:

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

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

常量不會有默認初始值

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

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

final修飾方法:

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

final修飾類:

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

final類中的方法也都是final的

注意:

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

abstract:

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

abstract修飾類:

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

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

abstract修飾方法:

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

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

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

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

注意:

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

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

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

相關(guān)文章

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

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

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

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

    這篇文章主要介紹了Java中使用Preconditions來檢查傳入?yún)?shù)介紹,本文只是作為一個簡單的用法介紹,需要的朋友可以參考下
    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ù)庫spring.datasource.url報錯的解決

    springboot配置mysql數(shù)據(jù)庫spring.datasource.url報錯的解決

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

    Spring實例化bean過程解析及完整代碼示例

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

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

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

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

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

    Java Arrays.fill()的具體使用

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

    在Mac上安裝JDK21的詳細流程

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

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

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

最新評論