黑马程序员--java内部类与异常

           ------- android培训  java培训、期待与您交流! ----------

一、内部类

  为什么要定义内部类:
      类是用于描述事物的,而事物如果还有具体的事物,而且这个内部的事物在访问者所属事物中的内容
       内部类成员方法调用,内部类的局部变量(x),内部类的成员变量(this.x),外部类的成员变量(Outer.this.x)
      
      内部类访问外部类的成员:非静态内部类可以访问非静态成员或静态成员,静态内部类可以访问外部静态成员

       外部类访问内部类的成员:非静态外部类,可以访问静态的内部类和非静态内部类,静态外部类,只可以访问静态内部类.


 
   static修饰符
         内部类被静态修饰:随着外部类的加载而加载
            只能访问外部类中的静态成员.
            访问静态内部类中非静态成员.      Outer1.Inne2r().method();
             访问静态内部类中的静态成员.        new Outer1.Inner2().function();
         内部类没有被静态修饰:
            内部类的成员也没被静态修饰                new Outer1().new Inner2().method();

            内部类的成员被静态修饰,就会报错.


   

匿名对象的用处:

         1.匿名对象:当对象只用一次的时候,可以用匿名对象.
         2.可以将匿名对象作为实际参数传递
     匿名内部类:
         格式:new 父类名() {
            重写的方法    
            };
        定义:其实就是一个匿名子类对象,

         前提是:内部类需要继承或者实现外部类或者接口。



二、异常
     异常的定义:在运行时期发生的一些不正常情况,就是异常.
     异常的由来:程序运行时总会出一些不正常的情况,java语言对这些不正常情况进行描述和封装.不正常情况的对象
     异常体系:
        Throwable
            ---Error(严重性的问题):一般都是由jvm底层抛出来的问题,通常不需要处理.直接修改程序即可.
              ---Exception(可以解决的):是可以定义针对性的处理方式对该种情况进行处理.
     异常分类:异常分为两种
        1.编译异常
            当我们对java文件进行编译时,就要求我们对产生的异常进行处理,这种异常就是编译异常。
                Exception类以及除了RuntimeException体系中的其它类都是编译异常。

        2.运行异常
                我们可以不用对其进行处理,如果出现问题,jvm会处理.
                RuntimeException以及其子类都是运行异常

            无论是编译异常还是运行异常,我们都可以人为的对其进行处理。

      异常的抛出:
        throw 与 throws区别
        1.throw用在方法内,throws用在方法的声明上
        2.throw后面跟的是异常对象   throws后面跟的是异常类型。
        3.throw后面只能跟一个对象   throws后面可以跟多个异常类型。
     异常捕捉:IO流的例子
          try {
            产生异常的代码块
         }
        catch(异常对象) {
             处理异常的代码块
         }
         finally {
             关闭动作
         }

     注:finally:因为无论是否产生异常,finally最后都会被执行。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值