1.封装
(定义私有的属性,用公共的方法访问 意义:隐藏细节,对外提供接口)
狭义:将属性私有化向外提供公共的访问的方法
广义:将公共的代码提取,重复使用
什么时候使用封装?
①编写实例类时
②重复调用代码时
优点:调用者不能随意修改属性的内容
2.继承(extends)
继承提高了代码的重复率
1.继承的条件:
①.继承时要满足is-a的关系(子类继承父类)
②.不能为了部分继承关系来使用继承
(只能单继承 不能多继承 一个子类只能有一个父类,父类可以有多个子类)
优点:提高代码的可重用性,起到扩展功能的作用!
2.方法重载条件overload:
①.同一类中方法名相同
②.参数列表不同
③.(返回值 修饰符不同)/与返回值无关
3.方法重写override:
①目的:父类中的方法无法满足子类需求
②扩展父类的方法:super关键字 使用super 进行父类方法调用
子类想要调用父类中的构造方法时可以使用super关键字(Super方法要写在第一行)
当调用子类的构造方法时先调用的父类的构造方法(先父后子)
③this关键字就代表当前这个对象
条件:
①不能私有化
②在子类存在方法与父类的方法名字相同,而且参数个数与类型一样,返回值也一样
③访问修饰符子类重写的方法不能小于父类的方法
4.构造方法:
①无返回值
②无void
③方法名和类名保持完全一致
(调用new就是调用无参的构造方法)
3.多态
⭐① 多态的基础是继承 继承的基础是封装
②多态的好处:可以使用父类 表示所有的子类对象 也就是一个类 具有多种形态
③存在条件:继承 方法重写 父类引用指向子类对象
1.向上转型(将子类对象赋给父类引用):
优点:直接转换;
缺点:不能直接调用子类中独有的方法
(注:子类声明成父类对象 编译时认为是父类对象 在程序运行时还是子类对象
使用多态表现的时候调用方法只可以使用子类和父类中都有的方法,不可以使用子类中单独声明的方法)
2.向下转型(强制转换)(父类转子类):
优点:可以使用子类中独有的方法
缺点:类型转换异常ClassCastException
4.访问修饰符
①private表示私有,只有自己类能访问
② default(friendly)表示没有修饰符修饰,只有同一个包的类能访问
③protected表示可以被同一个包的类以及其他包中的子类访问
④public表示可以被该项目的所有包中的所有类访问
优先级:public>protected>default>private
5.抽象类
①abstract修饰的类
②用abtract修饰的方法就是抽象方法
(写一些公共的方法)
A.abstract加到方法前表示抽象的方法,加到类之前表示的是抽象类
B.抽象的方法是没有方法体的,只做方法的声明,等待子类必须重写该方法
C.抽象的方法不可以写到普通类中,必须写到抽象类中
D.抽象的类中可以定义普通方法,普通方法不用重写
E.抽象类是不可以被实例化,但是仍然可以书写构造方法,这样目的就是为了继承的特性
F.一个类继承了抽象类要么实现父类中所有的抽象方法,要么这个类也是抽象类
1.抽象类里面可以有具体的的方法
2.抽象类有构造方法,但是不可以new
3.子类继承了一个抽象类 必须重写抽象方法 如果不重写子类变成抽象类
4.抽象类里可以没有抽象方法
好处:让所有子类必须实现父类的抽象方法
6.接口
特点:
①.可以多实现,继承多个接口
②.接口中没有构造方法
③.接口中的变量默认是使用public static fainal(静态常量)进行修饰的
1.接口条件:实现了接口 就必须实现接口中的方法,接口是一种规范
2.目的:开闭原则(可添加类 但是不能修改原有的代码)
7.异常
⭐捕获异常的时候必须按照从小到大的顺序捕获
try{}
catch(){}
finally{}
catch代码块可以省略 Finally 可以省略 但是这两个不能同时省略
1.Throw和Throws的区别
Throw写在方法体里,后面只能跟一个异常的对象
Throws写在方法名的后面,后面可以跟异常的类名,并且可以跟很多的异常类
2.Error:致命异常
⭐Throwable是所有异常的父类
3.代码中会出现的异常:
Exception:运行时异常
NullPointerException 空指针异常
ArithmeticException 算数异常
ArrayIndexOutOfBoundsException 数组下标越界异常
InputMismatchException输入异常
ClassCastException 类转换异常
DateFormateException 日期转换异常
ClassNotFoundException 类找不到异常
非运行时异常(编译异常)
4.异常类的种类
5.日志的级别:
DEBUG - debug 调试级别的日志
INFO - info正常级别的日志
WARN - warn警告级别的日志
ERROR - error错误级别的日志
FATAL - fatal致命级别的日志
⭐程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少