精华内容
下载资源
问答
  • Java类和类之间关系

    千次阅读 2016-08-31 22:48:49
    和类之间关系包括了 is a,has a, use a三种关系 is a包括了 继承,实现关系 has a包括了 组合,聚合,关联关系 use a包括了 依赖关系 继承:子是父的关系,狗是动物 [Java] 纯文本查看 复制代码 ? 1 2...
    类和类之间关系包括了 is a,has a, use a三种关系
    is a包括了 继承,实现关系
    has a包括了 组合,聚合,关联关系
    use a包括了 依赖关系
    继承:子是父的关系,狗是动物
    [Java]  纯文本查看  复制代码
    ?
    1
    2
    public class Animal{}
    public class Dog extends Animal{}


    实现:实现类实现接口,同样是是的关系,UserServiceImpl实现了UserService接口
    [Java]  纯文本查看  复制代码
    ?
    1
    2
    public interface UserService{}
    public class UserServiceImpl implements UserService{}


    组合:有的关系,人有一个心脏,而且这个心脏是在创造人时,内部创造的
    [Java]  纯文本查看  复制代码
    ?
    1
    2
    3
    4
    5
    6
    7
    public class Heart{}
    public class Person{
         private Hart hart;
         public Person(){
             this .hart= new Hart();
         }
    }


    聚合:有的关系,汽车有发动机,而且汽车产生就有发动机了,而对于汽车制造的时候,发动机不一定是自己造的,可以拿别人造好的发动机
    [Java]  纯文本查看  复制代码
    ?
    1
    2
    3
    4
    5
    6
    7
    public class Engine{}
    public class Car{
         private Engine engine;
         public Car(Engine engine){
             this .engine=engine;
         }
    }


    关联:一个人可以有一辆汽车,而这个汽车不是一个人出生就有,而是后期买的
    [Java]  纯文本查看  复制代码
    ?
    1
    2
    3
    4
    5
    6
    7
    public class Car{}
    public class Person{
         private Car car;
         public void setCar(){
             this .car=car;
         }
    }


    依赖:使用的关系,一个人可以做火车到达想去的地方,但火车不是这个人的东西,人只是使用火车移动
    [Java]  纯文本查看  复制代码
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    public class Train{
         public void move(){}
    }
    public class Person{
         public void move(Train train){
             train.move();
         }
    }



    通过代码可以看出,类和类之间的关系,按我这个顺序是从高到低
    一个类改变了对于其他类的影响也是从高到低
    我们写代码要遵守两个原则
    高低原则
        高内聚,低耦合
    开闭原则
       对扩展开,对修改闭
    所以我们写代码,能有耦合低的关系就不要用耦合高的关系
    附类图

    oo.png (7.66 KB, 下载次数: 7)

    oo.png
    展开全文
  • 和类之间关系

    万次阅读 多人点赞 2018-06-28 17:21:10
    和类之间的6种关系一、UMLa) Unified Modeling Language (UML)又称统一建模语言或标准建模语言b) 它是一个支持模型化软件系统开发的图形化语言,为软件开发的所有阶段提供模型化可视化支持c) 它不仅统一了...

    类和类之间的6种关系

    一、UML

    a) Unified Modeling Language (UML)又称统一建模语言或标准建模语言

    b) 它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持

    c) 它不仅统一了BoochRumbaughJacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言

    d) UML定义了10种模型图,对应软件设计开发的不同阶段

    i. 用例图

    ii. 静态图:类图,包图,对象图。

    iii. 行为图状态图和活动图

    iv. 交互图:顺序图和协作图

    v. 实现图:组件图、部署图

     

    二、常用的UML软件

    a) 商业软件,功能强大

    a) Rational RoseUML建模为主,辅以数据库建模

    b) PowerDesigner:数据库建模工具、辅以UML建模

    c) MicroSoft Office visio:专业制图软件,地铁、装修、建筑都可以,也支持数据库和UML建模

    b) 开源软件、功能不弱

    a) starUML

    b) umlet

    c) eclipse(需要添加插件)

     

    三、类和类(接口)之间的关系

    1. 继承关系(泛化关系 Generalization

    a) 语义:

    i. 类和子类的关系,接口和子接口的关系;

    ii. 一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能

    b) 语法:extends

    c) 符号:

    i. 一条带空心三角箭头的实线,从子类指向父类,或者子接口指向父接口。

    ii. 

     

    2. 实现关系(Realization)

    a) 语义:

    i. 类和接口之间的关系;

    ii. 一个类可以实现多个接口,实现所有接口的功能;体现了规范和实现分离的原则

    b) 语法: implements

    c) 符号

    i. 实现用一条带空心三角箭头的虚线表示,从类指向实现的接口

    ii. 

     

    3. 依赖关系(Dependency)

    a) 语义:一个类A使用到了另一个类B,但是这种使用关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A

    b) 语法:类B作为类A的方法的参数(或者局部变量)存在

    c) 符号:

    i. 由类A指向类B的带箭头虚线表示

    ii. 

      

    4. 关联关系(Association)

    a) 语义:

    i. 比依赖关系强,必然的,长期的,强烈的;

    ii. 分为单向关联(只是班级中增加了学生)、双向关联(在学生中也添加班级属性)

    iii. 分为一对一(学生和学生证)、一对多(班级和学生)、多对多关联(学生和课程)

    iv. 有两个类的关联(客户和订单、订单和商品)、还有一个类和自身关联(领导也是员工)

    b) 语法:类B作为成员变量形成存在于类A

    c) 符号:

    i. 由类A指向类B的带箭头虚线表示;双向关联可以取消两个箭头

    ii. 

    iii. 在关联的两端可以标注关联双方的角色和多重性标记

     

     

     

    5. 聚合关系(Aggregation)

    a) 语义:

    i. 关联关系的一种特例

    ii. 整体和部分的关系

    iii. 整体部分可分离,整体的生命周期和部分的生命周期不同,has-a的关系

    iv. 计算机与CPU、公司与员工的关系、班级和学生的关系

    b) 语法:同关联关系

    c) 符号:空心菱形加实线箭头  

     

     

    6. 组合关系(Composition)

    a) 语义:

    i. 关联关系的一种特例

    ii. 整体和部分关系、整体部分不可分离、比聚合更强 contains-a的关系

    iii. 整体的生命周期和部分的生命周期相同

    iv. 人和四肢的关系

    b) 语法:同关联关系

    c) 符号:实心菱形加实线箭头   

     

    7. 总结

    a) 继承和实现一般没有争议

    b) 后四种关系的强弱:组合>聚合>关联>依赖。

    c) 关联和依赖的区别:

    i. 关联关系强、长期

    ii. 关联关系是通过属性来实现;依赖关联是通过方法形参或者局部变量实现

    d) 关联、组合/聚合的异同

    i. 相同:都是关联,都是做类的属性

    ii. 不同点:组合 /聚合表示的是整体和部分的关系,关联可以表示所有关系

    e) 组合和聚合的异同

    i. 相同:都是关联的特例,都是表示的整体和部分的关系

    ii. 不同点:整体部分的生命周期是否相同?组合更强

    展开全文
  • 1.如何判读某个对象属于某个,可以利用Java中的的instanceof 用法: 判断每个对象是否属于某个的特定实例,具体格式 if(对象 instanceof 要判断的对象){ } 返回 true / false 例如: public class Test { ...
    1.如何判读某个对象属于某个类,可以利用Java中的的instanceof
    用法:
    判断每个对象是否属于某个类的特定实例,具体格式
    if(对象 instanceof 要判断的对象){
    }
    返回 true / false
    例如: 
    public class Test {
    public static void main(String[] args){
          Test t1 = new Test();
          if(t1 instanceof Test)
        	  System.out.println("t1是Test的对象");
          if(t1 instanceof Object)
        	  System.out.println("t1是Object的对象");
      }
    }
    
    输出:
    t1是Test的对象
    t1是Object的对象
    2、判断两个类之间是否存继承关系。
    classa.isAssignableFrom(classb)可以判断B是否继承于A
    class A
    {
    }
    public class B extends A{
    public static void main(String[] args){
      Class classb = B.class;
      Class classa = A.class;
      System.out.println(classa.isAssignableFrom(classb));
      if(classa.isAssignableFrom(classb)){
       System.out.println("A是B的父类");
      }else{
       System.out.println("A不是B的父类");
      }
    }
    }
    输出: A是B的父类
    展开全文
  • 类与类之间关系和耦合度

    千次阅读 2020-06-30 21:19:46
    写了很多年代码,都没有考虑过类之间关系,大家了解比较多的是继承关系,其实还有很多其他关系我们也使用了,但是并没有一个明确的概念,还有类之间的耦合度也不是很清楚,接下来介绍类和类之间关系。...

    写了很多年代码,都没有考虑过类之间的关系,大家了解比较多的是继承关系,其实还有很多其他关系我们也使用了,但是并没有一个明确的概念,还有类之间的耦合度也不是很清楚,接下来介绍类和类之间的关系。

    在软件系统中,类不是孤立存在的,类与类之间存在各种关系。根据类与类之间的耦合度从弱到强排列,UML 中的类图有以下几种关系:依赖关系、关联关系、聚合关系、组合关系、泛化关系和实现关系。其中泛化和实现的耦合度相等,它们是最强的。

    依赖关系

    依赖(Dependency)关系是一种使用关系,它是对象之间耦合度最弱的一种关联方式,是临时性的关联。在代码中,某个类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些职责。
    特点:
    1:是一种使用关系
    2:是一种临时关系

    在 UML 类图中,依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖的类。如下图所示是人与手机的关系图,人通过手机的语音传送方法打电话。
    在这里插入图片描述

    关联关系

    关联(Association)关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,如老师和学生、师傅和徒弟、丈夫和妻子等。关联关系是类与类之间最常用的一种关系,分为一般关联关系、聚合关系和组合关系。我们先介绍一般关联。
    特点:
    1:是一种引用关系
    2:可以是双向的
    3:可以是单向的
    在 UML 类图中,双向的关联可以用带两个箭头或者没有箭头的实线来表示,单向的关联用带一个箭头的实线来表示,箭头从使用类指向被关联的类。也可以在关联线的两端标注角色名,代表两种不同的角色。
    在代码中通常将一个类的对象作为另一个类的成员变量来实现关联关系。如下图所示是老师和学生的关系图,每个老师可以教多个学生,每个学生也可向多个老师学,他们是双向关联。
    在这里插入图片描述

    聚合关系

    聚合(Aggregation)关系是关联关系的一种,是强关联关系,是整体和部分之间的关系,是 has-a 的关系。
    聚合关系也是通过成员对象来实现的,其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在。例如,学校与老师的关系,学校包含老师,但如果学校停办了,老师依然存在。
    特点:
    1:是一种强关联关系
    2:是一种拥有的关系
    在 UML 类图中,聚合关系可以用带空心菱形的实线来表示,菱形指向整体。如下图所示是大学和教师的关系图。
    在这里插入图片描述

    组合关系

    组合(Composition)关系也是关联关系的一种,也表示类之间的整体与部分的关系,但它是一种更强烈的聚合关系,是 contains-a 关系。
    在组合关系中,整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也将不存在,部分对象不能脱离整体对象而存在。例如,头和嘴的关系,没有了头,嘴也就不存在了。
    特点:
    1:是一种强关联关系
    2:是一种包含的关系
    3: 整体对象控制部分对象的生命周期
    在 UML 类图中,组合关系用带实心菱形的实线来表示,菱形指向整体。如下图所示是头和嘴的关系图。
    在这里插入图片描述

    泛化关系

    泛化(Generalization)关系是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系,是一种继承关系,是 is-a 的关系。
    特点:
    1:是对象间耦合度最大的一种关系
    2:是一种继承关系
    在 UML 类图中,泛化关系用带空心三角箭头的实线来表示,箭头从子类指向父类。在代码实现时,使用面向对象的继承机制来实现泛化关系。例如,Student 类和 Teacher 类都是 Person 类的子类,其类图如下图所示。
    在这里插入图片描述

    实现关系

    实现(Realization)关系是接口与实现类之间的关系。在这种关系中,类实现了接口,类中的操作实现了接口中所声明的所有的抽象操作。
    特点:
    1:耦合度最大的一种关系
    2:是一种继承关系
    在 UML 类图中,实现关系使用带空心三角箭头的虚线来表示,箭头从实现类指向接口。例如,汽车和船实现了交通工具,其类图如下图所示。
    在这里插入图片描述

    展开全文
  • 接口、抽象类和类之间关系

    千次阅读 2017-08-07 20:01:29
    java接口、抽象类和类的定义三者之间关系
  • JAVA类与类之间的全部关系简述+代码详解

    千次阅读 多人点赞 2018-07-18 09:23:03
    和类之间关系包括了 is a,has a, use a三种关系 (1)is a包括了 继承,实现关系 (2)has a包括了 组合,聚合,关联关系 (3)use a包括了 依赖关系 一、继承关系 继承指的是一个类(称为子类、子接口)继承...
  • UML类和类之间关系详解

    千次阅读 2020-04-15 21:27:25
    五分钟读懂UML类图 12-10 10:411097浏览举报 T字号 平时阅读一些远吗分析文章...在UML类图中,使用包含类名、属性(field) 方法(method) 且带有分割线的矩形来表示,比如下图表示一个Employee,它包含name,ag...
  • 面向对象中类与类之间关系

    千次阅读 2018-08-04 20:03:59
    类与类之间关系 关联关系 ​ 表示一个类与另外一个类有联系,通常在 表现为一个类对象作为另一个类的属性 。 ​ 类图中表示关联关系时可以在关联关系线上标注角色名,一般使用一个表示两个之间的关系的动词或...
  • 能够很好的了解java中类与类之间关系,如依赖,泛化,关联,聚合。以及它们之间的关系和区别。
  • UI 类与类之间关系

    千次阅读 2014-09-20 07:30:18
    UI类之间的详细继承关系,可以帮到开发者,掌握整体框架
  • 7.1 建立类和对象的模型 7.2 寻找系统中的 7.3 确定或对象之间关系 7.4 设计的属性 7.5 设计的职责 7.6 小结
  • 类和对象之间关系

    万次阅读 2019-03-07 15:07:44
    与对象的关系 是对象的概括,对象是的具体体现 根据一对象进行概括,将对象的特征概括为属性,将对象的行为概括为方法,将这一对象用一个表示 --- 是对象的概括/抽取 通过new关键字来创建这个...
  • 类与类之间的几种关系

    万次阅读 2017-03-14 08:30:22
    类与类之间的几种关系 一、继承关系 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识...
  • public class A{ private B b; } public class B{ private A a; }
  • java中类与类之间有单继承关系,类与接口之间有单实现关系,也有多实现关系,接口与接口之间有多继承关系吗,单继承关系呢,还是多实现,单实现关系,那么对象与对象之间又有什么关系
  • 类与类之间的六种关系的表示方法

    千次阅读 2019-02-22 12:03:52
    类与类之间有以下六种关系: 依赖 关联 聚合 组合 实现 泛化 1、依赖关系 虚线+箭头表示 例如:人与车 2、关联关系 实线+箭头表示 例如:老师与课程 3、聚合关系 空心菱形+箭头表示 例如:大雁雁群 4、组合...
  • 类和类/对象对象之间的三大关系

    千次阅读 2018-10-13 18:12:37
    线段上有两个点 - has-a - 关联关系 整体不可分割的,叫做强关联/聚合 eg:人有手,车有引擎 人使用了房子 - use-a - 使用,依赖关系 学生是人 - is-a - 继承关系 继承 - 从已经有的创建新的过程 提供继承...
  • 类与类之间的常见关系

    万次阅读 多人点赞 2019-06-13 11:49:20
    类与类之间关系说明 对象的关联 — 简单地说,是指一个对象中使用了另一个对象。 1、依赖关系(Dependency) 对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量、函数参数、返回值建立的对于...
  • Java中子类和父类之间的调用关系

    千次阅读 2012-12-29 13:41:48
    2. this super 的区别。 3.每个直接或间接是Object的子类,Object只有一个无参构造方法。 4.编译器会在每个构造方法的第一行隐式添加父类的默认无参构造器,即添加super()。 新手容易犯的
  • 首先抽象归根结底还是属于,对于抽象方法,是只能存在于抽象中的,我们无法再一个非抽象的中声明一个抽象方法,其次抽象方法只需要声明,并不需要事先。当我们要写一个抽象的时候只需要在的前面声明为...
  • 类与类之间关系

    千次阅读 2013-10-12 20:45:25
    类与类之间关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就介绍一下。   类与类之间存在以下关系:  (1)泛化(Generalization)  (2)关联(Association) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,561,245
精华内容 624,498
关键字:

类和类之间的关系