《usb接口java程序设计【Java程序设计中的接口】.docx》由会员分享,可在线阅读,更多相关《usb接口java程序设计【Java程序设计中的接口】.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 usb接口java程序设计【Java程序设计中的接口】 摘 要:Java语言供应了一种接口(interface)机制。“接口(interface)比抽象(abstract)的概念更进了一步。你可以把一个接口看成是一个纯的抽象类。”这种接口机制使Java的面对对象编程变得更加敏捷。用接口来定义一个类的表现形式。 关键词:Java;interface;abstract理解并用好接口机制将帮忙我们更好的把握Java这种面对对象的编程语言。下面我们来争论一下接口的使用规章以及相关的应用。1、接口的定义及实现定义接口和定义类相像,只是要把 class关键字换为 interface。定义方法时只需要方法
2、名,返回类型和参数列表,不能有方法体。接口中可以定义字段,这些字段都被暗指为 static 和 final,因此应当依据需要先定好这些字段的值。例如: public interface Flyable void fly(); public interface Talkable void talk(); public interface Message int MAX_SIZE = 4096; String getMessage(); 上面定义的几个接口中,Flyable 和 Talkable 只定义了一个方法,而 Message 里除了方法外还有一个字段 MAX_SIZE。可以看出这些接口只定
3、义了类的表现形式,而不包含任何实现,所以不能直接使用。要使用这些接口就需要有相应的类去实现它们。实现接口时应当先在类名后用 implements 关键字申明将要实现的接口,假如要实现多个接口,应当用逗号将它们隔开,然后一一实现这些接口中定义的方法。如下面的例子: public class Parrot implements Flyable, Talkable public void fly() System.out.println(“Flying like a parrot“); public void talk() System.out.println(“Hello! I am a parr
4、ot!“); public class TextMessage implements Message String message; public void setMessage(String msg) message = msg; if (message.length() MAX_SIZE) message = message.substring(0, MAX_SIZE); public String getMessage() return message; 在 Parrot(鹦鹉)例子中,我们用接口 Flyable 来表示飞行力量,Talkable 表示说话力量,但它们并不包含详细实现。而
5、 Parrot 同时具有这两种力量,所以我们为 Parrot 类同时实现了 Flyable 和 Talkable 这两个接口。同样我们还可以定义一个Swallow(燕子)类,但燕子只有飞行力量,所以我们只需要为 Swallow 实现 Flyable 就行了。由于它们各自的的飞行方法有所不同,所以它们有各自关于飞行的详细实现。另外,正由于一个类可以同时实现多个接口,使得Java的面对对象特性变得特别敏捷。运用这种特性,我们可以实现类似C+语言中多继承那样的特性,甚至更敏捷的一些特性。下面我们来争论一下接口在实际中的应用。2、用接口来定义一些全局变量由于接口内的字段都是static和final的,
6、所以我们可以很便利的利用这一点来创立一些常量。例如: public interface Constants String ROOT = “/root“; int MAX_COUNT = 200; int MIN_COUNT = 100; 在使用时可以直接用Constants.ROOT这样的形式来引用其中的常量。我们还可以用下面这种方法来创立初始值不确定的常量。 public interface RandomColor int red = Math.random() * 255; int green = Math.random() * 255; int blue = Math.random()
7、* 255; 其中red、green和blue的值会在第一次被访问时建立,然后保持不变。3、用接口来定义根本数据构造在设计一套软件系统的初期,我们可以用接口来对一些根本数据元素的特性来进展一些描述,再依据需要进展不同的实现。请大家看看下面这个例子: public interface User int getAge(); String getName(); String getPassword(); public class XMLUser implements User / 这里用XML技术实现User接口中的方法 public int getAge() . public String get
8、Name() . public String getPassword() . public abstract class UserFactory public static UserFactory getUserFactory() return new XMLUserFactory(); public User getUser(String name); public User getAdmin(); public User createUser(String name, String password, int age); public void addUser(User user); pu
9、blic void delUser(User user); public class XMLUserFactory extends UserFactory / 这里用XML技术实现的UserFactory的抽象方法 在这个例子中,我们定义了一个接口User和一个抽象类UserFactory。然后我们用XML技术实现这两个类。可以看出,我们只需要从用UserFactory的getUserFactory()就可以得到一个UserFactory的实例,而不用去考虑这个实例的详细实现方法。通过UserFactory的这个实例我们还可以直接得到User的实例,也不用去考详细的实现方法。 假如我们打算用J
10、DBC技术来实现User和UserFactory,我们只需要按上面的形式实现JDBCUser和JDBCUserFactory就行了。然后把UserFactory中的getUserFactory方法修改一下就可以转变了它们的实现方法。而我们已经写好的调用UserFactory和User的局部不需要做任何修改。 这是用接口来定义数据构造的一个简洁的例子,在实际应用中还有许多敏捷的使用方法,大家需要在学习过程中不断的去体会。4、理解分布式应用的原理目前有许多软件工程都使用了分布式的技术。Java 有多种支持分布式应用的技术,早期用的比拟多的有 RMI、CORBA 等技术,而现在 EJB 技术更为流行
11、一些。但这些技术不管怎么进展,其实都是以接口为根底的。以远程方法调用 RMI(Remote Method Invocation)为例。在编写 RMI 应用时,我们需要做两件最根本的事,首先要定义一个接口,这个接口要继承 java.rmi.Remote 接口,这个接口中应当包含你要从远端调用的方法名。接下来就是写一个类来实现这个接口中的方法。例如: public interface Product extends java.rmi.Remote String getName() throws java.rmi.RemoteException; public class ProductImpl i
12、mplements Product String name; public ProductImpl(String n) name = n; public String getName() throws java.rmi.RemoteException return name; 在这个例子中,接口 Product 是放在客户端的,而 ProductImpl 是放在效劳器端的,客户在使用时只需要用指定的规章得到Product 的实例就行了,不用去考虑 Product 接口里的方法是如何实现的。在定义好这两个类后,用Java开发包命令“rmic ProductImpl”就可以帮忙我们自动生成两个类
13、ProductImpl_Skel 和 ProductImpl_Stub。这两个类就包含了RMI调用的运作机制。有兴趣的朋友可以把这两个类反编译后讨论一下。你会发觉其中 ProductImpl_Stub 实际上是接口 Product 的一个实现类。RMI 机制就是用这个类来生成 Product 的实例供客户端使用。另一个类 ProductImpl_Skel 则是在效劳端响应 ProductImpl_Stub 的调用恳求的类。而 RMI 最底层的通讯原理则是利用 ObjectInputStream 和 ObjetOutputStream 通过 Socket 将要调用的方法名及参数列表传到效劳器端,
14、效劳器端再通过特定的方法调用实现类(在本例中是 ProductImpl)的对应方法,然后将结果通过 Socket 传回客户端就行了。由于 Skel 和 Stub 类是用工具生成的,所以就大大节约了开发的时间。另外,假如我们需要修改一些实现方法或错误,只需要对效劳器端的实现类进展修改就可以了,也就是说这种分布式应用的大局部维护工作在效劳器端就可以完成。现在越来越多的应用使用了 EJB 这种技术。EJB 是从 RMI 进展而来的一项技术,它比RMI定义得更加完善,可以获得更好的面对对象的特性。但它的规章要比RMI简单一些。但是不管它多简单,它同样是使用了接口来定义各种不同的 Bean,也同样需要编
15、写相应的实现类来完成详细的功能,最终还要通过 Socket 来进展通讯。EJB的运作机制本身有肯定的简单性,所以其应用的效率理所固然就会受到肯定的影响。因此在选择开发技术时应当依据应用的规模和特点认真考虑,不肯定流行的技术就肯定能适应你的应用。假如你很好的把握了面对对象的设计原则,你就可以自行设计。或许你可以依据自己应用的特点设计出更适宜的分布式应用构造。5、结论除了上述的一些应用外,还有许多地方可以使用接口,比方在Java的大事机制中就常用到接口。另外,对于一些已经开发好的系统,在构造上进展较大的调整已经不太现实,这时可以通过定义一些接口并追加相应的实现来完胜利能构造的扩展。总之,学好接口可以帮忙我们更好的理解和运用面对对象的设计原则。使我们能设计出更好的软件系统。