1)面向对象和面向过程是处理问题的不同角度,面向过程注重事情的执行过程和顺序,而面向对象是注重事情的参与者以及参与者所负责功能
2)面向过程开发,简洁高效,面向对象开发,方便复用和后期维护
3)面向对象的三大特点
封装:封装的意义在于明确标识出允许外部访问的所有成员函数和数据项
内部细节对外部调用透明,外部调用无需修改和关心内部实现
1.javabean:javabean属性私用,提供getset对外访问
2.orm框架:操作数据库时,我们不需要知道如何建立连接,sql如何执行,只需要引入mybatis,调用方法即可
继承:继承父类的方法,子类作出自己的改变和拓展
子类自己使用的方法和属性直接继承父类的,而不需要自己再定义,只需要拓展自己的
多态:基于对象所属类的不同,外部对同一个方法的调用,实际的执行逻辑不同
多态存在的必要条件:继承,重写,父类指向子类对象
2.==和equals比较==对比的是栈中的值,基本数据类型,即比较的是值,引用类型比较的堆中的地址
equals:object中默认是==,但是通常会被重写
比如string类 比较是字符串的内容
3.final修饰类:表示类不可被继承
修饰方法:表示方法不能被重写,但是可以被重载
修饰变量:若是基本数据类型,一但被赋值,就不能被修改
若是引用类型,初始化之后就不能指向其他对象,但是引用的值是可以改变的
4.string,stringbuider,stringbufferString是final修饰的,不可变,每次操作都会产生新的String对象
stringbuilder和stringbuffer都是在原对象的基础上进行操作的
stringbuffer是线程安全的,方法都是synchronized修饰的
stringbuilder是线程不安全的,
性能上,
stringbuilder>stringbuffer>string
5.重载和重写的区别重载:是发生在同一个类中,方法名必须相同,参数类型不同,参数个数不同,顺序不同,方法返回值和访问修饰符可以不同,发生在编译时,
重写:发生在父子类中,方法名必须相同,参数类型相同,返回值范围小于父类,抛出异常范围小于父类,访问修饰符大于父类,如果父类方法使用private修饰,子类不能对该方法进行重写