一、设计模式
设计模式:就是对某一问题行之有效的解决方式
单例设计模式:就是一个类在内存中只创建一个对象实例。
单例模式的特点:
A、某个类只能有一个实例;
B、它必须自行创建这个实例;
C、它必须自行向整个系统提供这个实例。
使用单例模式的原因是当实例存在多个会引起程序逻辑错误。
注意以下两种方法的区别:
二、内部类
1、非静态内部类
将一个类定义在另一个类的内部,这个类就叫做内部类也叫嵌套类;
定义内部类的主要作用:
A、内部类提供了更好的封装;
B、内部类可以直接访问外部类的私有数据。
C、匿名内部类适合用于创建那些仅需要一次使用的类
内部类的特点:
A、内部类可以直接访问外部类中的成员,包括私有成员;
B、外部类要访问内部类的成员必须要建立内部类对象。
含有内部类的Java源程序编译后,会产生两个class文件,一个是外部类的的class,另一个是以OutClass$InnerClass.class形式命名的内部类class文件。
如果存在一个非静态的内部类对象,则一定存在一个被它寄存的外部类对象,反之则不然。
当内部类存在于局部的话,不能直接访问局部变量。
Java不允许在非静态内部类中定义静态成员(包括静态方法、静态属性、静态初始化块)。
2、静态内部类
静态内部类中可以包含静态成员,也可以包含非静态成员,但不可以有静态初始化块。
当内部类被static修饰的时候,只能访问外部类的静态成员。
三、继承
1、继承的特点
Java的继承通过extends关键字来实现。实现继承的类称为子类,被继承的类称为父类,也称为基类、超类。父类和子类的关系是一般与特殊的关系。我们可以说子类是一种特殊的父类。
继承的特点:
A、提高了代码的复用性;
B、让类与类产生了关系,是多态的前提。
注意:(1)、Java只支持单继承,不支持多继承。(2)Java的子类不能获得父类的构造函数。
2、覆写
子类包含与父类同名方法的现象被称为方法重写,也称覆盖或覆写。
方法的覆写要遵循“两同两下一大”的规则,“两同”即方法名相同、形参列表相同;“两小”是子类方法返回值类型应比父类的方法返回值类型更小或相等,子类方法声明抛出的异常应比父类声明抛出的异常更小或相等;“一大”就是子类方法的访问权限应比父类方法更大或相等。
注意:
(1)、子类的方法的权限必须要不小于父类的权限,才能进行覆写;
(2)、private 修饰的方法不能被覆写;
(3)、覆写static修饰的方法的时候,必须也是static修饰的。
3、super关键字
如果需要在子类方法中调用父类被覆写的方法,可以使用super关键字来调用。
super是父类对象的默认应用。
子类不能获取父类的构造函数,但可以通过super()语句来调用父类的构造函数。
注意:
1、子类的构造函数默认首行有一条super语句:super();
2、当父类中空参数的构造函数不存在的时候,需要通过super语句进行调用父类的构造函数;
3、super不能出现在static的方法中。