① 怎樣理解java之介面
ava中的介面是一組對需求的描述。例如,以下是Comparable<T>介面的定義:
public interface Comparable<T> {
int compareTo(T o);
}
Comparable<T>介面中定義了一個compareTo方法,這個方法就是它所描述的需求。若我們想調用Arrays.sort方法對一個People對象數組進行比較,那麼People對象必須是」可比較的」,即People類需要實現Comparable<T>介面。介面的實現類需要實現介面中定義的方法。也就是說,介面描述了一組需求,而實現一個介面的類就需要實現這個介面所描述的需求。比如我們想要People類對象是可比較的,我們可以這樣:
public class People implements Comparable<People> {
...
public int compareTo(People p) {
//定義具體的比較標准
}
...
}
實際上,Arrays.sort方法之所以要求它所比較的對象需實現了Comparable介面,是因為它在比較對象時調用的對象的compareTo方法(因為它不知道評價一個對象大小的標准,這個標準是由我們來定的)。那麼,我們為什麼不直接在People類中定義一個compareTo實例方法來定義People對象的比較標准,而是要去實現一個Comparable<T>介面呢?讓我們舉例來說明以下,假如我們調用了以下代碼來對People對象數組peoples進行比較:
Arrays.sort(peoples);
在sort方法內部,實際上調用了類似下面這樣的代碼來比較People對象:
if (peoples[i].compareTo(peoples[j]) > 0) {
//若為true說明peoples[i] 大於peoples[j]
}
也就是說Arrays.sort方法內部調用了People對象的compareTo方法,那麼編譯器如何知道People類中確實定義了一個方法呢?若People類沒有實現Comparable介面,編譯器就只有檢查這個類是否實現了這個方法,這樣做無疑會增大開銷,若介面中的方法不只一個,開銷就更大了。而且需要比較的對象可能不只一個,假如後面又有Date對象、Job對象需要我們比較呢?如果每次調用相應對象的compareTo方法都要去檢查以下它究竟實現了這個方法沒有,將無形中增加很多本不必要的開銷
② java的介面是什麼意思介面具體能做什麼
java介面的用處主要體現在下面幾個方面:
(1)通過介面可以實現不相關類的相同行為,而不需要了解對象所對應的類。
(2)通過介面可以指明多個類需要實現的方法。
(3)通過介面可以了解對象的交互界面,而不需了解對象所對應的類。
類描述了一個實體,包括實體的狀態,也包括實體可能發出的動作。
介面定義了一個實體可能發出的動作。但是只是定義了這些動作的原型,沒有實現,也沒有任何狀態信息。
所以介面有點象一個規范、一個協議,是一個抽象的概念;而類則是實現了這個協議,滿足了這個規范的具體實體,是一個具體的概念。
從程序角度,簡單理解,介面就是函數聲明,類就是函數實現。需要注意的是同一個聲明可能有很多種實現。
1、介面中定義類方法的原型,但是不能說是空方法,因為空方法的意思是有實現體,只不過實現體是空操作。實際上介面沒有定義任何實現體。具體的實現體都是在實現介面的類中,介面只是定義了這些方法的調用方式。
你當然也可以不用介面,直接在類裡面寫方法,但是如果你的一組方法需要在很多類里實現,那麼把它們抽象出來,做成一個介面規范,不是更好么?
2、一個類描述了一個實體,這個實體可能是一個復雜的對象,它的動作很多,如果把這些動作分類,用介面a定義其中的某一組動作,介面b定義其中的另外一組動作,這樣的結構,比較清楚。
這種方式具備了多繼承的優點,避免了多繼承的缺陷。實際上在歷史上,介面在很大程度上,是為了解決多繼承帶來的種種問題而設計出來的。
3、包中那些已定義的介面,怎麼知道那裡面定義了什麼方法。
介面里定義了方法的輸入輸出,這些都是協議,具體的實現都在每個類中。對於很多隻需要抽象介面的地方,不需要知道具體的類是什麼,只要這個類實現了這個介面就可以了。
③ java中什麼是介面介面的作用是什麼
java介面:
1、Java語言中存在的結構,有特定的語法和結構。
2、Java語言中一個類所具有的方法的特徵集合,是一種邏輯上的抽象。
java介面作用:
1、利於代碼的規范
這樣做的目的一方面是為了給開發人員一個清晰的指示,告訴他們哪些業務需要實現;同時也能防止由於開發人員隨意命名而導致的命名不清晰和代碼混亂,影響開發效率。
2、有利於對代碼進行維護
可以一開始定義一個介面,把功能菜單放在介面里,然後定義類時實現這個介面,以後要換的話只不過是引用另一個類而已,這樣就達到維護、拓展的方便性。
3、保證代碼的安全和嚴密
一個好的程序一定符合高內聚低耦合的特徵,能夠讓系統的功能較好地實現,而不涉及任何具體的實現細節。這樣就比較安全、嚴密一些,這一思想一般在軟體開發中較為常見。
(3)java介面詳解擴展閱讀:
關於java介面的使用規范:
1、介面中可以定義常量,不能定義變數,介面中的屬性都是全局靜態常量,介面中的常量必須在定義時指定初始值。
2、 介面中所有的方法都是抽象方法,介面中方法都會自動用public abstract 修飾,即介面中只有全局抽象方法。
3、 介面不能實例化,介面中不能有構造。
4、 介面之間可以通過extends實現繼承關系,一個介面可以繼承多個介面,但介面不能繼承類。
5、 介面的實現類必須實現介面的全部方法,否則必須定義為抽象類。
參考資料來源:網路:java介面
④ java中介面的理解
我看到過一個關於介面的描述:
介面實際上是表示一種能力,你可以看看jdk中的一些介面,比如說
cloneable
runable
等等,就是告訴你這個對象可以克隆,這個對象能夠啟動線程。
多重繼承嘛,可以理解為這個類有多重能力。
⑤ java介面的介紹
Java介面是一系列方法的聲明,是一些方法特徵的集合,一個介面只有方法的特徵沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為(功能)。兩種含義:一,Java介面,Java語言中存在的結構,有特定的語法和結構;二,一個類所具有的方法的特徵集合,是一種邏輯上的抽象。前者叫做「Java介面」,後者叫做「介面」。
⑥ java中的介面有什麼作用
1、定義介面的重要性:在Java編程,abstract class 和interface是支持抽象類定義的兩種機制。正是由於這兩種機制的存在,才使得Java成為面向對象的編程語言。
2、定義介面有利於代碼的規范:對於一個大型項目而言,架構師往往會對一些主要的介面來進行定義,或者清理一些沒有必要的介面。這樣做的目的一方面是為了給開發人員一個清晰的指示,告訴他們哪些業務需要實現;同時也能防止由於開發人員隨意命名而導致的命名不清晰和代碼混亂,影響開發效率。
3、有利於對代碼進行維護:比如你要做一個畫板程序,其中裡面有一個面板類,主要負責繪畫功能,然後你就這樣定義了這個類。可是在不久將來,你突然發現現有的類已經不能夠滿足需要,然後你又要重新設計這個類,更糟糕是你可能要放棄這個類,那麼其他地方可能有引用他,這樣修改起來很麻煩。如果你一開始定義一個介面,把繪制功能放在介面里,然後定義類時實現這個介面,然後你只要用這個介面去引用實現它的類就行了,以後要換的話只不過是引用另一個類而已,這樣就達到維護、拓展的方便性。
4、保證代碼的安全和嚴密:一個好的程序一定符合高內聚低耦合的特徵,那麼實現低耦合,定義介面是一個很好的方法,能夠讓系統的功能較好地實現,而不涉及任何具體的實現細節。這樣就比較安全、嚴密一些,這一思想一般在軟體開發中較為常見。
⑦ JAVA中,介面是什麼
介面可以算是一種特殊的抽象類。
一個普通類里邊所有的方法都要有實現方式,哪怕是空實現
{
};
如果有沒有被實現的方法,也就是
方法後邊沒有{
},那麼這樣的方法叫抽象方法,這種類叫抽象類;
而如果一個類中的所有方法都是抽象的,那麼就是介面了;
但是介面中是不能定義有實現的方法的,就是介面中的方法必須全是抽象的。
⑧ Java介面的相關講解
Java中的介面是一系列方法的聲明,是一些方法特徵的集合,一個介面只有方法的特徵沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為(功能)。 介面的兩種含義:一,Java介面,Java語言中存在的結構,有特定的語法和結構;二,一個類所具有的方法的特徵集合,是一種邏輯上的抽象。前者叫做「Java介面」,後者叫做「介面」。
要搞懂介面,可以看下java編程思想這本書,還有就是自己多編程體會下,光看定義不行,需要大量實踐去體會他的好處和用法。希望我的回答對你有所幫助。
⑨ java中的介面到底是什麼
Java中的介面就是一個寫好方法,但方法沒有內容的類。
如:
class
A
{
public
int
getA() ;
public
int
getB()
;
}
這個類中還可以寫更多的方法,但是不能在方法中寫內容,這就是介面,也叫做介面類。
那麼你可能會覺得,這樣的話介面有什麼作用呢?
其實,介面的作用,就好像是一張購物單。
在開發一個工程中,當不同的程序員引用了這個介面,
就代表是他領到了這個購物單。
去購物的時候,就必須要按照這個購物單去購物。
而至於,如何獲得購物單中的商品,那麼就要考不同的程序員在方法中填寫不同的內容了。
這么做的一個好處就是,一個介面,可以讓很多程序員調用,
而可以互相不幹擾的去填寫方法內容,來完成不同的任務。
並且,在不同人去完成不同事情時,保證了方法名稱的一致性。
⑩ 誰知道Java中的介面是指什麼
一、什麼是介面
java介面(Interface),是一系列方法的聲明,是一些方法特徵的集合,一個介面只有方法的特徵沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為(功能)。
二、java中介面定義的一般形式:
[訪問控制符]interface <介面名> {
類型標識符final 符號常量名n = 常數;
返回值類型 方法名([參數列表])
}
下面我們例舉了幾種定義介面的方法:
方法一:
interface B {
//coding here !
}
public interface A extends B{
//coding here !
}
方法二:
abstract class C{
public C(){
}
}
abstract class D extends C{
public D(){
super();
}
}
方法三:
public interface A {
//coding here !
}
abstract class C implements A{
public C(){
}
}
方法四:
interface B {
//coding here !
}
public interface A extends B{
//coding here !
}
abstract class C implements A{
public C(){
}
}
class D extends C{
public D(){
super();
}
}
二、介面的特點
1、Java介面中的成員變數默認都是public,static,final類型的(都可省略),必須被顯示初始化,即介面中的成員變數為常量(大寫,單詞之間用"_"分隔)
2、Java介面中的方法默認都是public,abstract類型的(都可省略),沒有方法體,不能被實例化
3、Java介面中只能包含public,static,final類型的成員變數和public,abstract類型的成員方法
4、介面中沒有構造方法,不能被實例化
5、一個介面不能實現(implements)另一個介面,但它可以繼承多個其它的介面
6、Java介面必須通過類來實現它的抽象方法
7、當類實現了某個Java介面時,它必須實現介面中的所有抽象方法,否則這個類必須聲明為抽象類
8、不允許創建介面的實例(實例化),但允許定義介面類型的引用變數,該引用變數引用實現了這個介面的類的實例
9、一個類只能繼承一個直接的父類,但可以實現多個介面,間接的實現了多繼承.
這些都是Java的基礎知識你可以去一個叫做秒秒學的網站學習相關內容