物件導向(常見修飾符和內部類)

2021-09-21 02:29:26 字數 2403 閱讀 2550

一 常見修飾符

1- 許可權修飾符 private

私有的 ,可以修飾成員變數,構造方法,成員方法。修飾的成員只能在本類中呼叫;

2-許可權修飾符 預設的

可以修飾類,成員變數,構造方法,成員方法,修飾的可以在同乙個包(子類和無關類)下呼叫;

3-許可權修飾符 protected

受保護的,可以修飾成員變數,構造方法,成員方法,修飾的可以在不同包下呼叫(子類);

4-許可權修飾符 public

公眾的,可以修飾成員變數,構造方法,成員方法,修飾的可以在不同包(無關類)下呼叫;

5-狀態修飾符 static

靜態的 ,可以修飾成員變數,成員方法。靜態只能呼叫靜態;

6-狀態修飾符 final

最終的,可以修飾類,成員變數,成員方法。修飾的類不能被繼承,成員變數當作常量,成員方法不能被重寫;

7-抽象修飾符 abstract

抽象的,可以修飾類,成員方法。修飾的類一定要被繼承,抽象方法只是乙個宣告,所以一定要被重寫。

8- 面試題:

abstract不能和哪些關鍵字共存?

private 衝突

final 衝突

static 不能共存 無意義

二 內部類

1-內部類的概念:

把類定義在其他類的內部,這個類就被稱為內部類。

按照內部類位置分類

成員位置:在成員位置定義的類,被稱為成員內部類。

區域性位置:在區域性位置定義的類,被稱為區域性內部類。

class b 

public void show()

}}

2-內部類訪問特點

a:內部類可以直接訪問外部類的成員,包括私有。

b:外部類要訪問內部類的成員,必須建立物件。

public class outer 

//內部類可以直接訪問外部類的成員,包括私有

public void innertest()

}public void outershow()

private void outertest()

//外部類,想要訪問內部類的成員,得建立內部類的物件

public void method()

}

public class mytest 

}

3-內部類被private修飾

內部類被private修飾了,外來鍵就不能直接建立內部類物件了

public class mytest 

}class wai

}public void waishow()

}

4-內部類被static修飾

(1) 內部類被靜態修飾後,建立內部類的語法要改變;

(2)靜態內部類要訪問外部類的成員只能訪問靜態的

public class mytest } 

class wai

}public static void waishow()

}

5-區域性內部類,外界不能直接建立其物件

public class outer 

}inner inner = new inner();

inner.neishow();

}public void waitest()

}

public class mytest 

}

6- 區域性內部類,訪問外部類的區域性變數,區域性變數必須加上final修飾 為什麼?

因為區域性變數會隨著方法的呼叫完畢而消失 ,這個時候,區域性物件並沒有立馬從堆記憶體中消失,還要使用那個變數。為了讓資料還能繼續被使用

,就用fianl修飾,這樣,在堆記憶體裡面儲存的其實是乙個常量值。

class wai }}}

三 匿名內部類

1-匿名內部類: 就是區域性內部類的簡化寫法,本質上是乙個繼承了該類或者實現了該介面的子類匿名物件,存在乙個類或者介面;這裡的類可以是具體類也可以是抽象類。

new 類名或者介面名() ;
2-例題

public class mytest 

}abstract class aa

class b extends aa

}

用內部類實現上題中的show方法

public class mytest 

}.show();

}}abstract class aa

許可權修飾符和內部類

final關鍵字代表最終 不可改變的。學習了繼承後,我們知道子類可以在父類的基礎上改寫父類內容,比如方法重寫。為了避免隨意改寫的情況發生,j a提供了 final 關鍵字,用於修飾不可改變內容 主要表現在使用final關鍵字後 修飾類 格式 public final class 類名稱含義 當前這個...

包,修飾符,內部類

目錄 包的特點 許可權修飾符 內部類成員內部類 區域性內部類 匿名內部類 注意 代表的是萬用字元,表示匯入這個包下的所有類,但沒有匯入子包下的類 public protected default private 同一類中 同一包中 子類與無關類 不同包的子類 不同包中的無關類 修飾符總結 修飾符 類...

修飾符 內部類 String

修飾符 狀態修飾符 final 最終的,無法更改的,一般用在類上或者方法上或者常量的定義上 常量的定義格式 public static final 資料型別 變數名 初始化值 凡是被final修飾的類都無法被繼承,被fianl修飾非方法無法被重寫,被final修飾的變數是常量 如果該變數是基本資料型...