【Java 基础篇】【第七课】组合
2015-12-14 15:58
330 查看
我所理解的组合就是在一个类当中又包含了另一个类的对象。
这样的方式就是组合吧:
电池是一个类,有电量
手电筒需要电池
看代码吧:
运行结果为:
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!
主要就是一个面向对象的一个思想,很好理解~~
这样的方式就是组合吧:
电池是一个类,有电量
手电筒需要电池
看代码吧:
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!
主要就是一个面向对象的一个思想,很好理解~~
相关文章推荐
- 【Java 基础篇】【第六课】接口interface
- 【Java 基础篇】【第五课】类的构造函数
- 【Java 基础篇】【第四课】初识类
- 【Java 基础篇】【第三课】表达式、控制结构
- 【Java 基础篇】【第二课】基本数组类型
- 【Java 基础篇】【第一课】HelloWorld
- Eclipse中绑定java源代码
- java web session监听销毁跳转
- Java API ——Collection集合类 & Iterator接口
- java中实现两个类文件中变量的互相访问
- 全面解析 Java 注解
- Java文件锁
- 关于Spring中配置LocalSessionFactoryBean来生成SessionFactory
- Java获取当前时间及String、datetime、date相互转化
- Spring AOP的理解
- Spring集成MyBatis
- Rxjava使用示例
- springMVC整合JAXB
- java类加载器
- Retrofit+RxJava+lambda使用示例