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

教学内容总结

内部类

  1. Java支持在一个类中声明另一个类,这种类被称为内部类。包含内部类的类则为内部类的外嵌类。
  2. 内部类与外嵌类的区别
    • 内部类的外嵌类的成员变量在内部类仍有效,内部类中的方法可调用外嵌类中的方法。
    • 内部类的类体中不可声明类变量和类方法,外嵌类的类体在可用内部类声明对象,作为外嵌类的成员。
    • 内部类仅供它的外嵌类使用
  3. 非内部类不可以是static类。
  4. 外嵌类和内部类在编译时,生成两个.class文件

Java编译器生成的内部类字节码文件名字格式为外嵌类名$内部类名

匿名类

  1. 匿名类是:
  2. 特点:
    • 匿名类可继承、重写父类的方法
    • 匿名类一定是内部类。因为使用匿名类时,必然在某个类中直接使用匿名类创建对象
    • 匿名类可访问外嵌类中的成员变量和方法,匿名类的类体中不可声明static成员变量和static方法
    • 在用匿名类创建对象时,要直接使用父类的构造方法

3.和接口有关的匿名类

假设Computable是一个接口,那么,Java允许直接用接口名和一个类体创建一个匿名对象,此类体被认为是实现了Computable接口的类去掉类声明后的类体,称作匿名类。

下列代码就是用实现了Computable接口的类(匿名类)创建对象:

      new Computable() {

            实现接口的匿名类的类体

         } ;
 

interface SpeakHello{
	void speak();
}
class HelloMachine{
	public void turnOn(SpeakHello hello) { //参数hello时SpeakHello类型的对象
		hello.speak();
	}
}
public class Example7_3 {
	public static void main(String args[]) {
		HelloMachine machine=new HelloMachine();
		machine.turnOn(new SpeakHello() {  //和接口SpeakHello有关的匿名类
			public void speak(){
				System.out.println("hello,you are welcome.");
			}
		}
				);
		machine.turnOn(new SpeakHello() {
			public void speak(){
				System.out.println("你好,欢迎光临。");
			}
		}
				);
	}

}

异常类

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

 

1. try-catch语句的格式如下:

  try {

      包含可能发生异常的语句

 }

 catch(ExceptionSubClass1  e) {

    …

 }

 catch(ExceptionSubClass2  e) {

    …

 }

 

2.带finally子语句的try~catch语句,语法格式如下:

 

      try{}

     catch(ExceptionSubClass e){ }

     finally{}

 

其执行机制是在执行try-catch语句后,执行finally子语句,也就是说,无论在try部分是否发生过异常,finally子语句都会被执行。

 

3.异常的声明

  • 一个方法不处理它产生的异常,而是沿着调用层次向上传递,由调用它的方法来处理这些异常,叫声明异常.
  • 声明异常的方法:在产生异常的方法名后面加上要抛出(throws)的异常的列表:

如:void compute(int x) throws  ArithmeticException 

      {//这里有异常发生,但是并没有处理…}

 

 

断言

断言语句用于调试代码阶段。在调试代码阶段让断言语句发挥作用,这样就可以发现一些致命的错误,当程序正式运行时就可以关闭断言语句,但仍把断言语句保留在源代码中,如果以后应用程又需要调试,可以重新启用断言语句。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值