ヤン後彼女に結果を伝えるブラッシング、壁をペイントすることが、労働力を喜ばせるためにしたくないので、彼女は彼女の塗料は、学生が家の画家への鍵を取っ語っ助けるために学生に呼びかけ
教師と生徒の間の接触:コールバック・インタフェース
学生は、この接触を通じて教師を見つけることができるように2、教師はコールバックインタフェースを実装する必要があります
あなたは学生がコールバックインタフェースを登録することができますように、図3は、教師は、参照を取得する学生を求めて
4、学生はつまり、上院するようにタスク、加えて、あなたはまた、タスクが教師を配置することであるかを知る必要があり、入ってくるパラメータとしてコールバックインタフェースを渡す必要があり、連絡を誰が知っている必要があります
コードに〜何を是非!
朱~~~~~
図1に示すように、コールバックインターフェース
パブリックインターフェースコールバック{ ボイド処理(文字列結果)。 }
2、クラスの先生
パブリック クラス TeacherYang を実装するコールバック{ プライベートStudentHe studentHe; 公共TeacherYang(StudentHe studentHe){ この .studentHe = studentHe; } パブリック 無効 shuaQiang(最終文字列houseLocation){ System.out.printlnは(「ヤンの学生循環壁を磨くための方法ハウスの位置は、場所は次のとおりです。「+ houseLocation); 新しい新しいスレッド(新しい新しいRunnableを(){ @Override 公共 ボイドRUN(){
//ここにコールバック関数が登録され、登録を達成するためにコールバック関数をTeacherYang.this studentHe.getHouseLocation(TeacherYangを。この、houseLocation); } })スタート(); System.out.printlnは(「何学生がブラシを準備し、教師の送信位置を受けている!」); } @Override 公共 ボイドプロセス(文字列の結果){ 試み{ Thread.sleep(。* 1000年5 ); } キャッチ(InterruptedExceptionあるE){ e.printStackTrace(); } System.out.printlnは( "ホームティー...ヤンの学生から送信された情報を受信するための方法:" +結果+「ヤン満足の笑顔、私は考えた:より良いとお金を節約し...」); } }
3、学生のクラス
パブリック クラスStudentHe { 公共 空getHouseLocation(Callbackコールバック、文字列houseLocation){ System.out.printlnはは(「学生が送られた教師の位置を受け取った何を、場所は次のとおりです。」+ houseLocation +「----->が働き始め! " ); 試み{ のThread.sleep( * 1000年10 ); } キャッチ(InterruptedExceptionあるE){ e.printStackTrace(); } System.out.printlnは( "犬のように疲れブラシ3時間、学生ついに"!ブラッシング); 文字列ステータス =" '壁をブラッシング教師は、あなたが住むことができる!'、「; callback.process(ステータス); } }
4、試験クラス
パブリック クラスCallBackTest { 公共 静的 ボイドメイン(文字列[]引数){ StudentHe studentHe = 新しいStudentHe()。 TeacherYang teacherYang = 新しいTeacherYang(studentHe)。 teacherYang.shuaQiang( "湖南大学家属院" ); } }
5つの結果
若い教師は位置、壁の家の位置を磨く方法を学生に提供します:湖南大学ファミリーメンバーの中庭 学生が位置送っ教師の位置受け取った:湖南大学の家族の中庭を ----->は、仕事を始めました! それは、学生がブラシを開く準備ができて、先生の位置を受けてい送っ! 学生は最終的にはブラッシング何犬のように疲れて3時間、ブラシ! 学生はから送信された情報を受信する方法ホーム飲むお茶でヤン...:「先生は壁をブラッシング、あなたが住むことができます!「ヤンは笑顔を満足し、私は考えた:より良いとお金を節約します...