interfaceinjava
1.定義介面並實現介面
//定義一個介面
package cn.quad.testinterface;
public interface IFTest {
public void testIF();
}
//實現介面
package cn.quad.testinterface;
public class ImpIFTest implements IFTest {
public void testIF() {
System.out.println("Implement IFTest !");
}
}
//main函數,面向介面編程
package cn.quad.testinterface;
public class DemoMain {
private static void useIF(IFTest it) {
it.testIF();
}
public static void main(String []args) {
ImpIFTest iit = new ImpIFTest();
useIF(iit);
}
}
2.定義一個類,包含若乾重載方法
/**
* 重載所有基本類型的輸出方法
* Quad
* cn.quad.thinginginjava.ch05.answers.P.java
* 2007/10/15 15:57:20
*/
package cn.quad.thinginginjava.ch05.answers;
/**
* @author qiquan
*
*/
public class Ch0504P {
public void rint(boolean s) {
System.out.print(s);
}
public void rint(char c) {
System.out.print(c);
}
public void rint(double d) {
System.out.print(d);
}
public void rint(float f) {
System.out.print(f);
}
public void rint(int i) {
System.out.print(i);
}
public void rint(long l) {
System.out.print(l);
}
public void rint(Object o) {
System.out.print(o);
}
public void rint(String s) {
System.out.print(s);
}
public void rintln(boolean b) {
System.out.print(b);
}
public void rintln(char c) {
System.out.print(c);
}
public void rintln(double d) {
System.out.print(d);
}
public void rintln(float f) {
System.out.print(f);
}
public void rintln(int i) {
System.out.print(i);
}
public void rintln(long l) {
System.out.print(l);
}
public void rintln(Object o) {
System.out.print(o);
}
public void rintln(String s) {
System.out.print(s);
}
}
㈡ java.util.Collection The root interface in the collection hierarchy. A collection rep
Collection 層次結構 中的根介面。Collection 表示一組對象,這些對象也稱為 collection
的元素。一些 collection 允許有重復的元素,而另一些則不允許。一些 collection 是有序的,而另一些則是無序的。JDK
不提供此介面的任何直接 實現:它提供更具體的子介面(如 Set 和 List)實現。此介面通常用來傳遞
collection,並在需要最大普遍性的地方操作這些 collection。
包 (bag) 或多集合 (multiset)(可能包含重復元素的無序 collection)應該直接實現此介面。
所有通用的 Collection 實現類(通常通過它的一個子介面間接實現
Collection)應該提供兩個「標准」構造方法:一個是 void(無參數)構造方法,用於創建空 collection;另一個是帶有
Collection 類型單參數的構造方法,用於創建一個具有與其參數相同元素新的 collection。實際上,後者允許用戶復制任何
collection,以生成所需實現類型的一個等效 collection。盡管無法強制執行此約定(因為介面不能包含構造方法),但是 Java 平台庫中所有通用的
Collection 實現都遵從它。
此介面中包含的「破壞性」方法,是指可修改其所操作的 collection 的那些方法,如果此 collection 不支持該操作,則指定這些方法拋出
UnsupportedOperationException。如果是這樣,那麼在調用對該 collection
無效時,這些方法可能,但並不一定拋出 UnsupportedOperationException。例如,如果要添加的 collection
為空且不可修改,則對該 collection 調用 addAll(Collection)
方法時,可能但並不一定拋出異常。
一些 collection 實現對它們可能包含的元素有所限制。例如,某些實現禁止 null
元素,而某些實現則對元素的類型有限制。試圖添加不合格的元素將拋出一個未經檢查的異常,通常是 NullPointerException 或
ClassCastException。試圖查詢是否存在不合格的元素可能拋出一個異常,或者只是簡單地返回
false;某些實現將表現出前一種行為,而某些實現則表現後一種。較為常見的是,試圖對某個不合格的元素執行操作且該操作的完成不會導致將不合格的元素插入
collection 中,將可能拋出一個異常,也可能操作成功,這取決於實現本身。這樣的異常在此介面的規范中標記為「可選」。
由每個 collection 來確定其自身的同步策略。在沒有實現的強烈保證的情況下,調用由另一進程正在更改的 collection
的方法可能會出現不確定行為;這包括直接調用,將 collection 傳遞給可能執行調用的方法,以及使用現有迭代器檢查 collection。
Collections Framework 介面中的很多方法是根據 equals
方法定義的。例如,contains(Object
o) 方法的規范聲明:「當且僅當此 collection 包含至少一個滿足 (o==null ? e==null
:o.equals(e)) 的元素 e 時,返回 true。」不
應將此規范理解為它暗指調用具有非空參數 o 的 Collection.contains 方法會導致為任意的
e 元素調用 o.equals(e) 方法。可隨意對各種實現執行優化,只要避免調用 equals
即可,例如,通過首先比較兩個元素的哈希碼。(Object.hashCode()
規范保證哈希碼不相等的兩個對象不會相等)。較為常見的是,各種 Collections Framework 介面的實現可隨意利用底層 Object
方法的指定行為,而不管實現程序認為它是否合適。
此介面是 Java
Collections Framework 的一個成員。
從以下版本開始:
1.2
另請參見:
Set, List, Map, SortedSet, SortedMap, HashSet, TreeSet, ArrayList, LinkedList, Vector, Collections, Arrays, AbstractCollection
㈢ java介面內部類
題目的要求是:該嵌套類中有一個static方法,它將調用介面中的方法並顯示結果
請注意,這里是 方法,你在代碼中,介面中嵌套了一個 內部類,你寫個方法就可以調用了
至於:實現這個介面,並將這個實現的一個實例傳遞給這個方法 這個需求
可以考慮用反射來實現
㈣ implement the list interface in java是什麼意思
implement the list interface in java
用java實現列表界面
implement the list interface in java
用java實現列表界面
㈤ java問題輸入輸出設備介面IOInterface,具有兩個方法boolean in(int[] signal),int[] out(),拜託各
沒找到你聲明的類但是從字面猜第一個是判斷有無輸入信號,第二個不全沒法判斷
㈥ java in int 類型什麼意思
弄懂這個問題,你首先要知道兩個概念:協變(返回值可是是其派生類)、逆變(輸入參數可以是其基類)
這里的in對應的就是:逆變。如果有out對應的就是:協變
針對這個問題,這里in int errorCode 表示這里不僅可以輸入int類型,還可以輸入int的基類型
㈦ java實現介面格式是怎樣的
,B
{
inta;
intb;
publicJButtonTest()
{}
@Override
publicvoiddraw()
{
System.out.println("draw");
}
@Override
publicvoidprint()
{
System.out.println("print");
}
}
interfaceA
{
publicvoidprint();
}
interfaceB
{
publicvoiddraw();
}
㈧ 按理說一個非抽象類實現了一個介面不應該實現這個介面全部的方法嘛可是在think in java實現Comparator
真是很細心,這個問題從來沒有想過
Ojbect類中的equals
publicbooleanequals(Objectobj){
return(this==obj);
}
現在問題變成了為什麼Comparator要有
booleanequals(Objectobj);
方法
請一定要記住實現了Comparator方法,最好不要覆蓋equals方法
下面英文的大概意思是你覆蓋了Comparator的equals方法最好是不要把這個類的相關邏輯摻和進來,因為一個普通的類覆蓋了equals方法都會檢查某些屬性是否相等,但是比較器就應該比較比較器本身是否相等
In common java objects, we will decide two objects are equal by checking its one or more than one instance variables.
Form javaDoc Comparator
returntrue->thiscomparator.
Means we need to check for its business logic (This is what really makes two comparators objects equal)
Also from JavaDoc
Notethatitisalways*safenot*tooverrideObject.equals(Object).
Since the POJO class can have its own equals() which would check for some of its instance variables(Which makes it really unique). If we implement comparator interface in the same POJO class and provide the equals () for comparator then we cannot check equality for POJO class, vice versa. That is the reason it mentioned it's not to override equals().
As explained earlier this is to 'just to expand on the general contract of the method'. So that we would treat comparator equals() is different from POJO equals() .
下面是引用自另一篇文章:
The equals( ) method, shown here, tests whether an object equals the invoking comparator:
booleanequals(Objectobj)
obj is the object to be tested for equality. The method returns true if obj and the invoking object are both Comparator objects and use the same ordering. Otherwise, it returns false.
Overriding equals( ) is unnecessary, and most simple comparators will not do so.
如果覆蓋了Comparator是比較他們都是比較器,並且是使用相同的比較策略,所以一般不要覆蓋
再說了比較器本身的用途就是用來比較,某些模型不應該實現這個介面,為什麼Comparator要麻煩的寫出這個方法,是要告訴我們正確覆蓋這個equals方法的方式,但是由於Object中已經有這個這個方法的實現了,所以一般實現Comparator是不需要覆蓋這個equals方法的,覆蓋也是沒有意義的,所以thinking in java的作者就正確地沒有覆蓋這個可以不需要覆蓋的方法
㈨ 一個java問題,interface
d
abstract class可以有自己的數據成員,也可以有非abstarct的成員方法。而在interface只能夠有靜態的不能被修改的數據成員(也就是必須是static final的,不過在interface中一般不定義數據成員),所有的成員方法都是abstract的
㈩ 介面interface文件運行出現Exception in thread "main" Java.lang.NoSu。。。可以編譯成功
根據您的描述您是運行了一個介面,介面應該是無法運行的,一個類運行需要有一個靜態的main方法體。而介面只能有非靜態的抽象方法(沒有方法體),所以不可能成功運行。只能運行介面的實現。