//2.用组合实现代码复用
package me.zuhe;
class Animal{
private void beat(){
System.out.println("心脏跳动");
}
public void breath(){
beat();
System.out.println("自由的呼吸");
}
}
class Wolf extends Animal{
//把需要的类当作实例变量加入进来实现组合
private Animal one;
//构造器
public Wolf(Animal one){
this.one=one;
}
public void breath(){
one.breath();
}
public void run(){
System.out.println("runing...");
}
}
class Bird{
private Animal one;
public Bird(Animal one){
this.one=one;
}
public void breath(){
one.breath();
}
public void fly(){
System.out.println("Fly...");
}
}
public class Composite{
public static void main(String[] args){
//创建Animal对象
Animal my=new Animal();
//创建Wolf对象并调用方法
Wolf nima=new Wolf(my);
nima.run();
nima.breath();
//创建Bird对象并调用方法
Bird nimei=new Bird(my);
nimei.fly();
nimei.breath();
}
}
1.Car实例
//组合的方法组建汽车
package me.car;
//发动机
class Engine{
public void start(){
System.out.println("引擎启动");
}
//引擎加速
public void rev(){
System.out.println("引擎加速");
}
public void stop(){
System.out.println("引擎停止");
}
}
//车轮
class Wheel{
//给轮胎打气
public void inflate(){
System.out.println("打气");
}
}
//车窗
class Windows{
public void rollup(){
System.out.println("看车窗爬上来~");
}
public void rolldown(){
System.out.println("开往城市边缘开~我把车窗偷偷摇下来~");
}
}
//车门
class Door{
//车门有车窗
public Windows window=new Windows();
public void open(){
System.out.println("开车门");
}
public void close(){
System.out.println("关车门");
}
}
class Car{
//一辆车有一个发动机,四个轮子,
public Engine engine=new Engine();
public Wheel [] wheel=new Wheel[4];
public Door left=new Door();
public Door rigth=new Door();
public Car(){
for(int i=0;i<4;i++) wheel[i]=new Wheel();
}
}
public class TestZuhe{
public static void main(String[] args){
Car myCar=new Car();
myCar.engine.start();
myCar.engine.rev();
myCar.left.open();
myCar.rigth.window.rolldown();
}
}
运行结果
yg@Gander:~/Desktop/code$ java me.car.TestZuhe
引擎启动
引擎加速
开车门
开往城市边缘开~我把车窗偷偷摇下来~
作者:YangGan出处:http://blog.csdn.net/incyanggan本文基于署名
2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名Yanggan(包含链接).
相关推荐
内容是C++面对对象的,目录大致来源于菜鸟文档的C++面向对象,笔记是参考各种文章以及菜鸟文档改编的,内容包含C++类和对象(类定义和对象定义,类成员函数,类访问修饰符,友元函数,内联函数,this指针,静态成员...
java笔记-从菜鸟到j2se j2ee高手之路
股市菜鸟必读----“笑傲股市”学习笔记.pdf
JAVA入门级笔记,满满当当适合刚学习用JAVA编程的程序员,不死记硬背靠理解走遍天下
java菜鸟学习第一步-java基础语法,学习一门语言先从语法开始学起,学好基础才能深入的学习编程
菜鸟入侵--利用资源搜索动画教程,内附有详细的使用说明 菜鸟入侵之利用资源篇 菜鸟在入侵的时候,如果能充分利用现有的资源,那将对自己的入侵起很大的
spring-core-5.1.5.RELEASE.jar
java 笔试面试题 Java 面试笔记 这本书其实是我的一本笔记 (还在整理中). 我是也是刚找到工作. 这本笔记主要记录了我之前面试遇到的问题以及我在网上整理的一些资料 主要是面向 junior 级别的 就是我们这些小菜鸟啦 ...
这本笔记主要记录了我之前面试遇到的问题以及我在网上整理的一些资料 主要是面向 junior 级别的 就是我们这些小菜鸟啦 ~ ---------------------------------------------------- 本 PDF 基于开源文档,目录书签齐全...
本人刚接触C#,练练手做了个小程序,美化效果比较差,对刚学OO思想想俺一样的菜鸟或许有那么点帮助,希望大家多多指教
Java基础知识笔记详细版-菜鸟翻阅必备,可以作为坐地铁等公交的读物!
python-note 菜鸟学习笔记
java必备-菜鸟的最爱-正则表达式.docx
菜鸟的SAP自学学习笔记;对SAP初学者很有帮助喔!为了解决问题却也带来了相当大的收益,接触了那些以前不会考虑的问题领域,结识了一些之前根本想象不到的人,这些都是那么重珍贵。
JAVA基础学习课件,菜鸟篇。零基础学Java(PPT)--java教学
菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华...
STM32菜鸟学习手册-罗嗦版 。
DAMA学习笔记-第01-17章细化第5章数据建模较多内容
tomcat-embed-websocket-9.0.16.jar