面向对象
类
类是一种抽象的数据类型,它是对某一类事物的整体描述和定义,但是并不能代表某一个具体事物
对象
对象是抽象概念的具体实例
使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用
构造器
一个类即使什么都不写,它也会存在一个方法(无参构造方法)
使用new关键字,本质是在调用构造器
有参构造:一旦定义了有参构造,无参就必须显示定义
构造器会初始化对象的值
构造器的特点:
1、和类名相同
2、没有返回值
封装(数据的隐藏)
定义:通常应禁止直接访问一个对象中数据的实际表示,而应该通过操作接口来访问,这称为信息隐藏
作用:
1、提高程序的安全性
2、隐藏代码的实现细节
3、统一接口
4、增加了系统的可维护性
idea中快速添加get/set方法快捷键:alt+insert
继承
定义:继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模
Java中只有单继承,没有多继承
Java中所有的类,都默认直接或者间接继承object类
idea中查看继承结构的快捷键:ctrl+h
super关键字
1、super调用父类的构造方法,必须在构造方法的第一个
2、super必须只能出现在子类的方法或者子类的构造方法中
3、super和this 不能同时调用构造方法
this关键字和super关键字的比较
1、代表对象不同
this: 本身调用者这个对象
super:代表父类对象的应用
2、使用前提不同
this:没有继承也可以使用
super:只能在继承的条件下才可以使用
3、构造方法的不同
this(),本类的构造
super(),父类的构造
重写
定义:子类的方法和父类必须一致,但方法体不同
为什么需要重写:父类的功能,子类不一定需要,或者不一定满足
重写的注意事项:
1、重写一定需要有继承关系,子类重写父类的方法
2、方法名必须相同
3、方法参数列表必须相同
4、修饰符:范围可以扩大但不能缩小
5、抛出的异常:范围可以被缩小,但不能扩大
重写快捷键 alt + insert : override
staic 和final和private修饰的方法不能重写
多态
定义:即同一方法可以根据发送对象的不同而采用多种不同的行为方式
一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多
多态存在的条件:
1、有继承关系
2、 子类重写父类的方法
3、父类引用指向子类对象
多态是方法的多态,属性没有多态性
抽象类abstract
实质是约束
注意事项:
1、不能new这个抽象类,只能靠子类去实现它
2、抽象类中可以写抽象方法也可以写普通方法
3、抽象方法必须在抽象类中
extends只能实现单继承
接口interface
接口本质是契约
普通类VS抽象类VS接口
普通类:只有具体实现
抽象类:具体实现和规范(抽象方法)都有
接口:只有规范(抽象方法) 约束和实现分离
接口可以实现多继承
作用:
1、约束、
2、定义一些方法,让不同人实现
3、接口中的方法默认是 public abstract
4、接口中的变量默认是 public static final
5、接口不能被实例化,接口中没有构造方法
6、implements可以实现多个接口
7、必须要重写接口中的方法
异常(Exception)VS 错误(Error)
Error通常是灾难性的致命的错误,是程序无法控制和处理的,当出现这些异常时,Java虚拟机(JVM)一般会选择终止线程;Exception通常情况下是可以被程序处理的,并且在程序中应该尽可能的去处理这些异常。
异常分为运行时异常RuntimeException和检查型异常
运行时异常包括以下几种:
1、ArrayIndexOutOfBoundsException(数组下标越界)
2、NullPointerException(空指针异常)
3、ArithmeticException(算术异常)
4、MissingResourceException(资源丢失)
5、ClassNotFoundException(找不到类)
快速处理异常快捷键 ctrl+alt+T