本帖最后由 saistart 于 2012-12-5 21:09 编辑
- /*
- 需求:需要练习异常,让异常出现ArithmeticException,NullPointerException
- 分析:因为针对ArithmeticException,NullPointerException,都属于RuntimeException类型的,
- 我们可以声明,制作处理下就行
- 1,针对ArithmeticException,我们可以练习一个除法,让除数等于0;
- 2,NullPointerException,我们可以给一个数组先定义一些元素,然后再给赋值为NULL
- 3,再练习下getmessage(),toString()的用法
- */
- public class MyExceptionTest
- {
- public static void main(String []args)throws FuShuException
- {
- int [] arr=new int[]{1,3,4};
- MyException myex=new MyException();
-
- //捕获ArithmeticException
- try
- {
- myex.fun1(10,0);
- }
- catch (Exception e)
- {
- System.out.println(e.getMessage());
- }
-
- //捕获NullPointerException
- try
- {
- arr=null;
- myex.printArray(arr);
- }
- catch (Exception e)
- {
- System.out.println(e.toString());
-
- }
- }
- }
- class MyException
- {
- //让除数等于零,来抛出ArithmeticException异常给调用者
- public int fun1(int a,int b)
- {
- return a/b;
- }
- //打印数组,如果数组被赋值为NULL的话,就会报NullPointerException
- public void printArray(int []arr)
- {
- for (int i=0;i<arr.length ;i++ )
- {
- System.out.println("arr["+i+"]="+arr[i]);
- }
- }
- }
复制代码- /*
- 需求:创建一个内部类,来调用外部类的属性和方法
- 分析:
- 1,我们在外部类中创建一个内部类,此内部类中去调用外部的
- 属性和方法
- 2,这里有几个注意事项:不能再静态方法中去创建非静态的内部类对象
- 3,这时我们如果在外部想用内部类对象时,只能在实例方法中创建内部类对象
- 然后再在main方法中调用自己的实例方法
- */
- //创建一个外部类
- class Outer
- {
- //定义两个私有的属性,来验证内部类可以直接调用外部类私有的属性
- private int a=1;
- private int b=2;
- public static void main(String []args)
- {
- Outer ou=new Outer();
- ou.fun1();
- }
- //定义一个外部类的实例方法,在此方法中来创建内部类对象(注意:此时尽管内部类为private的,我们也可以创建对象)
- public void fun1()
- {
- Inner in=new Inner();
- in.fun3();
- }
- int fun2()
- {
- return a+b;
- }
- //声明一个私有的内部类,然后去调用外部类私有的属性
- private class Inner
- {
- void fun3()
- {
- // 去调用外部类私有的属性
-
- System.out.println(a*b+" "+fun2()) ;
- }
-
- }
- }
复制代码 |