1.面向对象与面向过程的区别
面向对象更利于复用,面向过程更有利于性能。
2.面向对象的三个特点 封装 继承 多态
- 封装 (提高了代码的复用率)
- 明确标识出允许外部使用的变量等
- javabean
private String name; public void setName(String name) { this.name = "oa_"+name; }这里对name赋值就是封装,这里的name变量只能通过使用set方法赋值,如果直接对name方法赋值则无法获得set方法总的执行过程,所以想要实现的效果就是提供一个方法给外部使用,外部只需要使用即可,不需要知道里面的执行过程,这就是封装的意义
- ORM框架
你不用在意程序是如何调用数据库的,这些细节被封装到了ORM框架中,你只需要使用就可以了,不用去在乎是如何实现的
- 明确标识出允许外部使用的变量等
- 继承 (提高了代码的复用率)
- 将具有相同作用的方法抽出来,放到基类中,这样做的好处是只需要在子类中去做自定义的方法,通用的方法放入父类
- java代码
class Aa{ String setHead(String body){ return "head"+body; } } class Bb extends Aa{ String setBody(String body){ return body+body; } } public class Test { public static void main(String[] args) { Bb b = new Bb() ; System.out.println(b.setBody("123")); System.out.println(b.setHead("123")); } }
- java代码
- 将具有相同作用的方法抽出来,放到基类中,这样做的好处是只需要在子类中去做自定义的方法,通用的方法放入父类
- 多态 (提高了代码的可移植性)
- 多态存在的三个必要条件(继承、重写、父类引用指向子类对象;)
- java代码
abstract class Aa{ public abstract String setHead(String body); } class Bb extends Aa{ @Override public String setHead(String body) { return body+body; } } public class Test { public static void main(String[] args) { Aa a = new Bb() ; System.out.println(a.setHead("123")); } } - 多态的说明
多态的出现,可以更加灵活的实现代码的可移植性,如果业务发生改变只需要修改实现类,也不需要修改业务的逻辑代码。
其实我们经常使用多态的只是不太注意
比如List list = new ArrayList();
- java代码
- 多态存在的三个必要条件(继承、重写、父类引用指向子类对象;)