亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: TAxxjszxlkjf
打印 上一主題 下一主題

關于java中接口的認識(不知理解的是否正確) [復制鏈接]

論壇徽章:
0
31 [報告]
發(fā)表于 2005-09-11 13:23 |只看該作者

關于java中接口的認識(不知理解的是否正確)

既然D和E, F相比沒有解耦,也就是說只有在都使用wqzkt類這個前提下才能體現(xiàn)接口的本質(zhì),那接口存在還有什么意義。(我覺得只有一個使用接口如程序D,和一個不使用接口如程序E相比較才能反映出接口的本質(zhì)。)因為E F里沒必要實現(xiàn)
class wqzkt {
   public void kaihuo(A a) {
     a.gongji();
   }

   public void kaihuo(B b) {
     b.gongji();
   }

   public void kaihuo(C c) {
     c.gongji();
   }

}

論壇徽章:
0
32 [報告]
發(fā)表于 2005-09-11 20:17 |只看該作者

關于java中接口的認識(不知理解的是否正確)

原帖由 "TAxxjszxlkjf" 發(fā)表:
既然D和E, F相比沒有解耦,也就是說只有在都使用wqzkt類這個前提下才能體現(xiàn)接口的本質(zhì),那接口存在還有什么意義。(我覺得只有一個使用接口如程序D,和一個不使用接口如程序E相比較才能反映出接口的本質(zhì)。)因為E F里沒必要實現(xiàn)

你說對了,只有使用了接口的程序才能看出接口的好處。但是,不是使用了接口,就一定能享受到接口的好處。比如F,就沒有什么好處,因為不是最佳的使用接口的方式!敖怦睢币馕吨坝媒涌诖骖悺保皇墙涌诤皖惒⒋,F(xiàn)那個程序充其量只是演示了一下類到接口的類型轉換的語法而已,沒有任何意義。接口在定義了之后,一定要有一個很好的使用者,比如wqzkt這樣的類,才能看出它的用處;對D和F這兩個類來說(我不是指D程序和F程序),不是發(fā)揮接口優(yōu)勢的類,所以比較D, E, F類是沒有意義的。

---------------------------------

至于說E, F里沒有必要實現(xiàn)wqzkt類,我只能說這個例子里沒有體現(xiàn)wqzkt類存在的必要性。因為這個程序沒有需求。只有在復雜的程序里,多人開發(fā)的環(huán)境中,才能體會到接口的好處。所以在沒有需求的情況下,只是單純的對比D和E是不能看出接口存在的意義的。我是假設wqzkt有存在的意義(抱歉,我無法從這個類的名字看出它的含義),那么最佳的wqzkt類的設計方式是在wqakt類中使用wuqi接口,而不是A, B,C。而你的前提是wqzkt類沒有存在的必要,所以只有在有需求的情況下才能看出wuqi接口的作用。

---------------

其實很多軟件工程的基本概念開始都不是太容易理解。多寫寫程序,參與一些實際的項目,然后就會有更清晰的認識。

論壇徽章:
0
33 [報告]
發(fā)表于 2005-09-12 09:38 |只看該作者

關于java中接口的認識(不知理解的是否正確)

我使用類文件F那種例子就是為了和文件D進行單純的比較,去比較接口產(chǎn)生的本質(zhì)。因為我覺得使用接口是java編程的一種方式,討論它產(chǎn)生的本質(zhì)不應該局限在都使用類似于wqkzt(武器控制臺)類的前提下去討論(使用接口的好處我也知道,特別是面向不同客戶的大型程序中,但那只是它產(chǎn)生后人們發(fā)現(xiàn)的好處,和他產(chǎn)生的本質(zhì)沒關系,“多寫寫程序,參與一些實際的項目,然后就會有更清晰的認識”這樣只能更好的理解使用接口的好處,更好的去使用它。我現(xiàn)在只想知道接口為什么產(chǎn)生,是為什么產(chǎn)生的,人們?yōu)槭裁匆O計接口。(接口產(chǎn)生的本質(zhì))如我舉的例子,要實現(xiàn)同一個結果,程序D,程序F兩種方式,如果二者在編程的本質(zhì)上沒什么區(qū)別(如耦合),雖然外形不一樣,那用程序F不就可以了嗎,還設計接口干什么。

論壇徽章:
0
34 [報告]
發(fā)表于 2005-09-12 11:00 |只看該作者

