文件复制程序:
将一个文件复制一份出来,实现方法很简单,使用FileInputStream读取文件内容,然后使用FileOutputStream写入另一个文件,利用read方法的返回值作为while循环的条件,进行一边读一边写。
代码示例:
统计连续的重复字节:
将连续5个以上重复的字节统计一下,并且将重复的数量和所有重复字节的总数量打印出来。
实现这个程序,主要思路是单个字节的读取,每读取一个字节就记录下来,然后和下一次读取的字节进行对比比否相等,相等代表重复。就再用一个count变量记录重复的次数,如果不相等就代表不重复就需要把这个变量归零重新记录。还需要一个total变量来记录每次重复的次数总和,只需要加个判断条件,只要count大于等于5就令total+=count即可。
代码示例:
运行结果:
装饰设计模式:
装饰设计模式,顾名思义就是给某样东西、某个对象进行装饰。装饰设计模式可以利用继承或实现接口的方式,给一个基础的对象增加新的功能,就像一个毛坯房,可以通过装修之后变成漂亮的房子,有点类似于能够进行功能上的叠加。
下面以蛋糕为主题进行一个装饰设计模式的过程:
代码示例:
先使用一个接口定制好方法:
然后写一个最基础的类,在蛋糕里最基础的类就是普通蛋糕了,在这个类里需要实现接口。
代码示例:
接着就是其他可以以蛋糕这个类为基础扩展的类,例如草莓蛋糕:
代码示例:
愿意的话可以写任意个这样的类,但是基本规则都是一样:
代码示例:
体系写完后,可以使用测试类测试效果:
代码示例:
运行结果:
再增加(装饰)一个对象:
运行结果:
可以增加任意个对象:
运行结果:
也可以只使用基础类对象:
运行结果:
写信的例题:
也是同样先定义一个接口或者抽象类:
然后再定义一个基础实现类:
有些人喜欢在信件上喷点香水,所以可以写一个香水的扩展类:
如果写的是情书,或许还需要一个吻印,那么就可以写一个吻印的扩展类:
既然有吻印,自然得再加上几个爱心桃,来给对方表达爱慕,那么就再写一个爱心的扩展类:
完成后就可以在测试类里进行测试查看效果:
运行结果:
本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1976621,如需转载请自行联系原作者