JAVA基础(二)面向对象思想
2016-03-08 19:51
507 查看
JAVA是一门面向对象的语言,面向对象自然是开发中的主要核心,然而到底面向对象的思想是什么呢?如何去理解呢,这里从一个小例子出发来解释一下面向对象的思想。
假如有一个人,他得家里有两台打印机,一个HP,一个Canon,两个都有开机、打印、关机的功能,而Canon关机之前有清除功能,问题来了,那么如何实现?
也许我们第一反应是写一个HP类和Canon类,,各自实现自己的功能,然后再写一个实现类调用就好。
然而问题就来了,如果有一百种打印机,那每个类都要写大量重复的代码,那是一种多么费时的解决方式。
所以在面向对象的思想中,我们需要这样解决问题:
新建一个Printer类,写上所有相同的功能:
然后HP类直接继承就好,而Canon中close前有clean,所以我们可以在Canon中继承Printer后直接复写就好:
最后直接在实现类中调用各个子类的open、print、close方法就好。
很简单的一个小程序,但传递的时JAVA开发编程中重要的面向对象的思想,有效的降低冗余度,减少重复代码。
假如有一个人,他得家里有两台打印机,一个HP,一个Canon,两个都有开机、打印、关机的功能,而Canon关机之前有清除功能,问题来了,那么如何实现?
也许我们第一反应是写一个HP类和Canon类,,各自实现自己的功能,然后再写一个实现类调用就好。
然而问题就来了,如果有一百种打印机,那每个类都要写大量重复的代码,那是一种多么费时的解决方式。
所以在面向对象的思想中,我们需要这样解决问题:
新建一个Printer类,写上所有相同的功能:
public class Printer { public void open() { System.out.println("--open"); } public void print() { System.out.println("--print"); } public void close() { System.out.println("--close"); } }
然后HP类直接继承就好,而Canon中close前有clean,所以我们可以在Canon中继承Printer后直接复写就好:
public class Canon extends Printer { @Override public void close() { this.clean(); super.close(); } public void clean(){ System.out.println("--clean"); } }
最后直接在实现类中调用各个子类的open、print、close方法就好。
很简单的一个小程序,但传递的时JAVA开发编程中重要的面向对象的思想,有效的降低冗余度,减少重复代码。
相关文章推荐
- java foreach循环为什么不能赋值
- MAC下Android的Eclipse开发环境的搭建
- eclipse导入ant工程
- Eclipse自动生成返回值对象的快捷键是什么?
- Java线程基础一
- java类静态域、块,非静态域、块,构造函数的初始化顺序
- Java设计模式——单例模式
- java程序练习
- Java内存管理:深入Java内存区域
- 理解Java中的弱引用
- SpringMVC入门示例(二)
- JAVA的agent使用总结(用ASM进行操作)
- SpringMVC的两个简单入门的例子(-)
- springmvc学习笔记(2)-非注解的处理器映射器和适配器
- 通过JVM 参数 实现spring 应用的二进制代码与配置分离。
- Java的三种输入输出流FileOutputStream、FileInputStream; FileWrite、FileReader;OutputStreamWrit、InputStreamRead
- Java类加载器(二)——自定义类加载器
- Java类加载器(二)——自定义类加载器
- 在eclipse中使用git和github
- Spring各个jar包作用