Java暑假复习5

单例模式:

 

饿汉单例:

定义一个类,将构造器私有;

定义一个静态变量储存一个对象;

package example;

public class HungryMan {

    /**
     * 饿汉单例在获取对象前,对象已经提取准备好了一个。
     * 这个对象只能是一个,用以定义静态成员变量。
     */
    public static HungryMan hungryMan = new HungryMan();

    //私有的构造函数
    private HungryMan(){

    }
}

懒汉单例设计模式:

在真正需要该对象的时候,才去创建一个对象。

步骤:

定义一个类,将构造器私有;

定义一个静态变量储存一个对象;

提供一个返回单例对象的方法;

package example;

public class LazySingleton {

    /**
     定义一个静态的成员变量负责储存一个对象,只加载一次,只有一份
     注意:最好私有化,不然调用时会通过“.”显示出来
     */
    private static LazySingleton singleton ;

    //提供一个方法,对外返回单例对象
    public static LazySingleton getInstance(){
        if (singleton == null){
            //第一次来拿对象,此时需要创建对象。
            singleton = new LazySingleton();
        }

        return singleton;
    }

    private LazySingleton(){

    }
}

编程模式不只这两个,还有很多。

继承(三大特征之一):

在Java中提供一个关键字extends,用这个关键字,可以让一个类和另一个类建立“父”与“子”的关系。当子类继承父类后,就可以直接使用父类的公共的属性和方法了,这样处理解决了大量相同代码的重复编写。

继承设计规范:

子类们的相同特征(共性属性,共性方法)放在父类中定义,子类独有的属性和行为应该定义在子类自己里面。

继承的特点:

1、子类可以继承父类的属性和行为,但是子类不能继承父类的构造器。

2、Java是单继承模式:一个类只能继承一个直接父类。

3、Java不支持多继承、但是支持多层继承。

4、Java中所有的类都是Object类的子类。

注意事项:

1、子类可以继承父类的属性和行为,但是不能继承父类的构造器。

2、Java是单继承模式:一个类只能继承一个直接父类。

3、Java不支持多继承、但是支持多层继承。

4、Java中所有的类都是Object类的子类。

在子类方法中 访问成员(成员变量、成员方法)满足:就近原则

先子类局部范围找。再子类成员范围找,然后父类成员范围找,如果父类范围还没有找到则报错。

方法重写:

在继承体系中,子类写一个与父类声明一样的方法覆盖父类的方法。

应用场景:

当子类需要父类的功能,但父类的该功能不完全满足自己的需求时。

子类可以重写父类中的方法。

重写注意事项:

重写方法的的名称、形参列表必须与被重写的方法的名称和参数列表一致。

私有的方法不能被重写

子类重写的父类方法时,访问权限必须大与或者等于父类

子类不能重写父类的静态方法,如果重写会报错。

super关键字:

当只需要使用父类的功能时,使用super关键字就可以实现。

@Override:

重写校验注解,如果重写有误,则报错。

继承后构造器的特点:

子类中所有的构造器默认都会先访问父类中无参的构造器,再执行自己。

使用super调用父类有参数构造器可以初始化继承父类的数据。

如果父类中没有无参数构造器,只有有参数构造器,则会报错。所有可以通过super(   ),手动调用父类的有参数构造器。

 this(   ):借用兄弟构造器

 this(   )和super(   )使用注意事项:

子类通过this(   )去调用本类的其它构造器,本类其它构造器会通过super去手动调用父类的构造器,最终还是会调用父类的构造器。

这两者都只能放在构造器的第一行,所以二者不能共存在同一个构造器中。

感谢黑马程序员的网络学习资源!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值