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

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

package com.itcast.test;

public class GetClassTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new 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学习型技术博客、期待与您交流! ------------


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值