Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14440344
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:42:55

下载本文示例代码
  Java语言提供了一种接口(interface)机制。这种接口机制使Java的面向对象编程变得更加灵活。我们可以用接口来定义一个类的表现形式,但接口不能包含任何实现。在《Thinking in Java》一书中,作者对接口有这样的描述:“接口(interface)比抽象(abstract)的概念更进了一步。你可以把一个接口看成是一个纯的抽象类。”我认为作者对接口的这一解释再准确不过了。  理解并用好接口机制将帮助我们更好的掌握Java这种面向对象的编程语言。下面我们来讨论一下接口的使用规则以及相关的应用。  一、接口的定义及实现   定义接口和定义类相似,只是要把 class关键字换为 interface。定义方法时只需要方法名,返回类型和参数列表,不能有方法体。接口中可以定义字段,这些字段都被暗指为 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。可以看出这些接口只定义了类的表现形式,而不包含任何实现,所以不能直接使用。要使用这些接口就需要有相应的类去实现它们。实现接口时应该先在类名后用 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 parrot!");}}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 表示说话能力,但它们并不包含具体实现。而 Parrot 同时具有这两种能力,所以我们为 Parrot 类同时实现了 Flyable 和 Talkable 这两个接口。同样我们还可以定义一个Swallow(燕子)类,但燕子只有飞行能力,所以我们只需要为 Swallow 实现 Flyable 就行了。因为它们各自的的飞行方法有所不同,所以它们有各自关于飞行的具体实现。   另外,正因为一个类可以同时实现多个接口,使得Java的面向对象特性变得非常灵活。运用这种特性,我们可以实现类似C 语言中多继承那样的特性,甚至更灵活的一些特性。下面我们来讨论一下接口在实际中的应用。  二、用接口来定义一些全局变量   因为接口内的字段都是static和final的,所以我们可以很方便的利用这一点来创建一些常量。例如: 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() * 255;}  其中red、green和blue的值会在第一次被访问时建立,然后保持不变。共2页。 1 2 :   Java语言提供了一种接口(interface)机制。这种接口机制使Java的面向对象编程变得更加灵活。我们可以用接口来定义一个类的表现形式,但接口不能包含任何实现。在《Thinking in Java》一书中,作者对接口有这样的描述:“接口(interface)比抽象(abstract)的概念更进了一步。你可以把一个接口看成是一个纯的抽象类。”我认为作者对接口的这一解释再准确不过了。  理解并用好接口机制将帮助我们更好的掌握Java这种面向对象的编程语言。下面我们来讨论一下接口的使用规则以及相关的应用。  一、接口的定义及实现   定义接口和定义类相似,只是要把 class关键字换为 interface。定义方法时只需要方法名,返回类型和参数列表,不能有方法体。接口中可以定义字段,这些字段都被暗指为 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。可以看出这些接口只定义了类的表现形式,而不包含任何实现,所以不能直接使用。要使用这些接口就需要有相应的类去实现它们。实现接口时应该先在类名后用 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 parrot!");}}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 表示说话能力,但它们并不包含具体实现。而 Parrot 同时具有这两种能力,所以我们为 Parrot 类同时实现了 Flyable 和 Talkable 这两个接口。同样我们还可以定义一个Swallow(燕子)类,但燕子只有飞行能力,所以我们只需要为 Swallow 实现 Flyable 就行了。因为它们各自的的飞行方法有所不同,所以它们有各自关于飞行的具体实现。   另外,正因为一个类可以同时实现多个接口,使得Java的面向对象特性变得非常灵活。运用这种特性,我们可以实现类似C 语言中多继承那样的特性,甚至更灵活的一些特性。下面我们来讨论一下接口在实际中的应用。  二、用接口来定义一些全局变量   因为接口内的字段都是static和final的,所以我们可以很方便的利用这一点来创建一些常量。例如: 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() * 255;}  其中red、green和blue的值会在第一次被访问时建立,然后保持不变。共2页。 1 2 : 下载本文示例代码


漫谈Java程序设计中的接口应用漫谈Java程序设计中的接口应用漫谈Java程序设计中的接口应用漫谈Java程序设计中的接口应用漫谈Java程序设计中的接口应用漫谈Java程序设计中的接口应用漫谈Java程序设计中的接口应用漫谈Java程序设计中的接口应用漫谈Java程序设计中的接口应用漫谈Java程序设计中的接口应用漫谈Java程序设计中的接口应用漫谈Java程序设计中的接口应用漫谈Java程序设计中的接口应用漫谈Java程序设计中的接口应用漫谈Java程序设计中的接口应用
阅读(194) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~