[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 阅读(2716) 评论(0) 编辑 收藏 举报