A. java怎么理解组合/聚合关系 给个例子 最好能将细点
兄弟,以后到CSDN上提问,中不中
B. 依赖,聚合,组合在java代码实现中是不是一样的
在面向对象中,类与类之间的关系有泛化,依赖,关联,聚合,组合几种。
其中,聚合和组合都属于关联。
在具体编程中:
依赖表现为如果A类依赖于B,则B体现为A的局部变量,方法参数或静态方法的调用。
eg:
class B{
Static void function1(){};
void function2(){};
}
public class A{
public static void main(String[] args){
....
B.function1();//A类中调用了B类的静态方法
....
}
}
聚合和组合都属于关联,很难区分,但是只要记住一点,区分它们就容易多了:
处于聚合关系的两个类生命周期不同步,则是聚合关系;处于组合关系的两个类的生命周期同步;
eg:
聚合关系,当A创建的时候,B不一定创建;当A消亡时,B不一定消亡。
class A{
private B;
}
class B{
....
}
组合关系,当创建一个A对象时,也会创建一个B对象;当A对象消亡时,作为A的属性的B对象也会消亡。
class A{
private b=new B();
....
}
class B{
....
}
C. java 聚合和组合的区别
聚合(Aggregation)关系是关联关系的一种,是强的关联关系。聚合是整体和个体之间的关系。例如,汽车类与引擎类、轮胎类,以及其它的零件类之间的关系便整体和个体的关系。与关联关系一样,聚合关系也是通过实例变量实现的。但是关联关系所涉及的两个类是处在同一层次上的,而在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分
组合(Composition)关系是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分对象的生命周期,组合关系是不能共享的。代表整体的对象需要负责保持部分对象和存活,在一些情况下将负责代表部分的对象湮灭掉。代表整体的对象可以将代表部分的对象传递给另一个对象,由后者负责此对象的生命周期。换言之,代表部分的对象在每一个时刻只能与一个对象发生组合关系,由后者排他地负责生命周期。部分和整体的生命周期一样。
以上关系的耦合度依次增强(关于耦合度的概念将在以后具体讨论,这里可以暂时理解为当一个类发生变更时,对其他类造成的影响程度,影响越小则耦合度越弱,影响越大耦合度越强)。由定义我们已经知道,依赖关系实际上是一种比较弱的关联,聚合是一种比较强的关联,而组合则是一种更强的关联,所以笼统的来区分的话,实际上这四种关系、都是关联关系。
聚合关系是是一种比较强的关联关系,java中一般使用成员变量形式实现。对象之间存在着整体与部分的关系。例如上例中
classDriver{假如给上面代码赋予如下语义:车是一辆私家车,是司机财产的一部分。则相同的代码即表示聚合关系了。聚合关系一般使用setter方法给成员变量赋值。
//使用成员变量形式实现聚合关系
Carmycar;
publicvoiddrive(){
mycar.run();
}
}
publicDriver(Carcar){所以,关联、聚合、组合只能配合语义,结合上下文才能够判断出来,而只给出一段代码让我们判断是关联,聚合,还是组合关系,则是无法判断的。
mycar=car;
}
D. java类之间关系中,一般的关联关系是怎样的
关联关系分为两种:聚合和组合。聚合:举个例子,学校类是整体,而学生类是部分。学校与学生都是可以独立存在的,之间没有什么必然的联系。因此学校与学生就是聚合关系。代码:
public class Student{
}
public class School{
private List<Student> students ; //学校与学生是聚合关系
}
组合:如Windows的窗口和窗口上的菜单就是组合关系。如果整体被销毁,部分也必须跟着一起被销毁,如果所有者被复制,部分也必须一起被复制。,代码:
public class Menu{
}
public class Window{
private List<Menu> menus ;
}
E. JAVA 中集合和组合是一个意思么
composition 是组合,指的是类与类之间的关系,几种常见的关系有,继承,组合,关联,聚合,依赖等...
collections 是集合,是指容器,常见的子类接口有,List,Map。简单来说,就是用来装其它东西的,被装东西可以是基础类型的数据...
F. Java8聚合操作的使用是怎样的
聚合操作是Java8针对集合类,使编程更为便利的方式,可以与Lambda表达式一起使用,达到更加简洁的目的。
对聚合操作的使用可以归结为3个部分:
数据源部分:通过stream()方法,取得集合对象的数据集。
通过一系列中间(Intermediate)方法,对数据集进行过滤、检索等数据集的再次处理。如上例中,使用filter()方法来对数据集进行过滤。
通过最终(terminal)方法完成对数据集中元素的处理。如上例中,使用forEach()完成对过滤后元素的打印。
中间方法除了filter()外,还有distinct()、sorted()、map()等等,其一般是对数据集的整理(过滤、排序、匹配、抽取等等),返回值一般也是数据集。
G. java怎么理解组合/聚合关系给个例子最好能将细点
聚合(Aggregation)关系是关联关系的一种,是强的关联关系。聚合是整体和个体之间的关系。例如,汽车类与引擎类、轮胎类,以及其它的零件类之间的关系便整体和个体的关系。与关联关系一样,聚合关系也是通过实例变量实现的。但是关联关系所涉及的两个类是处在同一层次上的,而在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分。
组合(Composition)关系是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分对象的生命周期,组合关系是不能共享的。代表整体的对象需要负责保持部分对象和存活,在一些情况下将负责代表部分的对象湮灭掉。代表整体的对象可以将代表部分的对象传递给另一个对象,由后者负责此对象的生命周期。换言之,代表部分的对象在每一个时刻只能与一个对象发生组合关系,由后者排他地负责生命周期。部分和整体的生命周期一样。
classDriver{
//使用成员变量形式实现关联
Carmycar;
publicvoiddrive(){
mycar.run();
}
...
//使用方法参数形式实现关联
publicvoiddrive(Carcar){
car.run();
}
}
聚合关系是是一种比较强的关联关系,java中一般使用成员变量形式实现。对象之间存在着整体与部分的关系。例如上例中
classDriver{
//使用成员变量形式实现聚合关系
Carmycar;
publicvoiddrive(){
mycar.run();
}
}
假如给上面代码赋予如下语义:车是一辆私家车,是司机财产的一部分。则相同的代码即表示聚合关系了。聚合关系一般使用setter方法给成员变量赋值。
假如赋予如下语义:车是司机的必须有的财产,要想成为一个司机必须要先有辆车,车要是没了,司机也不想活了。而且司机要是不干司机了,这个车就砸了,别人谁也别想用。那就表示组合关系了。一般来说,为了表示组合关系,常常会使用构造方法来达到初始化的目的,例如上例中,加上一个以Car为参数的构造方法
publicDriver(Carcar){
mycar=car;
}
所以,关联、聚合、组合只能配合语义,结合上下文才能够判断出来,而只给出一段代码让我们判断是关联,聚合,还是组合关系,则是无法判断的。
H. 什么是java聚合工程
聚合就是由很多节点合到一起的一个工程,但是每个节点不能独立存在。有一个相对的概念叫组合,组合也有很多节点组成,但是它的每个节点可以独立存在。
I. JAVA中的聚集和组合的区别与联系
聚合(Aggregation) 关系是关联关系的一种,是强的关联关系。聚合是整体和个体之间的关系。例如,汽车类与引擎类、轮胎类,以及其它的零件类之间的关系便整体和个体的关系。与关联关系一样,聚合关系也是通过实例变量实现的。但是关联关系所涉及的两个类是处在同一层次上的,而在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分
组合(Composition) 关系是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分对象的生命周期,组合关系是不能共享的。代表整体的对象需要负责保持部分对象和存活,在一些情况下将负责代表部分的对象湮灭掉。代表整体的对象可以将代表部分的对象传递给另一个对象,由后者负责此对象的生命周期。换言之,代表部分的对象在每一个时刻只能与一个对象发生组合关系,由后者排他地负责生命周期。部分和整体的生命周期一样。
以上关系的耦合度依次增强(关于耦合度的概念将在以后具体讨论,这里可以暂时理解为当一个类发生变更时,对其他类造成的影响程度,影响越小则耦合度越弱,影响越大耦合度越强)。由定义我们已经知道,依赖关系实际上是一种比较弱的关联,聚合是一种比较强的关联,而组合则是一种更强的关联,所以笼统的来区分的话,实际上这四种关系、都是关联关系。
聚合关系是是一种比较强的关联关系,java中一般使用成员变量形式实现。对象之间存在着整体与部分的关系。例如上例中
<pre t="code" l="java">class Driver {
//使用成员变量形式实现聚合关系
Car mycar;
public void drive(){
mycar.run();
}
}假如给上面代码赋予如下语义:车是一辆私家车,是司机财产的一部分。则相同的代码即表示聚合关系了。聚合关系一般使用setter方法给成员变量赋值。
假如赋予如下语义:车是司机的必须有的财产,要想成为一个司机必须要先有辆车,车要是没了,司机也不想活了。而且司机要是不干司机了,这个车就砸了,别人谁也别想用。那就表示组合关系了。一般来说,为了表示组合关系,常常会使用构造方法来达到初始化的目的,例如上例中,加上一个以Car为参数的构造方法 <pre t="code" l="java">public Driver(Car car){
mycar = car;
}所以,关联、聚合、组合只能配合语义,结合上下文才能够判断出来,而只给出一段代码让我们判断是关联,聚合,还是组合关系,则是无法判断的。</ol>