算法(第四版) 学习总结二 API、Java数组
2018-03-13 12:53
295 查看
Java数组的默认初始化:数值类型为0,double类型为0.0,bool类型为false,因此如果不想修改默认初始化的值的话可以不修改默认值。
访问Java数组的最后一个元素为a[a.length-1]
Java会自动进行边界检查,如果超过索引的话会抛出异常停止。
数组的起别名,如果你把数组变量赋值给另一个变量,那么这两个变量会指向同一个数组,而不是两个数组。
方法的签名:包含关键字以及函数的返回值,方法名和一串各个类型的参数。
静态方法实现模块化编程。可以构造许多个静态方法库(模块)
程序整体的代码量很大时,每次处理的模块大小仍然是适中的
可以共享和重用代码无需重新实现
很容将改进的实现替换老的实现
可以建立合适的抽象模型
缩小调试范围
Java编程最佳实践之一就是每个静态方法库都包含一个main()方法函数来测试库中的所有方法。随着模块的成熟,将main()方法作为一个开发用例。也可以做一个测试用例来测试所有的代码。当用例越来复杂,可以将他独立成一个模块。
API的使用
明白API的意义,是以一种标准接口的方法来完成两个部分的对接。但注意这一般是发生再两个模块之间的对接,模块A引用模块B的一些功能,是通过引用模块B,然后使用模块B的一些方法完成的。而模块A是如何知道我需要模块B中的什么功能呢,是通过读API文档,知道模块B中都有什么方法。所以我们一般在使用某个模块的功能的时候,推荐去阅读这个模块的API,简明直接。
自己在写功能模块的时候,也要注意写出模块的API,以便随时调用,也方便之后的修改。
API格式: 方法签名 方法功能
static double abs(double a) a的绝对值
思考问题?方法都需要是静态的么。应该都是的,否则的话,如果你想使用这个函数,还需要去实例化这个库,比较麻烦,浪费内存,所以在写模块的时候也应该尽量写成静态的方法。
有些方法的实现非常简单,为什么还要在方法库中实现他们?
这些方法所实现的抽象层有助于我们将精力集中再实现和测试本书的算法,而非具体的统计计算等,相对于每次都自己写完成相同计算的代码,不如直接调用他们更加简洁易懂。
方法库会经过大量测试,覆盖各种情况,是可以信任的
编写自己的库
你应该将自己编写的每一个程序都当做日后一个可以重用的库
编写用例 ,再实现中将计算过程分解可控的部分
明确静态方法库和与之对应的API
实现API和一个能够对方法进行独立测试的main()函数
这样不仅可以帮助你实现可重用的代码,还能帮助你如何运用模块化编程来解决一个复杂的问题
API的目的是将调用和实现分离,除了API,调用者不需要知道其他的细节。能够实现代码的重用,而在替换新的算法的时候也非常方便。
访问Java数组的最后一个元素为a[a.length-1]
Java会自动进行边界检查,如果超过索引的话会抛出异常停止。
数组的起别名,如果你把数组变量赋值给另一个变量,那么这两个变量会指向同一个数组,而不是两个数组。
方法的签名:包含关键字以及函数的返回值,方法名和一串各个类型的参数。
静态方法实现模块化编程。可以构造许多个静态方法库(模块)
程序整体的代码量很大时,每次处理的模块大小仍然是适中的
可以共享和重用代码无需重新实现
很容将改进的实现替换老的实现
可以建立合适的抽象模型
缩小调试范围
Java编程最佳实践之一就是每个静态方法库都包含一个main()方法函数来测试库中的所有方法。随着模块的成熟,将main()方法作为一个开发用例。也可以做一个测试用例来测试所有的代码。当用例越来复杂,可以将他独立成一个模块。
API的使用
明白API的意义,是以一种标准接口的方法来完成两个部分的对接。但注意这一般是发生再两个模块之间的对接,模块A引用模块B的一些功能,是通过引用模块B,然后使用模块B的一些方法完成的。而模块A是如何知道我需要模块B中的什么功能呢,是通过读API文档,知道模块B中都有什么方法。所以我们一般在使用某个模块的功能的时候,推荐去阅读这个模块的API,简明直接。
自己在写功能模块的时候,也要注意写出模块的API,以便随时调用,也方便之后的修改。
API格式: 方法签名 方法功能
static double abs(double a) a的绝对值
思考问题?方法都需要是静态的么。应该都是的,否则的话,如果你想使用这个函数,还需要去实例化这个库,比较麻烦,浪费内存,所以在写模块的时候也应该尽量写成静态的方法。
有些方法的实现非常简单,为什么还要在方法库中实现他们?
这些方法所实现的抽象层有助于我们将精力集中再实现和测试本书的算法,而非具体的统计计算等,相对于每次都自己写完成相同计算的代码,不如直接调用他们更加简洁易懂。
方法库会经过大量测试,覆盖各种情况,是可以信任的
编写自己的库
你应该将自己编写的每一个程序都当做日后一个可以重用的库
编写用例 ,再实现中将计算过程分解可控的部分
明确静态方法库和与之对应的API
实现API和一个能够对方法进行独立测试的main()函数
这样不仅可以帮助你实现可重用的代码,还能帮助你如何运用模块化编程来解决一个复杂的问题
API的目的是将调用和实现分离,除了API,调用者不需要知道其他的细节。能够实现代码的重用,而在替换新的算法的时候也非常方便。
相关文章推荐
- 算法(第四版) 学习总结三 Java输入输出、二分查找、源代码地址
- 算法(第四版)学习笔记之java实现可以动态调整数组大小的栈
- Java基础学习总结(67)——Java接口API中使用数组的缺陷
- Java基础学习总结(67)——Java接口API中使用数组的缺陷
- 算法(第四版)学习笔记之java实现能够动态调整数组大小的栈
- 算法(第四版)学习笔记之java实现快速排序
- 算法(第四版)学习笔记之java实现希尔排序
- 算法(第四版)学习笔记之java实现二叉查找树
- java事务大总结(三) 理解学习 JTA(Java Transaction API)
- java入门学习(3)—循环,选择,基础算法,API概念
- java基础学习总结——数组
- 算法(第四版)学习笔记之java实现堆排序
- java基础学习总结五(递归算法、冒泡排序、查看生成API)
- java数组的理解--学习总结
- Java基础学习总结(21)——数组
- Java学习笔记之数组排序算法
- 算法(第四版)学习笔记之java实现插入排序
- Java基础学习总结(21)——数组
- java学习记录(三)Java包与对象数组的学习总结
- Java基础学习总结(21)——数组