1.抽象:关注业务内容,忽略无关内容
2.类:对象的模板。用户自定义的抽象数据类型
class 类名称{类体;}
3.对象:变量,创建对象后则可以通过对象调用类中所定义的的方法
类名称 obj=new 类名称();
obj.方法名称(参数);
4.面向对象的三大特性:封装,继承,多态
(4.1)封装:隐藏具体实现细节,对外提供调用接口
private 当前类内可见
默认 同包可见
protected 同包或者子类可见
public 到处可见
(4.2)继承: 代码重用,批判继承
class儿子 extends 父类{}
private
(4.3)多态: 调用同名方法。但是具体的操作逻辑不同
类内多态:方法的重载,方法名称相同,参数不同
参宿个数,参数类型,
类间多态:方法的重写/覆盖
方法签名一致
对象多态:使用父类定义变量,创建子类对象
父类 obj=new 子类();
编译期类型和运行时类型
5.final 最终的,一但赋值,不允许修改
final class 类{}//不允许被继承
final 返回类型 方法名称(参数列表){} 不允许重写覆盖
final 数据类型 属性名称; 一但赋值,不允许修改
final 数据类型 局部变量名称;一但赋值,不允许修改
6.static 类/静态的
static方法可以通过【类名.方法名】的形式直接调用方法,一人允许通过对象名的方式进行调用
在静态方法体中不允许使用this/super关键字
静态方法只能直接访问静态成员
static 属性 当前类的所有对象共享同一个属性
static{} 在类加载完成后自己自动执行,没有办法再次调用
import static java.lang.Math.*; 静态导入,可以在当前类种直接使用Math类种的静态方法,而不需要通过[Math.abs]子类的形式进行调用
常量定义 final static 类型 常量名称=初始值 允许在静态代码块种延迟赋值
7.构造器:不是类成员,主要用于实施对象的初始化操作
要求方法名称和类名称一致,不允许有返回值类型,即使void也不允许。否则就是普通成员方法
通过new运算符进行间接调用,没有办法直接调用
构造器方法允许重载
类种的成员属性有默认值
简单类型种的数值型默认0,字符型默认' ',布尔类型默认false;引用类型默认null
匿名代码块 {}
在构造器执行之前执行
8.super 指代父类对象
super()/super(参数) 调用父类构造器,构建对象过程种有一个上溯流程
super.属性 访问父类种的属性。如果当前类种并没有覆盖定义父类种的属性,则可以直接使用,没必要通过super的方式进行访问
super.方法 访问父类种已经被重写覆盖定义的方法
9.this 指代当前类对象
this()/this(参数) 调用当前类的其它构造器
this.属性
this.方法
10.抽象类: 语义不精确
abstract class 不允许直接创建new对象,只能进行继承使用
抽象方法 方法不允许有方法体,即使是空方法体



