一、封装:就是将属性私有化,提供公有方法来访问私有的属性。
封装的一般步骤:1:修改属性的可见性来限制对属性的访问
2:添加set\get方法
3:加入对属性的存取限制
二、1.继承:使得一个类A能够直接使用另外一个类B的属性和方法的一种途径
类A可以有自己的属性和方法
2.重写:必须具有相同的方法名
必须具有相同的参数列表
返回值类型必须相同或者是其子类型
不能缩小被重写方法的访问权限
3.super代表当前对象的直接父类对象的默认引用
super必须是出现在子类中(子类的方法和构造方法中),而不是其他位置
用以访问父类的成员,例如父类的属性、方法、构造方法
访问权限的限制,例如无法通过super访问private成员
4.继承条件下构造方法的调用规则:
规则一:如果子类的构造方法中没有通过super显式调用父类的有参构造方法,也没有通过this显式调用自身的其他构造方法,则系统会默认先调用父类的无参构造方法
规则二:如果子类的构造方法中通过super显式调用父类的有参构造方法,那将执行父类相应构造方法,而不执行父类无参构造方法
规则三:如果子类的构造方法中通过this显式调用自身的其他构造方法,在相应构造方法中应用以上两条规则
三、多态:同一个引用类型,使用不同的实例而执行不同的操作
多态指的是子类对象可以直接赋给父类变量,但运行时依然表现出子类的行为特征,这意味着同一个类型的对象在运行时可能表现出不同的行为特征。
多态的使用:1:使用父类作为方法的形参
2:使用父类作为方法的返回值类型
四、抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了角全部问题,而只是考虑部分问题。
抽象类与接口的作用:
抽象类便于复用;接口便于代码维护
面向对象设计原则:
1.多用组合,少用继承
2.针对接口编程
3.针对扩展开放,针对改变关闭
五、异常
throws 和throw区别:
1、作用不同:
throw 用于程序员自行产生并抛出异常
throws用于声明该方法内抛出了异常
2、使用的位置不同
throw 位于方法体内部,可以作为单独语句使用
throws 必须跟在方法参数列表的后面,不能单独使用
3、内容不同
throw抛出一个异常对象,且只能是一个
throws 后面跟异常类,且可以跟多个异常类
六、对象序列化
将对象的状态存储到特定存储介质中的过程
七、反射机制
获取Class对象的方式
1、调用某个对象的getClass()方法
Person p = new Person();
Class cla = p.getClass();
2、调用某个类的class属性来获取该类对应的Class对象
Class cla = Person.class
3、使用Class类的forName()静态方法
Class cla = Class.forName("com.pb.jdav.reflection.Person");//类的全路径