Java基础复习(二)

Java 复习

标签:java基础


单列设计模式

  • 单列设计模式的问题:
    保证一个类在内存当中的唯一性
    1.不允许其他类创建本类。(私有构造函数)
    2.在该类创建一个本地实列 (静态创建一个对象)
    3.对外提供一个方法,让其他程序可以获取该对象 (类方法。可以获取该静态对象)
class Single
{
    /*
     * 单列设计模式  -- 饿汉式
     */
    //创建一个静态的对象,让类加载的时候就可以拥有
    private static Single single = new Single();
    //私有化构造函数
    private Single() {}
    //给一个可以获取该对象的内部方法
    public static Single newInstance()
    {
        return single;
    }

}

class Single
{
    /*
     * 单列设计模式  -- 懒汉式
     */
    //创建一个静态的对象,让类加载的时候就可以拥有
    //用到了延时加载的问题
    private static Single single = null;
    //私有化构造函数
    private Single() {}
    //给一个可以获取该对象的内部方法
    public static Single newInstance()
    {
        if (single == null)
        {
            single = new Single();
        }
        return single;
    }

}

继承的特点笔记

Java是但单继承的方式
就是一个类只能继承一个父类,不能拥有多个父类
原因:因为两个父类可能同时出现同一个方法,子类到底调用的是哪一个类,会造成混乱;
- this额super的区别
this代表本类对象的引用
super代表父类内存空间的标识(就是内存地址)
当本类成员和局部变量同名时用this来区分
当子父类成员同名父类用super来区分

重载函数的两个特性

1.重载在一个类中
2.覆盖,子类当中覆盖也称为重写,就是覆写。override
那么我们什么时候需要覆盖操作
当子类需要实现父类功能。但是功能的主体子类当中有特定的内容时。可以复写父类的方法。

  • 构造函数
    字符类构造函数的特点:
    子类构造函数执行是,发现父类构造函数也运行了。
    原因:在子类的构造函数当中,第一行有一个默认的隐式语句:super();
    注意: 如果使用super(4),语句调用的是父类的其他构造函数,那么默认的父类构造函数将不会被调用,反而去调用父类指定参数的构造函数
    P.S.
    1、当父类中没有空参数的构造函数时,子类的构造函数必须通过this或者super语句指定要访问的构造函数。
    2、子类构造函数中如果使用this调用了本类构造函数,那么默认的super();就没有了,因为super和this都只能定义在第一行,所以只能有一个。但是可以保证的是,子类中肯定会有其他的构造函数访问父类的构造函数。
    3、super语句必须要定义在子类构造函数的第一行!因为父类的初始化动作要先完成。

  • 构造代码块

    作用:给对象进初始化的,
    对象一旦建立,而且优先于构造函数执行。
    和构造函数的区别:
    够着代码块给所有对象进行统一初始化,而构造函数给对应对象进行初始化

  • 继承当中内存加载原理

  • final关键字

    final可以修饰类,方法和变量
    final 修饰的类不可以被继承。
    final 修饰的方法不可以被覆盖(系统的有些方法是不可以被覆盖的的)

  • 抽象类

    抽象的定义
    抽象就是重多个事物中讲共性的,本质的内容抽取出来。
    比如:猫和老虎豹子都属于猫科,猫科就是抽象出来的概念。


抽象类(absstract):
java 可以定义一些没有方法的体的方法,改方法的具体实现由子类去重写,这个方法叫做抽象方法,而拥有抽象方法的类就是抽象类
抽象类为什么不可以被实例化?

1.抽象类是具体事物抽取出来的,本身没有意义,也就是没有具体的事例。
2.因为里面的方法都没有具体的能够,调用了抽象方法也没有意思
3.抽象类通过子类实列化, 如果子类不实现抽象类的所有方法,那么子类里面也继承了父类的方法,那么子类也会变成了抽象类。所以子类在继承抽象类的时候必须实现父类的所有抽象方法。 子类实现了父类的抽象方法,相当于覆盖的了父类的方法。
4.抽象类是有构造函数的,(用于给子类进行给抽象类的字段初始化);
5.abstract不能和private,static, final关键字共存。
6.抽象类当中可以有非抽象方法,但是很少用,一般都没有方法体。
记住:抽象类也是一个类。所以他会拥有类的许多特征;
抽象类和一般类区别:
抽象类和一般类都是用来描述事物,都每部定义了成员
不同点:
1.一般类可以充分的描述事物,而抽象类不能
2.一般类里面不可以用抽象方法,只可以拥有非抽象方法。抽象类里面可以两者都拥有。
4.一般类可以被实例化,而抽象类却不可以。



  • 接口

当一个抽象类中的方法都是抽象方法都是抽象方法时
接口里面的成员都是固定的:
成员常量: public static fial
成员函数: public abstract
所以接口里面的成都是公共的权限。
总结:接口可以多继承。增加了程序的扩展性,接口是抽象类,接口是实现,抽象类是继承。一个is a .
接口的是想 link a ;
不管怎么实现我们都要重写父类的方法。编译才不会报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值