面向对象三大特性:
封装:安全性
继承:复用性(原有功能得以保存,新功能得以扩展)
多态:扩展性
1、类与对象的区别:
类是对象的抽象,对象是类的实例
2、成员变量 与 局部变量区别:
(1) 定义在类中; 定义在方法中
(2)作用在类中 ; 作用于整个方法
(3)系统自动初始化 ; 使用前必须初始化
(4)随对象一同加载到堆中,对象无引用时销毁; 在方法调用时,在栈中产生一块栈帧,方法执行完后消失
3、封装实现:
(1)属性私有化
(2)提供公共的get和set方法
(3)根据实际情况给属性设置限制条件
4、构造函数(又叫构造器)
(1) 与类名相同,并且没有返回值,没有void
(2). 用于对象的创建和初始化
(3). 可以重载
(4)在开发时,应根据实际需求定义构造方法
5、this(自身对象的引用)
(1),可以调用自身对象的属性,方法,构造
(2),当局部变量和成员变量同名时,this指代成员变量
6、**static **
(1) 被static修饰的类,可以被继承,但不能被重写
(2). 静态方法只能调用静态方法和静态属性,非静态方法既可以调用非静态的,也可以调用静态的
7、**final **
(1) 通常与static 连用修饰常量
(2). 修饰类时,不能被继承
(3)修饰方法时,只能被继承,不能被重写
8、静态变量与成员变量
(1)静态变量属于类级别,随类一同加载到方法区的静态区;成员变量属于对象级别,随对象一同加载到堆内存中
(2) 静态变量既可以通过对象调用,也可以直接用类调用;成员变量只能用对象调用
(3) 静态变量也称类变量;成员变量也称实例变量
( 4)静态变量随类的加载和消失;成员变量随对象的创建和消失
9、重写与重载的区别:(方法名必须相同)
(1)重写发生在父子类的前提下;重载发生在一个类中
(2)重写参数列表必须相同;重载的参数列表必须不同(个数、类型、顺序)
(3)重写的返回值必须是其本身或是其子类;重载与返回值无关
(4)重写的修饰符不能比父类严格;重载与修饰符无关
10、抽象类与抽象方法(都由abstract修饰)
(1)抽象类中可以有抽象方法,也可以没有
(2)有抽象方法的类一定是抽象类
(3)抽象类必须有子类继承,重写父类抽象方法才有实际意义
(4)抽象类不能被实例化
11、接口(interface关键字)
(1) 接口不能被实例化
(2) 接口只能定义常量和抽象方法
(3) 没有构造方法和初始化块
12. new对象初始化过程:
父类属性 – > 父类构造 --> 子类属性 --> 子类构造
13. 无继承有代码块的new对象执行顺序
static静态块 --> main方法 - -> 构造代码块 – > 构造方法
14. 有继承有代码块的new对象执行顺序
父类static静态块 --> 子类static静态代码块 --> 父类构造代码块 – > 父类构造方法 --> 子类构造代码块 – > 子类构造方法