面向过程:
只考虑事物的发展顺序
面向对象:
先考虑事物中存在的那些对象,然后再建立对象与对象之间的关系
java代码中存在的事物也称为对象
类与对象的关键:
1.一个类可以创建多个对象
2.多个对象可以属于一个类
封装
属性私有化,对外提供公共的访问方法
封装的体现:变量 数组 方法 类
继承
作用:子类拥有父类的所有属性和方法,构造函数除外
注意:
java中只可以单继承
所有的类都是Object的子类
一个类没有明确的继承关系,默认继承Object
多态
作用:一个事物的多种形态
子类对象转为父类对象后,不能使用子类特有的方法和属性
可以将父类对象强转为子类对象(可能出现类型转换异常)
解决方法:instanceof
作用判断该对象是否属于该类
对象和类之间要存在关系
重载和重写的区别
方法重写:
通过字面意思来看,在子类中把父类的方法重写一遍,子类继承了父类的所有方法,对父类的方法进行
修改或重写,但是子类函数的访问权限不能小于父类的;
方法重载:
在一个类中,同名的方法如果有不同的参数列表(参数类型,个数或者顺序)叫做重载
对返回值类型没有要求,可以相同也可以不同.
三大修饰符
final
abstract
抽象:可以修饰类 不能直接创建对象
子类继承于抽象类,要么重写父类的所有方法,要么自己也是抽象类
抽象类中不一定有抽象方法但是有抽象方法的类一定是抽象类
static
静态的 公共的
1.可以使用类名调用 也可以使用对象名
2.不能使用非静态成员
不能使用this和super关键字
static作为代码块时 类一加载就会执行
final finally finalize区别
final
含义:最终的
可以修饰类 不能被继承
修饰属性 不能被修改
修饰方法 不能被重写
修饰局部变量 不能被修改 只能赋值一次
finally
finally是try ..catch..语句中使用的关键字 不管是否发生异常 finally中的代码块都会执行一次
finalize
finalize()是在垃圾回收器将对象从内存中清除之前去调用的方法