201711671202《Java程序设计》第七周学习总结

教材学习内容总结

1.

使用关键字interface来定义一个接口。

定义接口时使用关键字interface来声明自己的一个接口。

接口体中包含常量的声明(没有变量)和抽象方法两部分。接口体中只有抽象方法,没有普通的方法,而且接口体中所有的常量的访问权限一定都是public,而且是static常量(允许省略public、final和static修饰符),所有的抽象方法的访问权限一定都是public(允许省略public abstract修饰符)。

2.

接口由类来实现以便使用接口中的方法。一个类需要在类声明中使用关键字implement声明该类实现一个或多个接口。如果实现多个接口,用逗号隔开接口名。

如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中的所有方法。

而且方法的访问权限一定要明显地用public来修饰。

抽象类既可以重写接口中的方法,也可以直接拥有接口中的方法。

程序可以使用接口名访问接口中的常量,但是如果一个类实现了接口,那么该类可以直接在类体中使用该接口中的常量。

public接口可以被任何一个类实现。

友好接口可以被与该接口在同一包中的类实现。

接口也可以被继承。

3.

用接口声明的变量成为接口变量。

接口属于引用型变量,接口变量中存放实现该接口的类的实例的引用,即存放对象的引用。

接口回调表示一个变量的地址在某一个时刻存放在一个指针变量中,那么指针变量就可以间接操作该变量中存放的数据。

接口无法调用类中的其他的非接口方法。

4.

接口可以抽象出重要的行为标准,该行为标准用抽象方法来表示。

可以把实现接口的类的对象的引用赋值给接口变量,该接口变量可以调用被该类实现的接口方法,即体现该类根据接口里的行为标准给出的具体行为。

接口的思想在于它可以要求某些类有相同名称的方法,但方法的具体内容(方法体的内容)可以不同,即要求这些类实现接口,以保证这些类一定有接口中所声明的方法(即所谓的方法绑定)。接口在要求一些类有相同名称的方法的同时,并不强迫这些类具有相同的父类。

5.

由接口产生的多态就是指不同的类在实现同一个接口时可能具有不同的实现方式,那么接口变量在回调接口方法时就可能具有多种形态。

6.

如果准备给一个方法的参数传递一个数值,可能希望该方法的参数的类型是double类型,这样一来就可以向该参数传递byte、int、long、float和double类型的数据。

如果一个方法的参数是接口类型,我们就可以将任何实现该接口的类的实例的引用传递给该接口参数,那么接口参数就可以回调类实现的接口方法。

7.

abstract类和接口都可以有abstract方法。

接口中只可以有常量,不能有变量:而abstract类中既可以有常量,也可以有变量。

abstract类中也可以有非abstract方法,接口不可以。

8.

Java支持在一个类中定义另一个类,这样的类称作内部类,而包含内部类的类称为内部类的外嵌类。

内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法。

内部类的类体中不可以声明类变量和类方法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。

内部类仅供它的外嵌类使用,其他类不可以用某个类的内部类声明对象。

9.

内部类可以被修饰为static内部类。

static内部类就是外嵌类中的一种静态数据类型,这样一来,程序就可以在其他类中使用static内部类来创建对象了。

static内部类不能操作外嵌类中的实例成员变量。

非内部类不可以是static类。

10.

创建子类对象时,除了使用父类的构造方法外还有类体,此类体被认为是一个子类去掉类声明后的类体,称为匿名类。

匿名类有如下特点:

匿名类可以继承父类的方法也可以重写父类的方法。

使用匿名类时,必然是在某个类中直接用匿名类创建对象,因此匿名类一定是内部类。

匿名类可以访问外嵌类中的成员变量和方法,匿名类的类体中不可以声明static成员变量和static方法。

由于匿名类是一个子类,但没有类名,所以在用匿名类创建对象时,要直接使用父类的构造方法。

11.

如果某个方法的参数是接口类型,那么可以使用接口名和类体组合创建一个匿名对象传递给方法的参数,类体必须要重写接口中的全部方法。

12.

Java使用throw关键字抛出一个Exception子类的实例表示异常发生。

异常对象可以调用如下方法得到或输出有关异常的信息:

public String getMessage();

public void printStackTrace();

public String toString();

13.

将可能出现的异常操作放在try-catch语句的try部分,将发生异常后的处理放在catch部分。

try-catch语句可以由几个catch组成,分别处理发生的相应异常。

子类之间不能有父子关系,否则保留一个含有父类参数的catch即可。

一个方法在声明时可以使用throws关键字声明要产生的若干个异常,并在该方法的方法体中具体给出产生异常的操作,即用相应的异常类创建对象,并使用throw关键字抛出该异常对象,导致该方法结束执行。

catch的作用就是捕获throw关键字抛出的异常对象。

14.

断言语句一般用于程序不准备通过捕获异常来处理的错误。

使用关键字assert声明一条断言语句。

当使用Java解释器直接运行应用程序时,默认地关闭断言语句,在调试程序时可以使用-ea启用断言语句。

15.

如果在try-catch语句中执行了return语句,那么finally子语句仍然会被执行。

try-catch语句中执行了程序退出代码,即执行System.exit(0);,则不执行finally子语句(当然包括其后的所有语句)。

教材学习中的问题和解决过程

参考资料

《java 2实用教程(第5版)》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值