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. 机器学习进阶-图像金字塔与轮廓检测-轮廓检测 1.cv2.cvtColor(图像颜色转换) 2.cv2.findContours(找出图像的轮廓) 3.cv2.drawContours(画出图像轮廓) 4.cv2.contourArea(轮廓面积) 5.cv2.arcLength(轮廓周长) 6.cv2.aprroxPloyDP(获得轮廓近似) 7.cv2.boudingrect(外接圆)..

    1. cv2.cvtcolor(img, cv2.COLOR_BGR2GRAY) # 将彩色图转换为灰度图 参数说明: img表示输入的图片, cv2.COLOR_BGR2GRAY表示颜色的变换形式 ...

  2. Tomcat命令

    如果原始内存不够用经常内存溢出,可以在catalina.bat中设置: 电脑2G内存的情况 :set JAVA_OPTS='-server -Xms1024m -Xmx1536m -XX:PermSi ...

  3. Win2008R2配置WebDeploy(转)

    一.配置服务器 1.安装管理服务 2.点击管理服务进行配置 3.安装WebDeploy 3.1通过离线安装包方式安装: https://www.iis.net/downloads/microsoft/ ...

  4. webvtt字幕转srt字幕的python程序(附改名程序)

    最近写了两个比较简单的python程序,原有都是由于看公开课感觉比较费劲,一个是下载的视频无用的名字太长,另一个就是下载的vtt字幕播放器不识别,写了一个vtt转换成str字幕格式的文件 vtt to ...

  5. UNITY2018开启deepprofiling

    ADB方式调试游戏步骤 前提: 1,手机开启 [开发者模式][USB调试] 2,数据线连接手机和电脑 3,安装adb(注意adb版本不对可能导致adb deveices找不到设备,那就换个adb版本) ...

  6. 【原创】逆向练习(CrackMe)

    Write Up 登录的两个方法 方法1.用IDA分析 新版测试题.exe.在Strings Window中查找有一定意义的串. 从上面的窗口中,发现了CyberSwat和passwordisme这两 ...

  7. ArcGIS案例学习笔记4_1_矢量校正

    ArcGIS案例学习笔记4_1_矢量校正 概述 计划时间:第四天上午 教程:Editing编辑教程 pdf 目的:矢量数据的空间校正 案例1:仿射变换 数据:Editing编辑数据/spatialAd ...

  8. (转)JS之——解决IE6、7、8使用JSON.stringify报JSON未定义错误的问题

    https://blog.csdn.net/l1028386804/article/details/53439755 在通过JavaScript将对象类型的参数通过JSON.stringify转换成字 ...

  9. Applese走方格-dfs

    链接:https://ac.nowcoder.com/acm/contest/330/B来源:牛客网 题目描述 精通程序设计的 Applese 又写了一个游戏. 在这个游戏中,它位于一个 n 行 m ...

  10. hibernate flush clear的区别

    有的时候你执行了更新什么的操作不一定能查出来:没有保存到数据库 以下的缓存是指一级缓存,即session:默认缓存是一级缓存: flush的意思就是执行sql,但是还没有commit,没有持久化:再清 ...