package 軟件包
- 類名前加入命名空間(包),解決命名沖突問題。
- 定義格式:
公司域名倒敘.項目名.模塊名;
package語句寫在文件第一行 - 使用
import語句導入package
java.lang; 軟件包下的所有類系統自動導入。 - 編譯
javac -d 生成路徑 java源文件路徑 - 運行
java 完整類名
內部類
基本
- 定義:類里面的類。
- 好處:內部類可以訪問其外部類的私有數據。
- 分為 :靜態內部類,成員內部類,局部內部類,匿名內部類
靜態內部類
- 調用靜態內部類的靜態方法:
OuterClass.InterClass.methods1(); - 調用靜態內部類的成員方法:
InnerClass inner=new OuterClass.InnerClass();
inner.methods2();
匿名內部類
- 定義:沒有名字的類。
- 優點:少定義一個類。
- 缺點:無法重復使用。
未采用匿名內部類代碼
package com.test.jinhj;
public class SubClass{
public static void testM(CustomerService cs) {
cs.logout();
}
public static void main(String[] args) {
testM(new CustomerService());
}
}
interface CustomerService{
//退出系統
void logout();
}
class CustomerServiceImpl implements CustomerServerce{
public void logout() {
System.out.println("退出。");
}
}
采用匿名內部類代碼
package com.test.jinhj;
public class SubClass{
public static void testM(CustomerService customerService) {
customerService.logout();
}
public static void main(String[] args) {
//整個"CustomerService(){}"稱為匿名內部類
testM(new CustomerService() {
public void logout() {
System.out.println("exit!");
}
});
}
}
interface CustomerService{
//退出系統
void logout();
}
UML圖、六種類和類之間的關系
類和類之間的關系:
- 泛化關系:繼承。
UML:實線空心箭頭。 - 實現關系: 類實現接口。
UML:虛線空心箭頭。 - 關聯關系:在當前類中含有其他類的引用。
下例中Me和Friend就是關聯關系
public class Me{
String name;
Friend f;
Me(Friend f){
this.f=f;
}
}
public class Friend{
String name;
String addr;
Friend(String addr){
this.addr=addr;
}
}
public class Test{
public static void main(String[] args){
Friend f=new Friend("北京");
//當創建完Me的對象后,關聯關系已建立,Me對象m中已有Friend對象f的內存地址。
Me m=new me(f);
System.out.println(m.f.addr);
}
}
UML:實線箭頭。
- 依賴關系:當前類中的局部變量是另一個類的引用,兩者是依賴關系。
UML:虛線箭頭。 - 聚合關系:聚合關系是一種關聯關系,是整體和部分的關系,兩者的生命周期相互不影響。
UML:實線空心箭頭指向整體。 - 合成關系:合成關系是一種關聯關系,是整體和部分的關系,整體的關系決定部分的生命周期。
UML:實線實心箭頭指向整體。
