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

最新文章

  1. 人人都是 DBA(XIV)存储过程信息收集脚本汇编
  2. fstat().stat()函数
  3. WordPress Pie Register插件‘wp-login.php’多个跨站脚本漏洞
  4. <? extends T>和<? super T>
  5. Ionicons的使用
  6. Spring注解问题,[action中注入service失败
  7. 【转】C缺陷和陷阱学习笔记
  8. SPRING事务的属性有哪些?其中,事务隔离级别有哪几种?什么情况需要使用这几种事务隔离级别?
  9. String对象的属性和方法
  10. LeetCode 19 - 删除链表的倒数第N个节点 - [链表]
  11. 使用setup.py安装python包和卸载python包的方法
  12. Win10手记-为应用集成SQLite(一)
  13. 要求根据RandomStr.java:使用类型转换生成六位验证字符串,示例程序每次运 行时,都会生成不同的字符串。
  14. Mac下django简单安装配置步骤
  15. VS2013 未找到与约束ContractName ...
  16. python科学计算和可视化学习报告
  17. 给HTML初学者的三十条最佳实践
  18. fork函数相关总结
  19. 玩转Panabit 2008 Live CD到U盘,Panabit随身行
  20. Linux系统编程——进程间通信(一)

热门文章

  1. 腾讯云Linux VPS新硬盘分区与挂载教程(面板重装不丢失数据)
  2. WDA-4-ALV按钮&ICON
  3. Mysql 死锁分析学习
  4. Shell函数使用方法
  5. Celery 图,[转]
  6. Jetty-attack-test
  7. 关于servlet转发和重新定向
  8. C#调用非托管dll--路径问题
  9. BOS物流项目第十三天
  10. Numpy知识(一)