2019-10-28-22:40:14 目錄 1.Instanceof關鍵字 2.Final關鍵字 2.1Final關鍵字修飾類 2.2Final關鍵字修飾成員方法 2.3Final關鍵字修飾局部變數 2.4Final關鍵字修飾成員變數 3.許可權修飾符 Instanceof關鍵字 作用:判斷一個父類 ...
2019-10-28-22:40:14
目錄
1.Instanceof關鍵字
2.Final關鍵字
2.1Final關鍵字修飾類
2.2Final關鍵字修飾成員方法
2.3Final關鍵字修飾局部變數
2.4Final關鍵字修飾成員變數
3.許可權修飾符
Instanceof關鍵字
作用:判斷一個父類引用的對象是什麼子類
格式:
對象名 instanceof 類名稱
1 package demosummary.instanceoftest;
2
3 public class Test {
4 public static void main(String[] args) {
5 //創建一個Dog對象
6 Animal animal = new Dog();
7 //如果希望調用子類特有方法,需要向下轉型
8 //判斷一下父類引用animal本來是不是Dog
9 if (animal instanceof Dog){
10 animal.setName("來福");
11 Dog dog = (Dog)animal;
12 dog.skill();
13 }
14
15 }
16 }
Final關鍵字
意義:final關鍵字代表最終,不可改變的
常見四種用法:
1.可以用來修飾一個類
2.可以用來修飾一個方法,
3.還可以用來修飾一個局部變數
4.還可以用來修飾一個成員變數
Final關鍵字修飾類
格式:
public final class 類名稱{
語句體;
}
含義:當前這個類不能有任何子類,而且成員方法都無法進行覆蓋重寫(因為沒有子類)
1 public final c1ass MyClass /*extends object*/ {
2 public void method() {
3 System.out.print1n( "方法執行!");
4 }
5 }
Final關鍵字修飾成員方法
當final關鍵宇用來修飾一個方法的時候,這個方法就是最終方法,也就是不能被覆蓋重寫。
格式:
修飾符 final 返回值類型 方法名稱(參數列表) {
// 方法體
}
註意事項:1、對於類、方法來說,abstract關鍵字和final關鍵字不能同時使用,因為矛盾。
public abstract class Fu {
public final void method() {
System.out.printIn("父類方法執行!");
}
public abstract /*final*/ void methodAbs() ;
}
Final關鍵字修飾局部變數
作用:一旦使用final來修飾局部變數,那麼這個變數就不能進行修改(一次賦值,終生不變)
註意事項:
1.對於基本類型來說,不可變說的是變數當中的數據不可改變
2.對於引用類型來說,不可變說的是變數當中的地址值不可改變
Final關鍵字修飾成員變數
作用:對於成員變數來說,如果使用final關鍵字修飾,那麼這個變數也照樣是不可變。
1.由於成員變數具有預設值,所以用了final之後必須手動賦值,不會再給預設值了。
2.對於final的成員變數,要麼使用直接賦值,要麼通過構造方法賦值。二者選其一。
3.必須保證類當中所有重載的構造方法,都最終會對final的成員變數進行賦值。
許可權修飾符
Java中有四種許可權修飾符:
public > protected > ( default) > private
同一個類(我自己) YES YES YES YES
同一個包(我鄰居) YES YES YES NO
不同包子類(我兒子) YES YES NO NO
不同包非子類(陌生人 YES NO NO NO
註意事項: (default)並不是關鍵字“defoult",而是根本不寫。