面向对象的三大特征
封装 (Encapsulation)
继承 (Inheritance)
多态 (Polymorphism)
封装:包的封装,类的封装,方法的封装;安全,可重用性。
1.将类的成员私有化,设置为private
2.给私有化属性设置get和set方法
访问权限修饰符:
1.private
2.protected
3.default
4.public
抽象:
1.Java中所有类的父类 object
2.构造方法,一个类中方法名与类名相同的方法,一个类中可以有多个不同的构造方法,作用:对类的属性进行初始化操作。
每个类中都有一个默认的无参构造方法,如果定义了带参构造方法而没有定义无参构造方法,那无参方法将不能使用。
3.方法重载:一个类中,方法名相同,参数个数,类型,顺序不同的方法,与返回值类型无关
4.equals方法和==
==比较基本数据类型时,比较的是基本数据类型的数值是否相等。
==比较引用数据时,比较的是对象的内存地址是否一致
equals只能用来比较引用数据类型,比较的是对象的内存地址是否一致,我们是可以重写equals的比较逻辑。比如string类的equals方法
5.static
可以修饰:属性,方法,静态代码块
属性:静态属性或者类属性,该属性属于类,该类的所有对象共享该属性。
静态属性和静态代码块会被优先分配内存空间。
静态方法中只能使用静态变量,以及只能调用静态方法
6.final
可以修饰:变量,对象,方法,类
变量:变量变为常量,内容不可修改
对象:对象的引用不可修改
方法:该方法不能被重写
类:不可被继承
继承:
作用:实现代码重用
子类扩展父类属性和功能。
方法重写:
1.子类继承父类
2.子类中修改父类中方法实现
3.方法名,返回值类型,方法的参数个数,类型,顺序一致
抽象类:是对父类更高层次的抽象,抽象类的抽象方法只做方法声明,不做方法实现,反正抽象方法最后都要被子类重写,所以没
必要定义方法实现。
public abstract class_类名{
可以有属性
可以普通方法
可以有抽象方法,抽象方法没有方法体
还可以有构造方法,但是抽象类不能创建对象
}
多态:
不同类的对象,对同一消息做出不同响应。
实现条件:
1.有继承
2.有重写
3.子类对象赋值给父类引用
Animal animal = new Dog();
向上转型:
Animal animal = new Dog();
会丢失子类特有的行为;
向下转型:
Dog dog = (Dog)animal;
类型转换异常
instanceof:对象是不是类的实例
animal instanceof Dog
异常处理:
异常的分类:
1.error
虚拟机层面产生的错误,无法通过修改代码来解决,需要改虚拟机配置堆栈溢出,内存溢出
2.异常
1.检查性异常
2.非检查性异常(运行时异常)
arithmeticexception
arrayboundsindexoutofexception
nullpointerexception
classcastexception
numberformatexception
3.异常处理方式:
1.捕获异常
2.抛出异常 throw,throws(用于声明要抛出哪些异常)