Java编程那些事儿69——抽象类和接口(二)
8.9.2 接口
接口(Interface)是一种复合数据类型。
至此,Java语言的所有数据类型介绍完了,下面进行一个简单的总结。Java语言的数据类型分为两大类:基本数据类型和复合数据类型,其中基本数据类型有8种,复合数据类型包括数组、类和接口,由于开发过程中可以根据需要声明新的复合数据类型,所以复合数据类型的数量有无限个。
接口的概念,现实中使用的也很多,例如大家经常使用的U盘,则需要和计算机上的USB接口匹配使用,而且USB设备中除了U盘以外还有很多,例如USB风扇、USB数据线、USB鼠标、USB键盘等,他们都使用计算机上统一的USB接口,这样设备的通用性很强。简化了计算机接口的设计,使计算机不需要具备鼠标接口、键盘接口等专用的结构。
广义上来说,两个人说不同的方言,互相之间无法听懂另一方表达的意义,我们也可以称之为双方使用的接口不统一,CPU无法和主板匹配,我们也可以称之为接口不统一,例如AMD和Intel的CPU采用不同的针脚结构,甚至同一厂商不同型号的CPU针脚结构也不统一,这样很不方便设备之间的匹配,使用专业的技术术语叫作兼容性差。
那么什么是接口呢?其实接口就是一套规范。
例如USB接口,分为两套规范:公接口和母接口。例如U盘、USB鼠标上的USB接口为公接口,而电脑上的USB接口为母接口。规范中只规定公接口有4个通道,那些用来传输数据、那些用来进行供电,母接口规范只规定也有4个通道,那些用来传输数据,那些用来进行供电,电压是多少电流多大等。所有的这些规范都只规定了必须实现那些功能,但是却没有规定如何进行实现。
这种只规定实现什么功能,而不限制如何进行实现的结构,在程序设计领域中称作“设计和实现相分离”,其中规定实现的功能属于设计部分,而如何实现功能则是实现部分。这样进行程序项目制作,可以让一部分人专门进行项目设计,而由另一部分人进行项目实现。这点,很类似汽车的制造,由设计人员设计汽车,由制造人员进行制造。
这种“设计和实现相
相关文档:
Abstractclass和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstractclass和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstractclass和interface的选择显得比较随意。其 ......
缓存对象需要知道对象占用空间的大小,可以事先设置好每种类型的大小,此方法对普通的对象起效,Jive论坛中的对象也是采用这种办法来获取对象的大小的(取自Jive).
public class CacheSizes {
/**
* Returns the size in bytes of a basic Object. This method should only
* be used for actual Object obje ......
如果服务器如果没有采用反向代理,而且客户端没有用正向代理的话,
那么可以获取客户端的真实IP地址request.getRemoteAddr()
如果服务器如果没有采用反向代理,而且客户端有用正向代理的话,
&nbs ......
Java和其他语言不同的是,Java是运行于Java虚拟机(JVM)。这就意味着编译后的代码是以一种和平台无关的格式保存的,而不是某种特定的机器上运行的格式。这种格式和传统的可执行代码格式有很多重要的区别。具体来说,不同于C或者C++程序,Java程序不是一个独立的可执行文件,而是由很多分开的类文件组成,每个类文件对应一个 ......
1)net中定义的的WebService(返回值和参数都是自定义对象)可以被Java识别并调用,可是在Java中定义的WebService(返回值和参数都是自定义对象),C#客户端可以识别到自定义对象,也生成了代理类,可是调用时无法获取到对象的属性值,都是NUll?JavaWebService怎样传递自定义对象给。net?
解决:
直接用wsdl命令生成代理 ......