我所理解的组合就是在一个类当中又包含了另一个类的对象。
这样的方式就是组合吧:
电池是一个类,有电量
手电筒需要电池
看代码吧:
1 // 电池类 2 class Battery 3 { 4 // 充电 5 public void chargeBattery(double p) 6 { 7 power += p; 8 System.out.println("Battery: power is " + power ); 9 } 10 // 放电 11 public boolean useBattery(double p) 12 { 13 if (power >p ) 14 { 15 power -= p; 16 System.out.println("Battery: power is " + power ); 17 return true; 18 } 19 else 20 { 21 power = 0.0; 22 System.out.println("Battery: power only is " + power +", not enough"); 23 return false; 24 } 25 } 26 // 电量 27 private double power = 0.0; 28 } 29 30 31 // 手电筒类 32 class Torch 33 { 34 // 打开手电筒 35 public void turnon(int hours) 36 { 37 System.out.println("Torch:turnon " + hours + " hours."); 38 39 if ( theBattery.useBattery( hours*0.1) == false ) 40 { 41 System.out.println("Torch:can not use, please charge! "); 42 } 43 } 44 45 //手电充电 46 public void charge(int hours) 47 { 48 System.out.println("Torch:charge " + hours + " hours."); 49 theBattery.chargeBattery( hours*0.2 ); 50 } 51 52 //电池类 53 private Battery theBattery = new Battery(); 54 } 55 56 57 public class test 58 { 59 public static void main(String[] args) 60 { 61 Torch aTorch = new Torch(); 62 aTorch.charge(2); 63 aTorch.turnon(3); 64 aTorch.turnon(3); 65 } 66 67 }
运行结果为:
Torch:charge 2 hours.
Battery: power is 0.4
Torch:turnon 3 hours.
Battery: power is 0.09999999999999998
Torch:turnon 3 hours.
Battery: power only is 0.0, not enough
Torch:can not use, please charge!
主要就是一个面向对象的一个思想,很好理解~~