理解类和对象的概念。
1、java中的类
修饰符 可以为 public final abstract 或者不写
- 构造器
构造器与类名相同,没有返回值,连void都不能写 - 成员变量
定义在类中,方法体之外的变量。在创建对象的时候被实例化。
修饰符 (public protected private)三选一、 static、final - 方法
修饰符 (public protected private)三选一、 static、final、synchronize、native - 初始化代码块(参照第11点)
2、java中的对象 - 对象是根据类创建的,new关键字,包含三步:声明、实例化、初始化(如果构造函数有参数)
3、构造器的重载
4、成员变量和局部变量
5、方法的重载
6、java的封装
7、java的继承
继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
java不支持多继承,但支持多重继承
8、方法的重写
重写的规则
9、super和this关键字
super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对
象的父类。
this关键字:指向自己的引用。
10、重写和重载的区别
方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载(Overloading)。
方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,就称为重写(Overriding)。
方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。
重载是编译时多态,重写是运行时多态
11、初始化块
不用static修饰的是初始化块;用static修饰的是静态初始化块。
单个类中的执行顺序:静态初始化块→初始化块→构造函数
多个类中的执行顺序(继承):(子类继承自B,B继承自A)在继承中,先后执行父类A的静态块,父类B的静态块,最后子类的静态块,然后再执行父类A的非静态块和构造器,然后是B类的非静态块和构造器,最后执行子类的非静态块和构造器。
12、单例模式
五种方式:饿汉式、懒汉式、Double CheckLock实现、静态内部类模式、枚举类
如何选择
单例对象占用资源少,不需要延时加载时:枚举 好于 饿汉
单例对象占用资源多,需要延时加载时:静态内部类 好于 懒汉式
13、final修饰符
用来变量、方法、类,表示不可被修过或不能被继承。
14、java抽象类
15、java接口 接口中的变量必须是public static final修饰
16、抽象类和接口的对比
17、修饰符总结
注意:在不写访问控制符的情况下,就是friendly(默认)修饰符