• java中类的组合机制


                 经过课堂学习,了解了类的组合机制,之前只是介绍过java中类的继承,忽略了类的组合,今天补上。

              在java中如果一个类A中有你想要调用的方法,在你新建一个类B时,可以将想要用的类A的对象引用作为数据成员,就可以将类B看作是由类A组合而成的。

              以一个具体的例子,解释一下:

                           这个例子就是想创建一个类A,A有一个发射的方法,而已知的类FighterPlane有这个方法,所以就想用现成的方法,用到类的组合。目的是A的对象可以调用FighterPlane的方法,所以A类里面必须有一个FighterPlane对象的引用类型的数据成员,之后进行这个数据成员的初始化,要让它和一个FighterPlane的对象关联起来,即需要给A类的构造方法里传入实参,进行初始化。FighterPlane ftp = new FighterPlane("su35",10);这时产生了一个FighterPlane的对象和指向此对象的引用,之后 A  a   = new A(ftp); 则完成了A中的fp的初始化,A类的对象可以调用FighterPlane的方法了。

                       其实本质上就是A类的数据成员的数据类型比较特殊,但是同简单数据类型一样,也是进行初始化。另外,讲讲类的组合的优点,类的组合使用的是对象的引用,可以和不同的对象关联,但是在类的继承时,子类继承了父类所有的数据成员和方法,很笨重。因此尽量用组合,少用继承。

                                                                   

                                                                

  • 相关阅读:
    userdefined phase 自定义uvm_phase
    从源码角度来看UVM phase
    sequence启动的三种方式
    谈一谈SystemVerilog的seed
    UVM跨domain同步
    从源码角度来看objection
    creat a uvm_sched自定义domain的run_time_phase
    Solution Set 「LOCAL」冲刺省选 Round XXVII
    Solution 「CF 1290F」Making Shapes
    Solution Set 「LOCAL」冲刺省选 Round XXII
  • 原文地址:https://www.cnblogs.com/Wangjiaq/p/8618950.html
Copyright © 2020-2023  润新知