關于java中接口的認識(不知理解的是否正確)

接口設計的目的就是因為有復雜的大型程序,如果是簡單的程序,那么面向?qū)ο蠖紱]有必要,用匯編就夠了,何況“接口”。這就是接口產(chǎn)生的目的。

所有的語法現(xiàn)象,包括接口,包括面向?qū)ο螅际且驗橛行枨,所以才出現(xiàn)的。所以如果你明白了接口的好處,自然就知道了接口出現(xiàn)的目的。

你舉的例子沒有需求分析,同時也比較簡單,所以看不出接口的作用。也就是說,從你的例子看來,接口這個東西是沒有任何用處的。甚至看不出解耦有什么用,因為程序里沒有什么太大的耦合度。

Java沒有什么特殊的,接口也不是什么神秘的東西,設計java和接口的人就是為了在設計和開發(fā)大型程序的時候,有接口這么個東西比沒有要方便,而不是為了某個神秘的“本質(zhì)”設計接口的。我覺得你把接口產(chǎn)生的原因和結果混淆了。不是接口產(chǎn)生了,人們才發(fā)現(xiàn)用來設計大型應用程序用接口好;而是因為大型軟件的開發(fā)要求了“接口”的出現(xiàn)。其實整個軟件工程這門科學都是這樣。總不能說是“先有了軟件工程,大家才發(fā)現(xiàn)軟件工程可以用來設計和開發(fā)軟件”吧、

論壇徽章:
0
35 [報告]
發(fā)表于 2005-09-12 11:06 |只看該作者

關于java中接口的認識(不知理解的是否正確)

勞模,當之無愧

論壇徽章:
0
36 [報告]
發(fā)表于 2005-09-12 11:09 |只看該作者

關于java中接口的認識(不知理解的是否正確)

勞模?俺?

論壇徽章:
0
37 [報告]
發(fā)表于 2005-09-12 11:26 |只看該作者

關于java中接口的認識(不知理解的是否正確)

[quote]原帖由 "sakulagi"]勞模?俺?[/quote 發(fā)表:


恩,pf死你了,呵呵,超有耐心~~~~,很稱職的說~~~~~~~~~~~

論壇徽章:
0
38 [報告]
發(fā)表于 2005-09-12 13:45 |只看該作者

關于java中接口的認識(不知理解的是否正確)


討論基本的問題是理清思路,學習概念的最好方法

論壇徽章:
0
39 [報告]
發(fā)表于 2005-09-12 23:08 |只看該作者

關于java中接口的認識(不知理解的是否正確)

程序F E中
..............
class C implements wuqi {

public void gongji() {
System.out.println("Inside C's constructor.";
}
}

class F  {
public static void main(String args[]){
wuqi a = new A();
a.gongji();
wuqi b = new B(); //若改為wuqi a = new B();
b.gongji();        //a.gongji();
wuqi c = new C(); //wuqi a = new C();
c.gongji();       //a.gongji();
}
}


............
class E  {
public static void main(String args[]){
A a = new A();
a.gongji();
B b = new B(); //若改為B a = new B();
b.gongji();    //a.gongji();
C c = new C(); //C a = new C();
c.gongji();    //a.gongji();
}
}

作以上更改程序在編譯時都會報錯是行不通的,所以a b c在被賦值后都會同時占用一定的內(nèi)存空間,而不會立即釋放的。

程序D中
...............
class wqkzt {

public void kaihuo(wuqi w) {
  w.gongji();
}
}
class D  {
public static void main(String args[]){
wqkzt e=new wqkzt();
e.kaihuo(new A());
e.kaihuo(new B());
e.kaihuo(new C());
}
}
其通過接口就可以避免了以上的情況,誰的方法被調(diào)用,內(nèi)存空間就分給誰,如D,當傳遞的參數(shù)是new B()的時候,便使用了開始當傳遞的參數(shù)是new A()時的內(nèi)存空間。(不知道我理解的對不對,斑竹)

論壇徽章:
0
40 [報告]
發(fā)表于 2005-09-13 18:47 |只看該作者

關于java中接口的認識(不知理解的是否正確)

編譯出錯是你重復聲明了變量,是語法錯誤,和內(nèi)存空間的分配是沒有關系的。


我覺得你上面舉的兩段代碼沒有可比性。你的第二段代碼里有賦值的操作么?(除了第一個new wqkzt();之外)
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP