之前对什么是API感觉到很混乱。一方面,在学习Java的时候,每次学习新的东西的时候,如果遇到不会的内容,网上搜索出最多的答案就是查看官方的API。在开始的时候,API给我的印象是一个资料的合集。
百度百科上有关API的介绍很简单,就是说是application programming interface的缩写。指的是一些预先定义的函数。这就不由的让我产生了疑惑。又是接口,又是函数的,加上前面我还认为这是一部分的文档,那么API究竟是什么呢。
作为程序员(学习过编程的人员)来说,在学习Core Java的时候学习过接口(interface)的概念,就是一种抽象程度极高的类,我们观看这些接口,只能看出调用方法的时候所需要的参数以及返回值的类型,而对方法是如何实现的毫不了解,因为接口的实现是在别的类中。
在看过网上各种大神写的有关API的理解后,结合Java中接口的概念。我认为API是在面向对象编程中的接口概念的升华。它已经不单单只是说存在一些函数,而是在此之上又有提升,指的是所见即所用的这样一种思想,我需要能返回一种特定内容的方法(函数),我看API提供哪些符合要求的,然后直接拿过来调用即可。也就是说,API应该算是黑箱的一种吧,我看到的这个箱子,上面只写着“给我钱,我给你水”,然后你把钱从输入投入,然后你就会在出口得到水了,至于这水是提前灌装好的还是如何,则不需要你考虑。
回到开头的问题上,API就是一个函数的collection。在程序高度密集化的今天,无论是官方还是第三方发布的jar,其中的包含的函数往往有成千上万之多,各个函数作用不同、名称不同,编程人员往往不能将全部函数的使用方法全部记住,而且,根据二八原则,其中也只有很少的一部分是常用的,而大部分是针对特殊情况特定使用的,所以,api文档应运而生,这使得programmer不需要把所有的函数全记住,也不不要自己去程序的源代码去寻找(而且并非所有的模块都是开放源代码的),直接在文档中就可以查询到自己所需要的各种函数的使用了。
最后贴一个api网站 :
常用API文档索引