[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:实线实心箭头指向整体。
[Java学习]面向对象-package;内部类;UML图表示六种关系的更多相关文章
- Java学习笔记之---内部类
Java学习笔记之---内部类 (一)成员内部类 内部类在外部使用时,无法直接实例化,需要借助外部类信息才能实例化 内部类的访问修饰符可以任意,但是访问范围会受到影响 内部类可以直接访问外部类的成员, ...
- Java学习---面向对象的远程方法调用[RMI]
基础知识 分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果. 常见的分 ...
- java学习面向对象之异常之一
一.异常的概述: 什么是异常?在我们编写java程序的时候,会出现一些问题,比如内存溢出啊或者数组索引超出最大索引啊,这些编程当中出现的这些个问题就是异常.但是异常也分为可以处理的和不可以处理的.比如 ...
- Java自学-接口与继承 UML图
UML 图 步骤 1 : UML 图 -- 类之间的关系 UML-Unified Module Language 统一建模语言,可以很方便的用于描述类的属性,方法,以及类和类之间的关系 步骤 2 : ...
- UML中的六种关系的比较与学习
通过不断的学习并绘制UML图,整个画图的过程中深刻体会到其核心部分还是理解事物之间的关系,总结六大关系来深入学习,主要关系有六种:继承.实现.依赖.关联.聚合.组合. 区别于联系: 1 ...
- 软件毕业设计文档流程与UML图之间的关系
每个模型都是用一种或者多种UML图来描述的,映射关系如下: 1.用例模型:使用用例图.顺序图.通信图.活动图和状态图来描述. 2.分析模型:使用类图和对象图(包括子系统和包).顺序图(时序图).通信图 ...
- java学习面向对象之匿名内部类
之前我们提到“匿名”这个字眼的时候,是在学习new对象的时候,创建匿名对象的时候用到的,之所以说是匿名,是因为直接创建对象,而没有把这个对象赋值给某个值,才称之为匿名. 匿名对象回顾: class N ...
- java学习面向对象之内部类
什么是面向对象内部类呢?所谓的内部类,即从字面意义上来理解的话,就是把类放到类当中. 那么内部类都有什么特点呢? 1.内部类可以访问包裹他的类的成员. 2.如果包裹他的类想访问被其包裹的类的话就得实例 ...
- java学习面向对象之多态
如何理解多态,让我们举个例子来描述一下,因为单纯的说多态大家可能不理解: abstract class Animal { ; abstract void eat(); public void run( ...
随机推荐
- 现学现卖——Keil uVision 使用教程
Keil uVision 使用教程 1.如果有旧的工程在,先关闭旧工程.Project -> Close Project2.新建工程.Project -> New uVision Proj ...
- js 滑动门的实现
原理:滑动门,这里以图片进行实例,首先设定主盒子div的宽度和高度设定,并进行图片初始化位置的设定,然后将图片绑定事件,并设定要达到的效果 html代码: <!DOCTYPE html> ...
- 一个docker镜像中的目录删除不了问题
在一个容器中,删除一个目录,失败: bash-4.2# pwd /home/zxcdn/ottcache/tomcat bash-4.2# uname -a Linux 3516b6c97679 -. ...
- Hibernate 再接触 ID生成策略
Xml 方法 在student.hbm.xml中 <generator class="uuid"></generator> 取值如下 1.identity: ...
- python类和对象的底层实现
按照python中"一切皆对象的原理",所有创建的对象,都是一个已知存在的class实例化的结果;那么class又是被哪个"类"实例化的呢?先看下面的一段代码 ...
- SAP 费用
SAP在华真相:天价收费与用户之灾 SAP真的是企业实施ERP系统的最佳选择吗? 画皮SAP-世界管理软件公司的中国真相 你知道SAP吗?哦,知道,满大街都是嘛,S-P-A,SPA.做出上述回答的是一 ...
- linux 设备驱动分类
1. 字符设备 :在I/O传输过程中以字符为单位. 2. 块设备: 在传输过程中以块为单位,相关概念有 缓冲,I/O调度,请求队列.主要体现出与字符设备在操作硬件的接口实现方式上是不一样的. 3. 网 ...
- mySQL遇到的问题
学习mySQL遇到以下错误. 仔细检查才发现,是字段不一样. 所以插入数据,应该一一对应.
- Python 爬虫常用模块
1. fake_useragent #pip install fake_useragent requests 2.图展示 pip install pyecharts pip install pyech ...
- Binary Logging Formats
[Binary Logging Formats] The server uses several logging formats to record information in the binary ...