Java 回调函数的理解
???? 以下是我對java回調函數的理解,希望對各位有幫助。
簡而言之,假設有兩個類A與B,還有一個回調接口C(有一個c方法)。其中A類持有一個B類對象作為屬性和擁有一個a方法,并實現了接口C,所以A類中就有a、c兩個方法。B類中就僅有b方法。當外部程序調用A對象中的方法a時,a就會調用B類對象的b方法,b方法最后又調回A類中的c方法,此過程就是一個回調。
上面的解析有點抽象,下面我就用例子演示一下。
首先定義一個接口(即上面解析中的C角色):
Java代碼
package com.peng.callback;
public interface OnEndPlay {
public void endPlay(String program);//c方法
}
然后定義一個MediaPlayerService(即A角色)對象實現OnEndPlay(C角色):
Java代碼
package com.peng.callback;
public class MediaPlayerService implements OnEndPlay{
private MediaPlayer player=new MediaPlayer();
public void doPlay(String program)//a方法
{
player.play(this,program);
}
@Override
public void endPlay(String program) //c方法
{
System.out.println(program+":節目播放結束!");
}
}
在定義一個MediaPlayer (B角色):
Java代碼 收藏代碼
package com.peng.callback;
public class MediaPlayer {
public void play(OnEndPlay callback,String program)//b方法
{
int count=0;
while (count<10)
{
System.out.println(program+":正在播放。。。。");
count++;
try
{
Thread.sleep(1000);
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
callback.endPlay(program);
}
}
最后用一個測視類測試:
Java代碼
package com.peng.callback;
public class Test {
public static void main(String[] args)
{
final MediaPlayerService playService=new MediaPlayerService();
final String program="湖南衛視";
new Thread(new Runnable() {
@Override
public void run()
{
playService.doPlay(program);
}
}).start();
}
}
運行結果為:
湖南衛視:正在播放。。。。
湖南衛視:正在播放。。。。
湖南衛視:正在播放。。。。
湖南衛視:正在播放。。。。
湖南衛視:正在播放。。。。
湖南衛視:正在播放。。。。
湖南衛視:正在播放。。。。
湖南衛視:正在播放。。。。
湖南衛視:正在播放。。。。
湖南衛視:正在播放。。。。
湖南衛視:節目播放結束!
瘋狂軟件學習中心是一所Java人才的專業機構,它最核心的價值在于能讓應屆大學畢業生與企業無縫對接,課程設計與企業需求高度結合,使其在進入企業后能立即上手。
學真正Java技術,當然選瘋狂軟件Java培訓機構,打造國內高級Java人才
瘋狂軟件Java培訓優勢
1. Java是世界第一大編程語言,市場占有率達20%。
2.廣州最專業Java培訓機構,多年教學經驗。
3.學員技術牛就業率最好,就業薪資都在5000以上。
4.部分老師還是Java技術系列書籍的作者,由這樣的Java書籍原創作者講課可想而知課程條理清晰、講解清楚,知識面廣、深度足夠!
5.瘋狂軟件Java培訓課程以項目實戰帶動教學,上課打破傳統課堂模式,以實訓項目貫穿教學,帶領學生一起做企業真實項目。
瘋狂Java培訓專注軟件開發培訓,提升學員就業能力,重點提升實踐動手能力。
?
轉載于:https://www.cnblogs.com/gojava/p/3559136.html
總結
以上是生活随笔為你收集整理的Java 回调函数的理解的全部內容,希望文章能夠幫你解決所遇到的問題。