单一的代码库是函数调用的一个逻辑上的组合,它们按照与操作系统有关的机器代码的方式打包到一个可链接的文件上。在Java中,库可能是以打包到一个JAR文件一组静态方法的形式存在的。由于这些函数调用或者静态方法对它们所处的环境一无所知,所以它们一般不能维护(与调用它们的客户代码有关的)任何一种状态。例如,Java中的代码库(打包为一组静态方法),看上去可能向代码清单A所示。 清单A如下: Listing A
public class SystemLib { public static Date getDateTime() { return new Date(); } public static String getOSVersion() { return System.getPRoperty("os.version"); } }
对象把状态和功能封装当逻辑单元之中。一个或者多个客户可以分享同一个对象。对象一般可以提供其中某些状态数据以及适当的操作。代码清单B给出了一个表示个人信息的Java对象。 代码清单B如下: Listing B
public class Person { protected String name; protected int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } public String toString() { return "Name: " + name + ", Age: " + age; } }