zoukankan      html  css  js  c++  java
  • [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:实线实心箭头指向整体。
  • 相关阅读:
    python的整除,除法和取模对比
    jq禁用双击事件
    jq判断滑动方向
    jq获取下拉框中的value值
    html字符串转换成纯文字
    内层div相对于外层div水平垂直居中以及外层div相对body水平垂直居中
    python获取用户输入
    js判断浏览器是否支持localStorage
    CLR的执行模型
    行人检测2(行人检测的发展历史)
  • 原文地址:https://www.cnblogs.com/coding-gaga/p/10467199.html
Copyright © 2011-2022 走看看