黑马程序员-容易忽视的问题

来源:互联网 发布:淘宝卖女装好吗 编辑:程序博客网 时间:2024/06/02 08:51

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------

package com.itcast.test;public class GetClassTest {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubnew GetClassTest().test();   }public void test(){           System.out.println(super.getClass().getName());       } }/*程序的输出结果是多少? * 在test方法中,直接调用getClass().getName()方法,返回的是Test类名 * 由于getClass()在Object类中定义成了final,子类不能覆盖该方法, 所以,在 * test方法中调用getClass().getName()方法,其实就是在调用从父类继承的 * getClass()方法,等效于调用super.getClass().getName()方法,所以, * super.getClass().getName()方法返回的也应该是Test。如果想得到父类的名称, * 应该用如下代码:getClass().getSuperclass().getName();  */

package com.itcast.test;public class Test {   public static void main(String[] args) {         System.out.println(test());}     static int test()   {           int x = 1;       try{           return x;       }       finally{           ++x;       }   }      }  /*运行结果是1,为什么呢?主函数调用子函数并得到结果的过程,好比主函数准备 * 一个空罐子,当子函数要返回结果时,先把结果放在罐子里,然后再将程序逻辑 * 返回到主函数。所谓返回,就是子函数说,我不运行了,你主函数继续运行吧, * 这没什么结果可言,结果是在说这话之前放进罐子里的。 */

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------