1、java面向对象
什么是面向过程和面向对象
面向过程:注重每一个步骤以及顺序
面向对象:注重有哪些参与者(对象)
举例
洗衣机洗衣服,面向过程会将一系列步骤才分成一系列的步骤(函数),1打开洗衣机—>2放入衣服---->3放洗衣液---->4清洗---->5烘干。
面向对象会分析有哪些参与者,就上面而言会拆出人和洗衣机两个对象,人:打开洗衣机、放入衣服、放洗衣液,洗衣机:清洗、烘干
面向对象的好处
面向对象的好处:比较直接与高效,代码易于复用和扩展。
2、java的封装、继承、多态
封装:封装的意义,在与明确表示出允许外部使用的所有成员函数和数据项,内部细节对外部调用透明,外部调用无需修改或者关心内部实现。
1、javabean的属性私有,提供getset访问,因为属性的赋值或者获取逻辑只能由javabean本身决定。而不能外部随意修改。
2、orm框架
操作数据库,我们不需要关系链接是如何建立的,sql是如何执行的,只需要引入mybatis,调用方法
继承:继承基类的方法,并做出自己的改变和扩展,子类共性的方法和属性直接调用父类的,而不需要自己定于,只需要扩展自己个性的。(继承的方法允许在不改动原程序的基础上对其进行扩充,这样使得原功能得以保存,而新功能也得以扩展。这有利于减少重复编码,提高软件的开发效率。)
多态:基于对象所属类的不同,外部对同一个方法的调用,实际执行的逻辑不同。
比如继承,方法重写,父类引用指向子类对象
父类类型 变量名 = new 子类对象
变量名.方法名();//此时调用的是子类的方法,而不是父类的方法
//向上转型,只能调用子类重写的父类方法
多态分为运行时的多态和编译时的多态,运行时的多态主要是方法的重载,二编译时的多态是指重写,(三个前提条件:继承、重写、向上转型)
既然谈到了重写与重载,那就聊聊重写与重载。。。
3、重写与重载区别
重载:
- 重载发生在一个类中
- 方法的名称相同
- 参数的数量、类型不同
- 访问的修饰符和返回值都可以不同(返回值无关)
- 与返回值无关
重写:方法名、方法参数列表、返回值类型,以及子类重写的作用访问范围要大于等于父类。
4、面向对象七大原则
- 开闭原则:对扩展开放,对修改关闭。
- 里氏替换原则:继承必须确保超类所拥有的性质在子类中仍然成立。
- 依赖倒置原则:要面向接口编程,不要面向实现编程。
- 单一职责原则:控制类的粒度大小、将对象解耦、提高其内聚性。
- 接口隔离原则:要为各个类建立它们需要的专用接口。
- 迪米特法则:只与你的直接朋友交谈,不跟“陌生人”说话。
- 合成复用原则:尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。