ruby網(wǎng)站開(kāi)發(fā)工程師招聘2023年免費(fèi)b站推廣大全
instanceof 與 對(duì)象類型轉(zhuǎn)換
-
instanceof是判斷一個(gè)對(duì)象是否與一個(gè)類有關(guān)系的關(guān)鍵字
?
-
先看引用類型,再看實(shí)際類型
-
*例子:obj instanceof A
-
先看obj的類型是否與A有關(guān)聯(lián),無(wú)關(guān)聯(lián)則報(bào)錯(cuò),有關(guān)聯(lián)則判斷obj的實(shí)際類型
-
因?yàn)閛bj的實(shí)際類型是son,所以String類與他無(wú)關(guān),所以返回false
對(duì)象類型轉(zhuǎn)換:
-
發(fā)生在父子之間,子類轉(zhuǎn)父類自動(dòng)轉(zhuǎn)換,父類轉(zhuǎn)子類則需要強(qiáng)制轉(zhuǎn)換
Student exteds Person
Person stu = new Student(); //子類對(duì)象轉(zhuǎn)為父類,自動(dòng)轉(zhuǎn)換
Student student = (Student) stu //父類對(duì)象轉(zhuǎn)化為子類,強(qiáng)制轉(zhuǎn)換,為了方便方法的調(diào)用
static關(guān)鍵字
-
static關(guān)鍵字可用于修飾屬性、方法
靜態(tài)屬性:
public static int num;
靜態(tài)方法:
public void static main(){}
靜態(tài)與非靜態(tài)有啥區(qū)別呢?
-
我們可通過(guò)類名直接調(diào)用靜態(tài)方法或者靜態(tài)變量,非靜態(tài)方法或變量則是要通過(guò)對(duì)象來(lái)調(diào)用
?
靜態(tài)代碼塊
static{}
-
用于初始化操作,最先執(zhí)行且只執(zhí)行一次
?
我們分別創(chuàng)建了兩個(gè)對(duì)象,第一對(duì)象創(chuàng)建時(shí),靜態(tài)代碼塊運(yùn)行了,第二次創(chuàng)建對(duì)象時(shí)就不運(yùn)行了
靜態(tài)導(dǎo)入包
import static java.lang.Math.random;
與普通導(dǎo)入包不同的是,靜態(tài)導(dǎo)入的random可直接使用,不再需要寫(xiě)Math.random
?