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 -08-02 15:41 水煮三国 阅读(1223) 评论(2) 编辑 收藏 所属分类: J2SE