posts - 89,  comments - 98,  trackbacks - 0

Java接口当中有一个类型为常量接口,我在网上看到有些人不提倡使用这种方式。具体的原因也没怎么讲,但是在这里我还是想与大家讨论一下这个接口方式的使用。

希望有对此接口使用方式有深刻了解的网友能够多提意见:

今天朋友发来邮件谈起这种接口方式,说她写的程序当中的最后一句有错,让 我帮着看看:下面是这段程序的源码

interface Math
{
  double PI=3.1415926;
}
class Arithmetic implements Math
{
  double roudeArea(double radius)
     {
         return PI*radius*radius;
     }
}
class Student
{
   public static void main(String[] args)
     {
       Arithmetic a=new Arithmetic();
       System.out.println(a.roudeArea(3));
       System.out.println(Math.PI);
       System.out.println(Arithmetic.PI);
       System.out.println(a.PI);
      }
}



我在eclipse里面看了,是一个警告原因就在于她用a.PI来取得常量值的方式的警告。

其实原因很简单,就是一个静态字段需要在一个静态方法中使用的警告。

看了这段代码后,我发现其实她使用常量接口的作用已经在实现了接口Maths的类中体现。就是我们可以在实现常量接口的类中直接使用常量而不必加上前面的对象,当然使用Math.PI也是对的,不过为了方便我们可以在这个类当中直接使用PI去代替它。

同样我们也可以使用类Arithmetic当中的PI,我们可以直接引用arithmetic.PI,但是我们不能够使用a.PI

类当中的常量定义对其它类来说是可见可用的:他的使用可以以 类名.常量名 即可

而接口当中:对其它类来说是不可见的,除非我们需要去实现这个接口,只有实现它我们才可以直接使用 常量名 的方式

常量接口当中定义的常量,在实现这个接口的类当中可以直接拿来使用。它里面没有相关属性和其它方法。还有一点就是:常量在使用起来更为简洁。

posted on 2006-08-02 15:41 水煮三国 阅读(1342) 评论(2)  编辑  收藏 所属分类: J2SE

FeedBack:
# re: 讨论:Java 接口当中的 “常量接口”
2006-10-26 08:27 | 水煮三国
其实在interface当中定义的数据成员都是static final的,因此我们可以直接使用,且不能被修改  回复  更多评论
  
# re: 讨论:Java 接口当中的 “常量接口”
2013-06-28 10:44 | maaoi
用接口来管理常量会使程序失去动态的特性。
可以参照:http://www.ibm.com/developerworks/cn/java/l-java-interface  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
<2006年10月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(4)

随笔分类(85)

随笔档案(89)

文章分类(14)

文章档案(42)

收藏夹(37)

java

oracle

Sybase

搜索

  •  

积分与排名

  • 积分 - 209198
  • 排名 - 267

最新评论

阅读排行榜

评论排行榜