A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 saistart 于 2012-12-5 21:09 编辑
  1. /*
  2. 需求:需要练习异常,让异常出现ArithmeticException,NullPointerException
  3. 分析:因为针对ArithmeticException,NullPointerException,都属于RuntimeException类型的,
  4. 我们可以声明,制作处理下就行
  5. 1,针对ArithmeticException,我们可以练习一个除法,让除数等于0;
  6. 2,NullPointerException,我们可以给一个数组先定义一些元素,然后再给赋值为NULL
  7. 3,再练习下getmessage(),toString()的用法
  8. */
  9. public class MyExceptionTest
  10. {
  11.         public static void main(String []args)throws FuShuException
  12.         {
  13.                         int [] arr=new int[]{1,3,4};
  14.                         MyException myex=new MyException();
  15.                         
  16.                         //捕获ArithmeticException
  17.                         try
  18.                         {
  19.                                 myex.fun1(10,0);
  20.                         }
  21.                         catch (Exception e)
  22.                         {
  23.                                 System.out.println(e.getMessage());
  24.                         }
  25.                         
  26.                         //捕获NullPointerException
  27.                         try
  28.                         {
  29.                                 arr=null;
  30.                                 myex.printArray(arr);
  31.                         }
  32.                         catch (Exception e)
  33.                         {
  34.                                 System.out.println(e.toString());
  35.                                 
  36.                         }
  37.         }
  38. }
  39. class MyException
  40. {
  41.         //让除数等于零,来抛出ArithmeticException异常给调用者
  42.         public int fun1(int a,int b)
  43.         {
  44.                 return a/b;
  45.         }

  46.         //打印数组,如果数组被赋值为NULL的话,就会报NullPointerException
  47.         public void printArray(int []arr)
  48.         {
  49.                 for (int i=0;i<arr.length ;i++ )
  50.                 {
  51.                         System.out.println("arr["+i+"]="+arr[i]);
  52.                 }
  53.         }
  54. }
复制代码
  1. /*
  2. 需求:创建一个内部类,来调用外部类的属性和方法
  3. 分析:
  4. 1,我们在外部类中创建一个内部类,此内部类中去调用外部的
  5. 属性和方法
  6. 2,这里有几个注意事项:不能再静态方法中去创建非静态的内部类对象
  7. 3,这时我们如果在外部想用内部类对象时,只能在实例方法中创建内部类对象
  8. 然后再在main方法中调用自己的实例方法
  9. */
  10. //创建一个外部类
  11. class Outer
  12. {
  13.         //定义两个私有的属性,来验证内部类可以直接调用外部类私有的属性
  14.         private int a=1;
  15.         private int b=2;
  16.         public static void main(String []args)
  17.         {
  18.                 Outer ou=new Outer();
  19.                 ou.fun1();
  20.         }

  21.         //定义一个外部类的实例方法,在此方法中来创建内部类对象(注意:此时尽管内部类为private的,我们也可以创建对象)
  22.         public void fun1()
  23.         {
  24.                 Inner in=new Inner();
  25.                 in.fun3();
  26.         }
  27.          int  fun2()
  28.         {
  29.                 return a+b;
  30.         }

  31.         //声明一个私有的内部类,然后去调用外部类私有的属性
  32.         private class Inner
  33.         {
  34.                 void fun3()
  35.                 {
  36.                         //        去调用外部类私有的属性
  37.                        
  38.                         System.out.println(a*b+"  "+fun2()) ;
  39.                 }
  40.                
  41.         }
  42. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马