Java接口當(dāng)中有一個(gè)類型為常量接口,我在網(wǎng)上看到有些人不提倡使用這種方式。具體的原因也沒(méi)怎么講,但是在這里我還是想與大家討論一下這個(gè)接口方式的使用。
希望有對(duì)此接口使用方式有深刻了解的網(wǎng)友能夠多提意見(jiàn):
今天朋友發(fā)來(lái)郵件談起這種接口方式,說(shuō)她寫的程序當(dāng)中的最后一句有錯(cuò),讓 我?guī)椭纯矗合旅媸沁@段程序的源碼
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里面看了,是一個(gè)警告原因就在于她用a.PI來(lái)取得常量值的方式的警告。
其實(shí)原因很簡(jiǎn)單,就是一個(gè)靜態(tài)字段需要在一個(gè)靜態(tài)方法中使用的警告。
看了這段代碼后,我發(fā)現(xiàn)其實(shí)她使用常量接口的作用已經(jīng)在實(shí)現(xiàn)了接口Maths的類中體現(xiàn)。就是我們可以在實(shí)現(xiàn)常量接口的類中直接使用常量而不必加上前面的對(duì)象,當(dāng)然使用Math.PI也是對(duì)的,不過(guò)為了方便我們可以在這個(gè)類當(dāng)中直接使用PI去代替它。
同樣我們也可以使用類Arithmetic當(dāng)中的PI,我們可以直接引用arithmetic.PI,但是我們不能夠使用a.PI
類當(dāng)中的常量定義對(duì)其它類來(lái)說(shuō)是可見(jiàn)可用的:他的使用可以以 類名.常量名 即可
而接口當(dāng)中:對(duì)其它類來(lái)說(shuō)是不可見(jiàn)的,除非我們需要去實(shí)現(xiàn)這個(gè)接口,只有實(shí)現(xiàn)它我們才可以直接使用 常量名 的方式
常量接口當(dāng)中定義的常量,在實(shí)現(xiàn)這個(gè)接口的類當(dāng)中可以直接拿來(lái)使用。它里面沒(méi)有相關(guān)屬性和其它方法。還有一點(diǎn)就是:常量在使用起來(lái)更為簡(jiǎn)潔。
posted on 2006-08-02 15:41
水煮三國(guó) 閱讀(1355)
評(píng)論(2) 編輯 收藏 所屬分類:
J2SE