1.异常返回值
我们知道异常的框架如:
try{ //异常代码 }catch() { }finally{ }
代码是最好的说明:
public class ExpRetVal { public static int func() { try{ throw new Exception(){}; }catch(Exception e) { return 0; }finally { return 1; } } public static void main(String[] args) { System.out.println(func()); } }
在catch中我捕获异常,返回0,然后我在finally我返回1,到底返回0还是1?返回值可以覆盖吗?
输出是1,很有意思,结论告诉我们返回值是可以覆盖的。
finally总是在return之前被执行,如果finally中返回值,就直接返回。
2.递归的一点点思考
有这样的情况,给出一个包名(例如org.ljh.reflect,此处给出包名org),我要遍历包下所有的.class文件,如果找到我就返回一个true,说明有这个类的字节码,然后我通过反射实例化这个类。凑合着看下伪代码:
public boolean exist(String packageName) { if("在这个包找到了") { return true; }else{ exist("当前包名"); } return false; }
结果不确定了,可能是true,也可能是false,这就是因为递归引起的覆盖,怎么解决,通过静态成员变量的方式(静态成员变量在类范围,不在对象范围,每个对象共享):
static boolean isExist = false; public boolean exist(String packageName) { if("在这个包找到了") { isExist = true; }else{ exist("当前包名"); } return isExist; }
初学者发帖,大牛勿喷,不足之处多多指正。
相关推荐
此外,递归是解决某些问题的强大工具,但过度递归可能导致程序崩溃,因此理解和掌握递归的正确使用至关重要。 书中通过案例研究介绍了接口设计,如乌龟绘图系统,展示了如何通过封装和泛化来创建灵活的程序。条件和...
此外,书中还深入讲解了函数的定义与调用,包括参数传递、返回值和递归。 接着,书中的章节涵盖了更高级的主题,如列表、元组、字典和集合等复合数据结构,以及文件操作,这在实际编程中非常实用。函数式编程的概念...
《探秘Java》这本书以其独特的视角和方法,指导读者不仅仅学习Java这门语言的语法,更深入理解其背后的逻辑思考方式,从而像计算机科学家一样思考问题。 从“方法”这一核心概念开始,Java的函数被赋予了更为丰富的...
C++是一种广泛应用于系统软件、应用软件、游戏开发、嵌入式系统等领域的高级编程语言。...在学习过程中,不断练习和思考是进步的关键,同时,理解和掌握C++的思维方式将对整个计算机科学的学习产生深远影响。
13.3 按递归方式思考问题 397 13.3.1 递归设计技术 397 13.3.2 二分查找 398 13.3.3 编码 400 13.3.4 检查递归的正确性 402 13.3.5 效率 402 第14章 继承 410 14.1 继承基础 410 14.1.1 派生类 410 14.1.2...
9. **代码优化**:思考如何优化代码结构,使其更加简洁和易于理解,例如使用枚举类型表示柱子,或者使用迭代而非递归实现。 10. **文档注释**:为代码添加适当的注释,解释各个部分的功能,便于他人阅读和理解。 ...
通过对各种基本概念的深入解析,以及丰富的实例演示,读者能够逐步建立起扎实的编程基础,掌握有效的调试技巧,学会运用函数、条件语句和递归等高级特性来构建更加复杂和高效的程序。无论是对于初学者还是有一定经验...
《Think Java:如何像计算机科学家一样思考》是一本旨在引导初学者深入理解编程思维和Java语言的书籍。这本书的核心理念是让读者不仅学习编程语法,更着重于培养问题解决能力和逻辑思维能力。以下是对该书内容的详细...
通过分析不同函数的实现,可以学习到参数传递、函数返回值、递归函数等概念。 4. **数组与字符串**:C语言中的数组用于存储同类型数据的集合,而字符串是字符数组的特殊形式。实例可以帮助你理解数组的动态分配、...
3. **函数和模块**:学习如何定义和调用函数,理解函数参数和返回值,以及如何组织代码为模块,提高代码复用性。 4. **数据结构**:深入理解列表、元组、字典和集合等内置数据结构,学习如何有效地存储和操作数据。...
读者将学习如何编写函数,理解函数参数和返回值,以及函数重载和递归的概念。书中还详尽讨论了类和对象,这是面向对象编程的基础,涵盖了封装、继承和多态性等核心概念。 接着,书中深入到集合框架,讲解ArrayList...
6. **错误处理**:书中介绍了错误处理的策略,包括异常处理和返回值表示错误,帮助读者编写健壮的程序。 7. **测试驱动开发**:TDD(Test-Driven Development)是一种常见的软件开发实践,书中将教授如何编写测试...
- **递归算法**: 更深入地探讨递归的应用场景和技巧。 ### 附录D: 面向对象编程 - **设计模式**: 探讨面向对象设计中的常见模式。 - **高级特性**: 如多态、抽象基类等。 ### 附录E: 异常处理 - **高级异常处理*...
- 内联函数与递归函数:学习内联函数的优化效果,以及递归函数的实现和应用。 3. **数组与指针** - 一维数组:学习如何声明、初始化和操作一维数组。 - 多维数组:理解二维数组的使用,以及在矩阵运算中的应用。...
4. **函数与方法**:讲解了函数的定义、参数传递、返回值、重载以及递归。此外,还介绍了Java中的静态方法和非静态方法的区别。 5. **异常处理**:介绍了Java的异常处理机制,包括try-catch-finally语句块,异常类...
10. **错误处理**:C语言没有内置的异常处理机制,但可以通过错误码和return值来处理错误。源码可能展示了如何在程序中处理错误。 11. **位运算**:C语言支持位运算,如位移、按位与、按位或、按位异或等,这些运算...
2. **函数**:理解函数的定义、参数传递和返回值,包括重载函数和递归函数的概念。同时,掌握主函数main()的作用以及如何调用标准库中的函数。 3. **数组与指针**:深入理解数组的概念,包括一维、二维数组的声明、...
5. **函数(Methods)**:学习如何定义和调用函数,理解参数传递和返回值的概念,以及函数的重载和递归。 6. **数组**:了解一维和多维数组的创建、初始化和操作,以及遍历数组的方法。 7. **类和对象**:深入理解...
【SSD3 Exercise 8 知识点详解】 在编程领域,SSD3(Software Systems Development 3)可能指的是一个课程...同时,对于网上找到的资源,应谨慎参考并理解其工作原理,避免盲目复制,以培养独立思考和解决问题的能力。
函数是代码重用的关键,作者会讲解如何定义和调用函数,以及如何使用参数和返回值。模块化编程也是Python的一大特色,通过导入和创建模块,可以更好地组织和管理代码。 在面向对象编程部分,读者将了解到类(class...