常用關鍵字分析

2021-08-31 15:04:24 字數 1837 閱讀 6473

一.可見性關鍵字public,private,protected,default辨析

1).範圍

乙個專案:public

乙個包:public,protected,default

乙個類:public,protected,default,private

eg:

package test1;

public class student

public static void main(string args)

}

public class jnstudent extends student

}package test2;

public class unstudent extends student

}public class test

}2).protected和default的區別

protected型別的方法和屬性,在子類中都可以被訪問到(即使不在同乙個包裡),而default型別的只能在同乙個包裡面才能被直接訪問到

3).關鍵字一般使用原則:作用域盡量小

類的屬性一般為private型別,而對外提供訪問的方法則是public型別

二.final關鍵字

1)final關鍵字修飾的變數一旦被賦值便不能再改變

2)final修飾的方法不能夠被被繼承的類重寫

eg:將上例中student類中的屬性的型別錢加上final之後,任何對他們的修改都會報錯

將student類中的showinfo()方法加上final修飾符號之後,子類將不能再對其重寫

public class student

}三.static關鍵字

1)static型別的變數是在類載入時初始化,而且只載入一次,它的值被修改是,其他的類和物件使用的都是修改以後的值

static型別變數又叫類變數,用"類名.靜態變數"形式直接使用

2)static方法又叫類方法,在乙個類被使用到時被載入到記憶體,但並不執行,用"類名.靜態方法"形式直接使用

3)static**塊在類載入時便執行

此處附上一道**面試題以饗讀者:

public class a

}public class b

}public class c

public static void change()

public static void main(string args)

}答案在分析的最後位置。

分析:因為要使用到c類,所以c被載入到記憶體中,static a a = new a();執行執行構造方法列印出a,而靜態方法的載入是不需執行的

然後程式進入main方法中.建立c型別的物件,先初始化屬性,a是靜態變數,已初始化,不再執行,建立b型別物件,列印出ab,在執行c的構造方法,建立c型別物件,列印出c.

接著回到main方法中,呼叫c的類方法change(),建立乙個b型別物件,列印出ab。

所以最終的結果是aabcab

四.super和this關鍵字;

1).this代表的是指當前物件,簡而言之,即誰使用這個類,this便是誰

2).類似的,super在子類中出現代表當前父類物件

eg:下例就容易混淆的地方做了詳盡的分析

public class unstudent extends student

}; public void showinfo()

public static void main(string args)

}程式執行後的結果是:

姓名:張三學分:77卡號435452352023年齡:20

種類:wolf體重:20

長度:56

常用關鍵字

1 typeof關鍵字 作用 返回用字串形式返回物件的型別,例如trace typeof 10 輸出number 注意 返回的字串不一定是類名的小寫,下面是typeof物件型別和返回結果對照表 intnumber uint number number number array object bool...

python保留關鍵字和常用關鍵字

python保留關鍵字和常用關鍵字如下 上圖是python3中的關鍵字,python2.7中的關鍵字部分會有區別,具體在自己列印輸出檢視 import keyword print join keyword.kwlist lambda 用於匿名函式中 assert 斷言語句,常用與除錯 raise 用...

const , volatile 關鍵字分析

const修飾變數 在c語言中const修飾的變數是唯讀的,其本質還是變數,不是常量。const修飾的變數會在記憶體占用空間,不能作為左值進行賦值。本質上const只對編譯器有用,在執行時無用。因此const修飾的變數可以在程式執行時,通過指針對其進行改變。const修飾陣列 在c語言中const修...