Java的扩展机制之二——组合

组合:一个类通过将其他类的对象加入自己的类中,从而使用其资源
【1】 继承(is a)仅适用于有共同点的父类与子类,组合(has a/is a part of)不要求类与类之间有直接联系
【2】组合体现了一种包含的逻辑关系,诸多小类相互调用组合成一个大类,在构建一个大类时,我们可以把大类分解成很多小类(相当于产品与零件的关系),有利于多人合作和代码的复用
【3】一个类在使用其他类时,可以以其他类为参数通过(对象名+.)调用,也可以以其他类的数据成员为参数,使用其构造方法调用
【4】在使用组合时, 切记不要将要组合的数据成员或方法设置为private ,因为private的数据只能在该类自己内部使用,无法通过 (对象名+.)在其他类中被调用
//类的组合
class Point {
//   private int x1;无法在Line中通过a.x1来调用
//   private int x2;
     
      int x ;
      int y ;
      public Point ( int x , int y ) {
          this . x = x ;
          this . y = y ;
      }
}
class Line {
      Point p1 , p2 ;
      Line ( Point a , Point b ) {
          p1 = new Point ( a . x , a . y ) ;
          p2 = new Point ( b . x , b . y ) ;
      }
      Line ( int x1 , int y1 , int x2 , int y2 ){
          p1 = new Point ( x1 , y1 ) ;
          p2 = new Point ( x2 , y2 ) ;
      }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值