黑马程序员技术交流社区

标题: 急 求详细代码带中文注解的 谢谢 [打印本页]

作者: crazylong    时间: 2014-6-5 20:30
标题: 急 求详细代码带中文注解的 谢谢
用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行final
作者: 李林_    时间: 2014-6-6 20:22
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Test3 {
  public static void main(String[] args) {
                  new Test3().show();   //调用下面的方法
  }
  
  
  public void show(){
         
          File file= new File("D:\\sd.txt"); //找地址
         
          FileReader reader=null;
          try {                                                       
                 reader =new FileReader(file);

                  System.out.println(reader);
                  
                  return ;
                  //System.out.println(4);  编译会报错
        } catch (FileNotFoundException e) {
               
                e.printStackTrace();
        }finally{
                try {
                        reader.close();
                } catch (IOException e) {
               
                        e.printStackTrace();
                }
        }
          
  }
}

先执行try的return
作者: youngkay    时间: 2014-6-10 18:23
/**
* 第七题:分析运行结果,说明原理
* @author Administrator
*
*/
public class Test7 {
         /*class A {
         void fun1() {
               System.out.println(fun2());
         }
         int fun2() {
             return 123;
         }
     }
      public class B extends A {
         int fun2() {
             return 456;
      }
      public static void main(String args[]) {
         B b = new B();
         b.fun1();
         A a = b;
         a.fun1();
      }
    }*/
       
        /*
         * 分析:class B继承了class A,就拥有了A中的方法,fun2()方法被重写,当B  b = new B()创建子类对象,子类对象b调用fun1()也就是父类的方法fun1(),
         * 父类中的方法又调用了子类的fun2()方法,所以打印456。
         * 父类A  a=b 这是多态,父类引用指向了子类对象 ,a调用fun1()方法,调用的就是父类中的fun1(),父类引用指向子类对象时,如果父类的引用调用的方法没有被子类重写,
         * 就会调用父类中的方法。如果子类中重写了父类的方法,就会调用子类重写的方法 ,所以打印456*/
}

作者: youngkay    时间: 2014-6-10 18:24
package com.itheima;

/**
* 第五道題:用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行fianlly?
* @author Administrator
*
*/
public class Test5 {
        /**
         * 定义一个方法 输出字符串
         * @return 1 表示是try里的方法
         */
        public static int getTryReturn(){
                System.out.println("我是try里的return,我执行了");
                return 1;
        }
       
        /**
         * 定义一个方法 输出字符串
         * @return 2  表示是finally里的方法
         */
        public static int getFinallyReturn(){
                System.out.println("我是finallly里的return,我执行了");
                return 2;
        }
        /**
         * 定义方法 ,测试是先执行return还是先执行fianlly
         * @return 正整数
         */
        public static int test(){
                try {
                        return getTryReturn();
                } catch (Exception e) {
                        e.printStackTrace();
                }finally{
                        return getFinallyReturn();
                }
        }
        /**
         * 测试类
         * @param args
         */
        public static void main(String[] args) {
                System.out.println(test());
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2