本文目錄一覽:
- 1、JAVA中 接口是什麼? 接口的回調是什麼?
- 2、(Java)誰能給個「面向接口編程」的例子?
- 3、java如何快速簡便地實現語音通話?
- 4、JAVA下如何實現語音通信的功能 新手求教 謝謝
- 5、誰能給我舉兩個java接口的列子。
JAVA中 接口是什麼? 接口的回調是什麼?
Java接口是一系列方法的聲明,是一些方法特徵的集合,一個接口只有方法的特徵沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為(功能)。
兩種含義:一,Java接口,Java語言中存在的結構,有特定的語法和結構;二,一個類所具有的方法的特徵集合,是一種邏輯上的抽象。前者叫做「Java接口」,後者叫做「接口」。
接口回調是指:可以把使用某一接口的類創建的對象的引用賦給該接口聲明的接口變量,那麼該接口變量就可以調用被類實現的接口的方法。實際上,當接口變量調用被類實現的接口中的方法時,就是通知相應的對象調用接口的方法,這一過程稱為對象功能的接口回調。看下面示例。interface People{ void peopleList();}class Student implements People{ public void peopleList(){ System.out.println(“I』m a student.”);}}class Teacher implements People{ public void peopleList(){ System.out.println(“I』m a teacher.”);}}public class Example{ public static void main(String args[]){ People a; //聲明接口變量a=new Student(); //實例化,接口變量中存放對象的引用a.peopleList(); //接口回調a=new Teacher(); //實例化,接口變量中存放對象的引用a.peopleList(); //接口回調}}結果:I』m a student.I』m a teacher.再來看看向上轉型(upcasting)的概念。
用 Java 接口實現回調函數的等價功能熟悉 MS-Windows 和 X Window System 事件驅動編程模型的開發人員,習慣於傳遞在某種事件發生時調用(即「回調」)的函數指針。Java 的面向對象模型目前並不支持方法指針,Java 的接口支持提供了一種獲得回調的等價功能的機制。其技巧就是:定義一個簡單接口,並在該接口中聲明我們要調用的方法。假定我們希望在某個事件發生時得到通知。我們可以定義一個接口:InterestingEvent.javapackage org.zj.sample;public interface InterestingEvent { public void interestingEvent ();}這使得我們可以控制實現該接口的類的任何對象。因此,我們不必關心任何外部類型信息。發出事件信號的類必須等待實現了 InterestingEvent 接口的對象,並在適當時候調用 interestingEvent() 方法。EventNotifier.javapackage org.zj.sample;public class EventNotifier { private InterestingEvent ie; private boolean somethingHappened; public EventNotifier(InterestingEvent event) { ie = event; // 保存事件對象以備後用。 somethingHappened = false; // 還沒有要報告的事件。 } public void doWork() { if (somethingHappened) { // 檢查設置的謂詞。 ie.interestingEvent();// 通過調用接口的這個方法發出事件信號。 } } public void setHappened(){//設置謂詞。 somethingHappened=true; }}在上例中,使用 somethingHappened 謂詞來跟蹤是否應觸發事件。希望接收事件通知的代碼必須實現 InterestingEvent 接口,並將自身引用傳遞給事件通知程序。CallMe.javapackage org.zj.sample;public class CallMe implements InterestingEvent { @SuppressWarnings(“unused”) private EventNotifier en; public CallMe() { // 注意 EventNotifier (InterestingEvent event),應該傳遞一個接口類型。 // 而下面將this,即實現了InterestingEvent接口的CallMe實例傳遞給//EventNotifier。也就是所謂的接口回調了。 en = new EventNotifier(this); // 創建事件通知程序,並將自身引用傳遞給它。 } // 為事件定義實際的處理程序。
(Java)誰能給個「面向接口編程」的例子?
很簡單啊,我給你一個java類庫里的接口怎樣啊?是一個經常用到的MouseListener:
/*
* @(#)MouseListener.java 1.17 03/12/19
*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package java.awt.event;
import java.util.EventListener;
/**
* The listener interface for receiving “interesting” mouse events
* (press, release, click, enter, and exit) on a component.
* (To track mouse moves and mouse drags, use the
* codeMouseMotionListener/code.)
* P
* The class that is interested in processing a mouse event
* either implements this interface (and all the methods it
* contains) or extends the abstract codeMouseAdapter/code class
* (overriding only the methods of interest).
* P
* The listener object created from that class is then registered with a
* component using the component’s codeaddMouseListener/code
* method. A mouse event is generated when the mouse is pressed, released
* clicked (pressed and released). A mouse event is also generated when
* the mouse cursor enters or leaves a component. When a mouse event
* occurs, the relevant method in the listener object is invoked, and
* the codeMouseEvent/code is passed to it.
*
* @author Carl Quinn
* @version 1.17, 12/19/03
*
* @see MouseAdapter
* @see MouseEvent
* @see a href=””Tutorial: Writing a Mouse Listener/a
* @see a href=””Reference: The Java Class Libraries (update file)/a
*
* @since 1.1
*/
public interface MouseListener extends EventListener {
/**
* Invoked when the mouse button has been clicked (pressed
* and released) on a component.
*/
public void mouseClicked(MouseEvent e);
/**
* Invoked when a mouse button has been pressed on a component.
*/
public void mousePressed(MouseEvent e);
/**
* Invoked when a mouse button has been released on a component.
*/
public void mouseReleased(MouseEvent e);
/**
* Invoked when the mouse enters a component.
*/
public void mouseEntered(MouseEvent e);
/**
* Invoked when the mouse exits a component.
*/
public void mouseExited(MouseEvent e);
}
接口與類的寫法差不多,這個接口放在MouseListener.java(稱為一個編輯單元)里.
java如何快速簡便地實現語音通話?
直接接入第三發的SDK就好,試試ZEGO即構科技的語音SDK吧,直接通過四行代碼就可以接入,不用自己研發,省時省力。
並且這個的語音通話功能很好,沒有卡頓、延遲、回聲等情況,音質很細膩。
JAVA下如何實現語音通信的功能 新手求教 謝謝
我做過SIP的開發.sip是一種類似http的協議,比H323簡單多了.特別適合JAVA開發.
準備工具:java環境,開發工具eclipse等,測試工具ethereal必要的.
SIP:會話初始化協議(Session Initiation Protocol)
會話初始化協議(SIP)是一種應用層控制協議,它可用來創建、修改或終止多媒體會話,如互聯網電話呼叫。 SIP 能夠邀請參與者加入已存在的會話,如組播會議。現有的會話中可以添加或刪除媒體。 SIP 支持名稱映射和重定向服務,其支持用戶移動性。不管用戶網絡位置在哪,用戶只需維持單一外部可視標識符。
SIP 在五個方面支持創建和終止多媒體通信:
用戶定位:決定用於通信的終端系統的確定;
用戶可用性:決定被叫方是否願意加入通信;
用戶能力:媒體和媒體參數的確定;
呼叫建立:「響鈴「,主叫方和被叫方的會話參數的建立;
呼叫管理:包括傳輸和終止會話、修改呼叫參數和調用服務。
SIP 可以結合其它 IETF 協議來建立完善的多媒體結構,如提供實時數據傳輸和服務質量(QOS)反饋的實時傳輸協議(RTP)、提供流媒體發送控制的實時流協議(RTSP)、為公用交換電話網絡(PSTN)提供網關控制的媒體網關控制協議(MEGACO),以及描述多媒體會話的會話描述協議(SDP)。因此, SIP 需要與其它協議協同作用來為用戶提供完善的服務。然而 SIP 的基本功能和操作並不依賴於這些協議。
SIP 提供了一組安全服務,包括防止拒絕服務攻擊、認證(用戶對用戶和代理對用戶)、完整性保護和加密及隱私服務。
SIP 同時支持 IPv4 and IPv6 。關於互聯網電話會話, SIP 做如下工作:
通過 SIP 地址識別主叫方和被叫方。當建立一個 SIP 呼叫時,主叫方首先定位適合的服務器,然後發出一個 SIP 請求。最通常的 SIP 行為是邀請。 SIP 請求會被代理重定向或者觸發一系列的新 SIP 請求,而不是直接到達目的被叫方。用戶可以通過 SIP 服務器註冊他們的位置。 SIP 地址 (URL) 可以嵌入到網頁中,因此只要點擊一下就可以和對方建立呼叫會話。
誰能給我舉兩個java接口的列子。
在java中,接口被看作是一種特殊的類。但是不能用new操作符創建接口的實例
它可以用來解決不是繼承於同一個父類的兩個類的多態實現。
public interface eatable
{
public void howToEat();
}
public class apple implements eatable
{
public void howToEat()
{
System.out.println(“eat directly”);
}
}
public class pig implements eatable
{
public void howToEat()
{
system.out.println(“cooked to eat”);
}
}
然後我們可以直接定義一個
eatable 的變量
例如eatable a = new apple()
a.howToEat();
a = new pig();
a.howToEat();
你就可以看到好處了
————————————————————
新浪微博:java_learner
給你不一樣的java資料更新
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/290769.html