[Java學習]面向對象-package;內部類;UML圖表示六種關系


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:實線實心箭頭指向整體。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM