面向对象
面向对象、面向过程
面向过程:解决一个问题,将问题一步步拆解开,每一步通过一个函数来实现,依次调用。
面向对象:解决一个问题,将问题一步步拆解开,每一步进行相应的抽象,得到对应的对象,通过对象进行组合调用。
值传递、引用传递
值传递:在调用函数时将实际参数复制一份,传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
引用传递:在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。
Java中的参数传递只有值传递。
封装、继承、多态
继承:子类对父类的继承。组合关系与继承关系:组合是通过现有的类进行拼装组合成新的更复杂的功能。即has-a关系与is-a关系。
多态:同一个方法名在不同类中可以有不同的功能。比如:父类Animal中有一个call方法,子类有两个:Cat类与Dog类。Cat类的call方法是“喵喵喵”,Dog类的call方法是“汪汪汪”。
重载、重写
重载是一个编译器概念、即在编译时期根据参数变量的类型判断应用调用哪个方法
重写是一个运行期概念、即在运行时期根据引用对象所指向的实际对象的类型来调用方法。
重载不是多态,重写是多态。
重写的条件:方法名、参数列表与被重写函数一模一样,访问级别、抛出异常一定不能比被重写方法强,不能重写标示为final的方法。
重载的条件:方法必须修改参数列表,可以修改方法返回类型,可以修改访问修饰符,可以定义更广的检查异常,可在同一个类或者子类中进行重载。
构造函数与默认构造函数
默认构造函数:无参数。
类变量、成员变量、局部变量 分别在JVM中的方法区、堆内存、栈内存
static打头的是类变量。
方法作用域:public\protected\private\default