「java的组合」组合java算法

博主:adminadmin 2022-12-02 06:00:07 71

本篇文章给大家谈谈java的组合,以及组合java算法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中通过组合获得的方法能重写吗?

不可以的。

java中的组合就是在一个类中直接引用另一个类,然后调用引用类的一些方法来完成一些功能,适合领域模型中has-a关系的实现;而继承则适合领域模型中is-a关系的实现。

java怎么理解组合/聚合关系给个例子最好能将细点

聚合(Aggregation) 关系是关联关系的一种,是强的关联关系。聚合是整体和个体之间的关系。例如,汽车类与引擎类、轮胎类,以及其它的零件类之间的关系便整体和个体的关系。与关联关系一样,聚合关系也是通过实例变量实现的。但是关联关系所涉及的两个类是处在同一层次上的,而在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分。 

组合(Composition) 关系是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分对象的生命周期,组合关系是不能共享的。代表整体的对象需要负责保持部分对象和存活,在一些情况下将负责代表部分的对象湮灭掉。代表整体的对象可以将代表部分的对象传递给另一个对象,由后者负责此对象的生命周期。换言之,代表部分的对象在每一个时刻只能与一个对象发生组合关系,由后者排他地负责生命周期。部分和整体的生命周期一样。

class Driver {   

    //使用成员变量形式实现关联   

    Car mycar;   

    public void drive(){   

        mycar.run();   

    }   

    ...   

    //使用方法参数形式实现关联   

    public void drive(Car car){   

        car.run();   

    }   

}

聚合关系是是一种比较强的关联关系,java中一般使用成员变量形式实现。对象之间存在着整体与部分的关系。例如上例中

class Driver {   

    //使用成员变量形式实现聚合关系   

    Car mycar;   

    public void drive(){   

        mycar.run();   

    }   

}

假如给上面代码赋予如下语义:车是一辆私家车,是司机财产的一部分。则相同的代码即表示聚合关系了。聚合关系一般使用setter方法给成员变量赋值。 

假如赋予如下语义:车是司机的必须有的财产,要想成为一个司机必须要先有辆车,车要是没了,司机也不想活了。而且司机要是不干司机了,这个车就砸了,别人谁也别想用。那就表示组合关系了。一般来说,为了表示组合关系,常常会使用构造方法来达到初始化的目的,例如上例中,加上一个以Car为参数的构造方法 

public Driver(Car car){   

    mycar = car;   

}

所以,关联、聚合、组合只能配合语义,结合上下文才能够判断出来,而只给出一段代码让我们判断是关联,聚合,还是组合关系,则是无法判断的。

java的排列组合问题

这个方法没有办法从根本上修改,因为你是循环N的M次方来寻找合适的排列。因此只需要加一个过滤条件将不合适的排列过滤掉剩下的就是组合的个数。因为组合是不考虑元素顺序的,因此只需要让排列中的元素是从小到大或从大到小的就可以了。

你把if(k == 0)这个大括号中的代码改成这样

if (k == 0) {

boolean isFlag = true;

for(int g = 0; gM-1 isFlag ;g++){

if(val[g]=val[g+1]){

isFlag = false;

}

}

if (isFlag) {

System.out.printf("%5d 个是 ", (++nPerm));

for (int l = M - 1; l = 0; --l) {

System.out.printf("%2d ", val[l]);

}

System.out.println();

}

used[val[k]] = false;

val[k] = val[k] + 1;

}

JAVA使用设计模式之组合模式?

我就简单的举几个例子吧:

1.你有没有发现io包中有非常多的类?应该这里面大部分都是装饰者模式的产物度。(我就不解释装饰者模式了)

2.不知道你有没有使用过java swing,是问不是发现很多的组件都有addListener这个方法,这就是典型的监听者模式

3.最熟悉的一个答应该是迭代模式,基本上jdk的容器都有这个模式

4.还有就是RMI,这个也应该认识吧,这个也是典型的代理模式,属于远程代理的

5还有一个也是在io包中的,一般你看结尾有adapter的一般都是适配器模式,

6组合模式:如果我没记错的话,在swing中存在树组件吧,那个是组合模式

7工厂方专法和抽象工厂模式:基本上发射中大部分都是

一下子想不起来太多==!

我觉得模式最多的是框架里面,基本都是,最典属型的就是spring了。

java中什么叫组合

组合就是

A类的对象是B类的成员变量。相当于

A类是B类对象的一个属性!

组合和继承都很常见的!

java 所有组合

public static void main(String[] args) {

String s="123";

char[] ss= s.toCharArray();

StringBuffer set= new StringBuffer();

for(int i=0;i6;i++){//6是所有组合总数,也就是ss.length 值的阶乘

set.delete(0,set.length());

for(int j=0;jss.length;j++){

set.append(ss[(i+j)%ss.length]);

}

System.out.println(set.toString());

}

}

java的组合的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于组合java算法、java的组合的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-02,除非注明,否则均为首码项目网原创文章,转载请注明出处。