老男孩的替身

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1.单例设计模式:保证一个类在内存中有一个对象。

①    模式:就是解决一类问题的固定步骤。

最早起源于建筑行业…

(单例设计模式, 模板设计模式,观察者设计模式,工厂设计模式)

单例设计模式的步骤:

饿汉单例设计模式

①    私有化构造函数

②    声明本类的引用类型变量,并且使用该变量指向本类对象。

③    提供一个公共静态 的方法,获取本类的对象。

懒汉单例设计模式

①    私有化构造函数

②    声明本类的引用类型变量,不创建本类的对象。

③    提供公共静态方法获取本类的对象,获取之前先判断是否创建了本类对象

如果已经创建,那么直接返回对象即可,如果还没有创建,那么先创建再返回

推荐使用饿汉单例设计模式,因为懒汉单例设计模式存在线程安全问题,目前还不能保证一类在内存只有一个对象。

2.继承(面向对象三大特征之一 封装,继承,多态 )

类与类之间的关系

①    球员----->球队   组合关系(整体与部分的关系/has a 关系)

②    学生----->.人      继承关系(is a关系)继承是通过extends体现的。

继承格式:

Class 子类 extends 父类/超类/基类

注意事项:

①    不要为了减少重复代码而去继承,只有真正存在继承关系再去继承。

②    父类私有的成员不能被继承。

③    父类的构造函数不能被继承。(调用和继承无关)

④    创建子类对象时会先调用父类无参的构造函数。

3.super关键字(代表了父类空间的引用)

①    子父类存在同名的成员时,在子类中默认访问子类的成员,可以通过super关键字指定访问父类的成员。

②    创建子类对象时,默认会先调用父类无参的构造方法,可以通过super指定调用父类的构造方法。

  •  注意:
  • ①如果在子类的构造方法上没有指定调用父类的构造方法,那么Java编译器会在子类的构造方法上加super()语句
  • ②     Super关键字调用父类函数时,该语句必须要是子类构造函数的第一个语句。
  • ③    Super和this不能同时出现在同一个构造函数中调用其他的构造函数,因为两个语句都必须得放在首位。

注意:super和this关键字的区别:

  •  代表的事物不一致:super代表的是父类空间的引用,this关键字代表的是所属函数的调用者对象。
  • 使用的前提不一样:super关键字必须要有继承关系才能使用,this关键字不需要有继承关系

4.方法的重写

前提:必须存在继承关系。

方法的重写:子父类出了同名的函数,这个我们就称为方法的重写。

方法的重载:在一个类中存在两个或者两个以上的同名函数,称作为方法的重载。

  • 要求
  • 方法重写是子类的权限要大于等于父类。
  • 方法重写时,方法名与形参列表必须一致。子类的返回值类型要小于或等于父类的返回值类型。
  • 方法重写时,子类抛出的异常类型要小于或等于父类抛出的异常类型。
posted on 2018-01-23 20:13  贾老板  阅读(145)  评论(0)    收藏  举报