北大青鸟光谷校区

北大青鸟光谷校区

  • 北大青鸟徐东校区
  • 北大青鸟光谷校区
  • 北大青鸟高新校区
  • 荆州青鸟之家
  • 襄阳青鸟之家

17740513250

百日千才

武汉北大青鸟java培训06-学习java笔记

发布日期:2023-03-31来源:武汉北大青鸟武汉校区作者:武汉宏鹏

  武汉北大青鸟java培训06-学习java笔记

        一、接口(interface)

  1、 定义:接口不是类,而是一组对类需求的描述,这些类要遵从接口描述的统一格式进行定义。定义一个接口用关键字interface。

  例:public interface a{……}

  2、 接口是一种特殊的抽象类。在一个接口中,所有的方法为公开、抽象的方法,所有的属性都是公开、静态、常量。所以接口中的所有属性可省略修饰符:public static final,接口中所有的方法可省略修饰符:public abstract。

  3、 一个类实现一个接口必须实现接口中所有的方法,否则其为一抽象类。并且在实现类中的方法要加上public(不能省略)。实现接口用关键字implements.

  所谓实现一个接口就是实现接口中所有的方法。

  例:class Aimple implements A{……..};

  4、 一个类除了继承另一个类外(且只能继承一个类),还可以实现多个接口(接口之间用逗号分割)。这样可以实现变相的多继承。

  例:class Aimple extends Arrylist implements A,B,C{…}

  5、 不能用“new 接口名”来实例化一个接口,但可以声明一个接口。

  6、 接口与接口之间可以多继承。

  例:interface face1 extends face2,face3{}

  7、 接口的作用

  (1)、间接实现多继承。

  用接口来实现多继承并不会增加类关系的复杂度。因为接口终归不是类,与类不在一个层次上,是在类的基础上进行再次抽象。

  父类:主类型 接口:副类型

  典例:相声届师父(主)和干爹(副)

  (2)、允许我们为一个类定义出混合类型。

  (3)、通过接口制定标准

  接 口:标准的定义 定义标准

  接口的调用者:标准的使用 使用标准

  接口的实现类:标准的实现 实现标准

  先有接口的定义,再有接口的使用者,后把接口的实现者传到接口的使用者中,接口的使用者会通过接口来调用接口实现者的方法。这就是接口回调。

  例:sun公司提供一套访问数据库的接口(标准),java程序员访问数据库时针对数据库接口编程。接口由各个数据库厂商负责实现。

  (4)、解耦合作用:采用接口可以更大限度的做到弱耦合,将标准的实现者与标准的制定者隔离(例:我们通过JDBC接口来屏蔽底层数据库的差异)

  8、 接口的编程设计原则

  (1)、尽量针对接口编程(能用接口就尽量用接口)

  (2)、接口隔离原则(用若干个小接口取代一个大接口)

  这样可以只暴露想暴露的方法,实现一个更高层次的封装。

  9、 注意点:

  (1)、一个文件只能有一个public接口,且与文件名相同。

  (2)、在一个文件中不能同时定义一个public接口和一个public类。

  (3)、接口与类之间只有实现关系,没有继承关系;

  类(抽象类)与类之间只有继承关系没有实现关系。接口与接口之间只有继承关系,且允许多继承。

  (4)、接口中可以不写public,但在子类实现接口的过程中public不可省略。

  二、接口 VS 抽象类

  1、接口中不能有具体的实现,但抽象类可以。

  2、一个类要实现一个接口必须实现其里面所有的方法,而抽象类不必。

  3、通过接口可以实现多继承,而抽象类做不到。

  4、接口不能有构造方法,而抽象类可以。

  5、实体类与接口之间只有实现关系,而实体类与抽象类只有继承关系。

  三、Object类

  1、 object类是类层次结构的根类,他是所有类默认的父类。

  2、 object类中的三个方法。

  (1)、finalize()

  当一个对象被垃圾收集的时候,后会由JVM调用这个对象的finalize方法;

  注意:这个方法一般不用,也不能将释放资源的代码放在这个方法里;

  (2)、toString()

  返回一个对象的字符串表示形式。打印一个对象其实就是打印这个对象toString方法的返回值。

  我们可以在自己的类时覆盖toString()方法,从而打印我们需要的数据。Public String toString(){……}

  (3)、equals(Object o)

  该方法用来判断对象的值是否相等。但前提是类中覆盖了equals方法。Object类中的equals方法判断的其实还是地址。这里注意:String类已经覆盖了equals方法了,所以我们能使用equals来判断String对象的值是否相等。

  下面是覆盖equals方法的标准流程:

  public Boolean equals(Object o){

  /**步:现判断两个对象地址是否相等*/

  if(this = = o) return true;

  /**第二步:如果参数是null的话直接返回false;*/

  if(o = = null) return false;

  /**第三步:如果两个对象不是同一个类型直接返回false*/

  if( !(o instanceof Student) ) return false;

  /**第四步:将待比较对象强转成指定类型,然后自定义比较规则*/

  Student s = (Student)o;

  If(s.name.equals(this.name)&&s.age==this.age)

  return true;

  else return false

  }

  (4)、equals的特性:自反性、对称性、一致性、传递性。

关闭

只为了方便您就学 北大青鸟光谷校区 北大青鸟武汉校区

武汉市洪山区珞喻路724号(地铁二号线光谷广场站F口出

Copyright (c) 2006-2023 武汉宏鹏教育咨询有限公司 版权所有 All Rights Reserved.