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

[Java学习]面向对象-package;内部类;UML图表示六种关系的更多相关文章

  1. Java学习笔记之---内部类

    Java学习笔记之---内部类 (一)成员内部类 内部类在外部使用时,无法直接实例化,需要借助外部类信息才能实例化 内部类的访问修饰符可以任意,但是访问范围会受到影响 内部类可以直接访问外部类的成员, ...

  2. Java学习---面向对象的远程方法调用[RMI]

    基础知识 分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果. 常见的分 ...

  3. java学习面向对象之异常之一

    一.异常的概述: 什么是异常?在我们编写java程序的时候,会出现一些问题,比如内存溢出啊或者数组索引超出最大索引啊,这些编程当中出现的这些个问题就是异常.但是异常也分为可以处理的和不可以处理的.比如 ...

  4. Java自学-接口与继承 UML图

    UML 图 步骤 1 : UML 图 -- 类之间的关系 UML-Unified Module Language 统一建模语言,可以很方便的用于描述类的属性,方法,以及类和类之间的关系 步骤 2 : ...

  5. UML中的六种关系的比较与学习

    通过不断的学习并绘制UML图,整个画图的过程中深刻体会到其核心部分还是理解事物之间的关系,总结六大关系来深入学习,主要关系有六种:继承.实现.依赖.关联.聚合.组合. 区别于联系:         1 ...

  6. 软件毕业设计文档流程与UML图之间的关系

    每个模型都是用一种或者多种UML图来描述的,映射关系如下: 1.用例模型:使用用例图.顺序图.通信图.活动图和状态图来描述. 2.分析模型:使用类图和对象图(包括子系统和包).顺序图(时序图).通信图 ...

  7. java学习面向对象之匿名内部类

    之前我们提到“匿名”这个字眼的时候,是在学习new对象的时候,创建匿名对象的时候用到的,之所以说是匿名,是因为直接创建对象,而没有把这个对象赋值给某个值,才称之为匿名. 匿名对象回顾: class N ...

  8. java学习面向对象之内部类

    什么是面向对象内部类呢?所谓的内部类,即从字面意义上来理解的话,就是把类放到类当中. 那么内部类都有什么特点呢? 1.内部类可以访问包裹他的类的成员. 2.如果包裹他的类想访问被其包裹的类的话就得实例 ...

  9. java学习面向对象之多态

    如何理解多态,让我们举个例子来描述一下,因为单纯的说多态大家可能不理解: abstract class Animal { ; abstract void eat(); public void run( ...

随机推荐

  1. BBS-文章详情页、点赞功能

    文章详情页--布局中header和左边区域不变--用到继承 home_site和article_detail只是布局 中心区域 只是右侧不同-----用到继承原理 -------- url # 文章详 ...

  2. echarts图表--统计图表

    echarts官网图表API:http://echarts.baidu.com/index.html

  3. echarts-颜色渐变

    图形的颜色. 默认从全局调色盘 option.color 获取颜色 颜色可以使用 RGB 表示,比如 'rgb(128, 128, 128)',如果想要加上 alpha 通道表示不透明度,可以使用 R ...

  4. 2018.3,GC可控了

    如题,不再像以前那样由系统决定什么时候进行GC,现在可以通过设置,决定自己手动回收还是使用传统的系统决定方式. 传统方式不可控,就算是手动调用了GC.COLLECT,系统也不一定会立即执行.

  5. unity "[ ]"标签

    [CanEditMultipleObjects]//可多对象编辑 public class Collider2DEditor:Editor {} [SerializeField]//序列化私有属性 p ...

  6. C++多态,虚函数,虚函数表,纯虚函数

    1.多态性   指相同对象收到不同消息或不同对象收到相同消息时产生不同的实现动作. C++支持两种多态性:编译时多态性,运行时多态性.    a.编译时多态性:通过重载函数实现 ,模板(2次编译)  ...

  7. maven ,添加加密算法 apache commons-codec.jar 包

    在百度搜索commons-codec.jar maven  , http://mvnrepository.com/ 到 maven 库搜索 commons-codec.jar maven .你需要添加 ...

  8. php 查看当前页中的post及get数据

    file_put_contents("log1209.html",date('Y-m-d H:i:s ')."-----<br>",FILE_APP ...

  9. 11.枚举类.md

    目录 1.定义: 2.枚举类和普通类的区别: 2.1枚举类的简单构建: 2.2枚举类的成员变量.方法和构造 2.3实现接口的枚举类 1.定义: 2.枚举类和普通类的区别: 枚举类的默认修饰符是 pub ...

  10. asp.net 将文本转化为文本文件txt文件

    /// <summary> /// 将文本写入文本文件 /// </summary> /// <param name="name">完整文件名& ...