Java基础复习(二)

来源:互联网 发布:淘宝靠谱的数码店 编辑:程序博客网 时间:2024/06/04 19:45

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
原创粉丝点击