[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:实线实心箭头指向整体。

posted on 2019-03-03 19:55  coding_gaga  阅读(2648)  评论(0编辑  收藏  举报

导航