码迷,mamicode.com
首页 > 编程语言 > 详细

新手初步学Java,正在JavaSE中,每天留下我当天学习所得跟笔记,希望大家能够多多批评与指教,促进共同进步!第九天!

时间:2015-11-07 13:34:28      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

day09

  1. 内部类(inner class):将一个类定义在另一个类的里面,对里面那个类就称为内部类(内置类,嵌套类)

特点:a. 内部类可以直接访问外部类中的成员,包括私有成员.(之所有可以直接访问外部类中的成员,是因为内部类中持有了一个内部类的引用,格式:外部类名.this)

b.而外部类要访问内部类中的成员必须要建立内部类的对象。

   访问格式:当内部类定义在外部类的成员位置上,而且非私有,可以在外部其他类中,可以直接建立内部类对象。格式:外部类名.内部类名 变量名 = 外部类对象.内部类对象

   (Outer.Inner oi = new Outer().new Inner())

   当内部类在成员位置上,就可以被成员修饰符修饰。private,将内部类在外部类中进行封装。static,内部类就具有了静态的特性。内部类就只能直接访问外部类的静态成员,出现了访问局限。

       注意:当内部类中定义了静态成员,那么这个内部类一定是静态的。

                    当外部类中的静态方法访问内部类时,内部类也必须是静态的。

  1. 当描述事物时,事物的内部还有事物,该事物用内部类来描述。因为内部事物在使用外部事物的内容。
  2. 内部类在局部时(比如在方法中),是不可以被成员修饰符修饰。可以直接访问外部类中的成员,因为还持有外部类中的引用,但是不可以访问它所在的局部中的变量,只能访问被final修饰的局部变量。
  3. 匿名内部类:匿名内部类就是内部类的简写格式。定义匿名内部类的前提,内部类必须继承一个类或者实现接口。匿名内部类的格式:new 父类或者接口(){定义子类的内容}.内部类中方法名。匿名内部类就是一个匿名子类对象,而且这个对象有点多,即带内容的对象。匿名内部类中定义的最好不超过两个。
  4. 异常(exception):就是在程序在运行时出现不正常情况。其由来是Java对不正常情况进行描述后的对象体现(即把问题封装成对象)。在Java中,严重的问题Java通过Error来体现,非严重的通过Exception来体现。对于error一般不编写针对性的代码对其进行处理,对于exception可以使用针对性的处理方式进行处理。
  5. 异常的处理:Java提供了也有的语句进行处理,即try{需要被检测的代码} catch(异常类变量){处理异常的代码,即处理方式} finally{一定会执行的语句}。
  6. 对捕获的异常对象进行常见的方法操作。String getMessage();获取异常信息。e.toString();获取异常名称,异常信息。e.printStackTrace();获取异常名称,异常信息,异常出现位置。最后一种方法为Java默认的异常处理机制,就是在调用printStackTrace();方法,打印异常的堆栈的跟踪信息。
  7. 在定义一个功能时,如果该功能有可能出现问题,那么通过throws关键字声明该功能有可能出现异常。那么其他类或者程序在调用此功能时,要么对其进行try,catch处理,要么继续抛出(这种情况下,最终会抛给JVM,出现了异常的话,由JVM进行处理,即报告异常,并且程序停止)。
  8. 对多异常的处理:声明异常时,建议声明更为具体的异常,这样可以处理的更具体。对方声明几个异常,就对应有几个catch块,不要定义多余的catch块。如果多个catch块中的异常出现继承关系,父类异常catch块放最下面。建议在进行catch处理时,catch中一定要定义具体处理方式,不要简单定义一句e.printStackTrack();

 

  1. 自定义异常:在项目中,可能会出现特有的问题,而这些问题并未被Java所描述并封装对象。所以对于这些特有的问题可以按照Java的对问题封装的思想,将特有的问题进行自定义的异常封装。即定义一个异常类并继承于Exception类。然后在可能抛出特定异常的地方通过throw new 异常名();然后就需要给出相应的处理动作。
  2. 自定义异常类一定要继承Exception类的原因:异常体系有一个特点,因为异常类和异常对象都被抛出。它们都具备可抛性(Throwable这个体系中的独有特点),只有这个体系中的类和对象才能被throw和throws操作。
  3. throws和throw的区别:throws使用在函数上,throw使用在函数内。throws后面跟的是异常类,可以跟多个,用逗号隔开。throw后跟的是异常对象。
  4. Exception中有一个特殊的子类异常RuntimeException(运行时异常)。如果在函数内抛出该异常,函数上可以不用声明,编译一样通过。如果在函数上声明了该异常。调用者可以不用进行处理,编译一样通过。之所以不用在函数上声明,是因为不需要让调用者处理。当该异常发生,希望程序停止,因为在运行时,出现了无法继续运算的情况,希望停止程序后,对代码进行修正。
  5. 自定义异常时,如果该异常的发生,无法再继续进行计算,就让自定义异常继承RuntimeException。

新手初步学Java,正在JavaSE中,每天留下我当天学习所得跟笔记,希望大家能够多多批评与指教,促进共同进步!第九天!

标签:

原文地址:http://www.cnblogs.com/yishiluo/p/4944833.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!