1.概念:把数据及对数据的操作方法放在一起,作为一个相互依存的整体,通过不同的对象完成不同的功能
    2.面向对象的三大特征:
    2.1封装:
    2.1.1我们可以把一类事物的特征抽取出来形成类(模板,图纸) 提高程序的安全性
    2.1.2可以封装属性(需要调用get/set方法才能使用) ,封装使用的关键字是private,私有化资源仅在本类中可见
    2.2继承:
    2.2.1前提为了提高代码的复用率
    2.2.2Java是单继承的,一个子类只能有一个父类
    2.2.3父类对象与子类对象进行绑定(子类将父类功能复制了一份,被private修饰的可以继承,但是不可见),整体作为一个对象
    2.2.4子类通过extends关键字与父类建立关系,但是不能使用父类的私有成员和私有方法
    2.2.5子类不能继承父类的构造方法,因为构造方法方法名必须与类名相同
    2.2.5创建子类对象时,会先调用父类的构造方法,再调用自己的构造方法
    子类创建对象:父类静态代码块—>父类的构造代码块—>父类构造方法—>子类静态代码块—>子类的构造代码块—>子类构造方法
    2.3多态:作用为了写出通用的代码,把子类类型统一看成是父类类型(父类引用指向子类对象)
    为向上转型,使用此对象可以调用父类中的方法,当父类中的方法被子类重写,则会调用子类重写后的方法(向下转型:将多态对象强制转换成子类类型,则此对象成为了子类对象,能使用子类中的属性和方法)
    3.类和对象的关系:类是一类事物的抽象(模板/设计图)
    4.构造方法:构造方法是创建对象的方法,构造方法的名字与类名一致,而且没有返回值类型
    5.构造代码块:构造代码块{ }的位置时在类里方法外,优先于构造方法执行,用于提取方法中的共性内容 局部代码块{ }位置在方法里,调用这个局部代码块所在的方法时,才会被触发,用于限制变量的作用范围
    静态代码块static{ },位置,类里方法外,类加载时加载,只加载一次,优先于对象进行加载,用于初始化
    执行时机:静态代码块—>构造代码块—>构造方法—>对象创建成功—>局部代码块