----------- 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学习型技术博客、期待与您交流! ------------