一.封装
1.定义
1.禁止直接访问一个对象中数据的实际表示 通过接口来访问 (信息隐藏)
2.属性私有 get/set
2.代码解释
1.属性私有 private
2.提供一些public 的get set方法
3.封装的意义
1.提高程序的安全性,保护数据
2.隐藏代码的具体细节
3,提高统一的接口
4提高程序的可维护性
二.继承
1.子类is a父类
2.子类拥有父类全部方法
3.代表对象不同this 本身调用者这个对象 super 代表父类对象的引用
前提:this在没有继承时也能用 super只能在继承时候用
4.注意点: super()调用父类构造器,必须放在子类构造器的第一行
super只能出现在子类的方法或者构造方法中
super和this不能同时调用构造方法
子类构造方法会默认调用父类构造方法 子类方法中第一行默认存在super();
5.构造方法 this() 本类的构造
super() 父类的构造
三.方法的重写
1.有继承关系,才出现重写
子类重写父类的方法
2.参数列表必须相同
3.修饰符 范围可以扩大 public>protected>Default>private
4.抛出的异常:可以缩小 不能扩大
5.子类的方法名和父类名字相同,方法内容可以不同
为什么重写? 父类的功能,子类不一定需要,或者不一定满足
四.多态
1.定义:同一方法可以根据对象的不同采取不同的行为方式
即父类和子类分别new两个对象 父类和子类的方法名相同 但父类子类的对象分别调用方法时候的结果不同
2.条件:
1.多态是方法的多态,属性没有多态
2.父类和子类,有联系
3.存在条件:继承关系,方法重写, 父类引用指向子类对象 Father f1= new Student;
4.方法重写过以后 引用也是执行子类方法
不能重写的方法:1. static 2.final 3.private
五.修饰符
1.public 所有类可见
2.protected 同一包内的类和所有子类可见 不能修饰类
3.default 默认 什么也不写 在同一包内可见 修饰类 接口 变量 方法
4.private 同一类内可见
六垃圾回收机制
在java中,程序员是不需要显示的去释放一个对象的内存的,而是由虚拟机自行执行。在JVM中,有一个垃圾回收线程,它是低优先级的,在正常情况下是不会执行的,只有在虚拟机空闲或者当前堆内存不足时,才会触发执行,扫描那些没有被任何引用的对象,并将它们添加到要回收的集合中,进行回收。JVM垃圾回收算法 标记清楚和标记整理
当一个对象创建后,gc就开始监控对象的地址,大小,使用情况,利用有向图判断哪些是可达的,那些不可达,不可达的内存空间会被收回
七.面向对象基本特征
封装、继承、多态
八.区分方法重写和重载
1.重写用于父子类 返回类型相同 参数相同
2.重载是同一个类 参数不同 返回值不同
九.java扩展类![](https://img-blog.csdnimg.cn/b5cd090455224e37a1d132fcc8827a6d.png)
十.死锁
在许多应用中进程需要以独占的方式访问资源,当操作系统允许多个进程并发执行时可能会出现进程永远被阻塞现象,如两个进程分别等待对方所占的资源,于是两者都不能执行而处于永远等待状态,此现象称为死锁
解决方法 程序运行前防止发生死锁