黑马程序员——内部类和异常的学习日记

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

 

 

1:  内部类:局部静态不能修饰内部类内部类定义在局部时,不可以被成员修饰,可以访问外部类中的成员,但是不可以访问它所在的局部中的变量。

       匿名内部类(1):就是内部类的简写
                    ( 2):定义匿名内部类的前提必须是继承一个类或接口。
                    ( 3):匿名内部类的格式:new 父类或接口(){定义子类的内容}
                     (4);匿名内部类就是一个匿名子类对象。。。。、、//子类 这个对象有点胖可以一理解为带内容的对象
                     (5):匿名内部类中定义的方法最好不超过三个
2:内部类的访问规则

                  (1):内部类可以访问外部类的成员,包括私有。
                  ( 2):外部类要访问内部类,需建立对象。
                    (3):之所以 可以直接我、访问外部类中的成员,因为内部类持有外部类的一个引用】格式是:::外部类名。this外部类名。

                 内部类名  变量名 = new  外部类内 部   类。;格式
                                Outer。inner in = new.Outer().new Inner();
b:当内部类在成员位置上时。就可以被成员修饰符修饰
如:private  将内部类在外部类中封装。
    static   当内部类被静态修饰 只能访问外部类的静态成员。
 Outer。Inner。function();都是静态的话 直接用类名访问。
 注意:::::当内部类定义了静态成员,,该内部类必须是static的。
    c:当外部类中的静态方法访问内部类时,内部类也必须是静态的。当描述事物时,事物的内部还有事物,该事物有内部类来描述。
因为内部事物在使用外部事物的内容。对外提供方法,建立对象 访问。

异常:

异常是什么?
对问题的描述,将问题进行对象的封装。
-----------------------------
异常体系:
   Throwabl
          1——Error
    1--Exception
         1--RuntimeException
异常体系的特点:异常体系被中的所有类以及建立的对象具备可抛行。
                 也就是说可以被throw和throws关键字操作
     只有异常体系具备这个特点。

throw和throws的用法
  throw定义在函数内:抛出异常对象
  throws地以在函数上:抛出类 可多个。


  当throw抛出异常对象,么有try处理,必须在函数上声明,
   注意:如果是RuntimeException除外,函数如果抛出RuntimeException异常
   函数上可以不声明。
   如果函数声明了异常,调用者需要进行处理。处理方式,可抛 可try。


   1:编译时
   被检测异常::::该异常在编译时,没有处理(抛 ,try)编译失败
   2:运行时异常编不检测译时
              在编译时 ,不需要处理,编译器不检查,
     该异常发生,建议不处理,停止程序,修正代码。


---------------------------------------
异常处理的语句:
try
{
 需要被检测的代码
}
catch()
{
   处理异常的代码
}
finally
{

  一定会执行的代码
}
---------------------------------------
三种结合格式:
1:try catch
2; try finally
3; try catch finall

注意:finally中定义的
通常是关闭资源代码,因为资源必须关闭。、
2:、fSystem.exit(0)系统退出finally无法
访问
 
--------------------------------------------

 自定义异常:
 定义类继承Exception  或者RuntimeException
 1:为了让该自定义类具备可抛行
 2:让该类具备操作异常的共性方法。
 当定义自定义异常信息时,可以使用父类已经定义好的功能。
 将异常信息传递给父类的构造函数。

class MyException extends Exception
{
   MyException(String message)
   {
  
   super(message);  
   }

 

}
自定义异常:按照java的面向对象思想,将问题进行封装。。。

-------------------------
异常的好处:
1:将问题进行封装
2:将正常流程代码和问题处理代码相分离,方便阅读。


异常处理原则:

1:处理方法 try和抛

2:
抛几个 方式,处理几个
一个try对应多个catch
3:多个catch,父类的catch放最下面
4catch内,,需要定义针对性的处理不要简单定义:printStacktrace 输出语句。
也不要不写。
当铺货的不能处理 时  可以继续 抛出

 

try
{
throw new AEexception();

 

}
catch(AException e)
throw e;

如果该异常处理不了,但并不属于该功能出现的异常
可以将异常转换后,再抛出和该功能相关的异常

 

或者异常可以处理,当需要将异常产生和本

功能相关的问题提供出去,
让调用者知道并处理,也可将捕获的异常处理后,转换新的异常,。

try
{


}
catch(AException e)
{
    //对AException处理。
 throw new BException();
}

 

比如汇款的例子

 


---------------------------
异常的注意事项,。。
在子父类覆盖时,
1:子类抛出的异常必须是父类的异常,或者子集。
2:如果父类或接口没有异常,子类覆盖出现异常,只能try不能throw
*/

 

class  ExceptionTest2
{
 public static void main(String[] args)
 {
  System.out.println("Hello World!");
 }
}

 

---------------------- android培训java培训、期待与您交流! ---------------------- 详细请查看: http://edu.csdn.net/heima


 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值