1.包的定義
package 包名;
多級包用 . 分開即可
注意事項:
A:package語句必須是程序的第一條可執行的代碼
B:package語句在一個java文件中只能有一個
C:如果沒有package,默認表示無包名
帶包的編譯和運行:
A:手動式
a:編寫一個帶包的java文件。
b:通過javac命令編譯該java文件。
c:手動創建包名。
d:把b步驟的class文件放到c步驟的最底層包
e:回到和包根目錄在同一目錄的地方,然後運行
帶包運行。
B:自動式
a:編寫一個帶包的java文件。
b:javac編譯的時候帶上-d即可
javac -d . HelloWorld.java
c:回到和包根目錄在同一目錄的地方,然後運行
帶包運行。
2.導包:
格式:import 包名;
這種方式導入是到類的名稱。
注意:我們用誰就導誰。
**package,import,class有沒有順序關係?**
有。
package > import > class
Package:只能有一個
import:可以有多個
class:可以有多個,以後建議是一個
3.內部類
1)內部類概述:
把類定義在其他類的內部,這個類就被稱爲內部類。
2)內部的訪問特點:
A:內部類可以直接訪問外部類的成員,包括私有。
B:外部類要訪問內部類的成員,必須創建對象。
3)內部類位置
成員位置:在成員位置定義的類,被稱爲成員內部類。
局部位置:在局部位置定義的類,被稱爲局部內部類。
4)如何直接訪問內部類的成員。
外部類名.內部類名 對象名 = 外部類對象.內部類對象;
形如:Outer.Inner oi = new Outer().new Inner();
5)成員內部的常見修飾符
private :爲了保證數據的安全性
static : 爲了讓數據訪問更方便
被靜態修飾的成員內部類只能訪問外部類的靜態成員,與靜態內部類裏的方法是否靜態無關。即,靜態內部類中的靜態方法和非靜態方法都只能訪問外部類的靜態成員。
成員內部類被靜態修飾後的訪問方式是:
格式:外部類名.內部類名 對象名 = new 外部類名.內部類名();
形如:Outer.Inner oi = new Outer.Inner();
6)局部內部類
A:可以直接訪問外部類的成員
B:在局部位置,可以創建內部類對象,通過對象調用內部類方法,來使用局部內部類功能
7) 匿名內部類
就是內部類的簡化寫法。
前提:存在一個類或者接口
這裏的類可以是具體類也可以是抽象類。
格式:
new 類名或者接口名(){
重寫方法;
}
本質是什麼呢?
是一個繼承了該類或者實現了該接口的子類匿名對象。