java基础之:匿名内部类应用例子一

时间:2023-03-09 17:23:49
java基础之:匿名内部类应用例子一

一:接口

 package com.yeepay.sxf.testclassforinner;

 /**
* 回调接口.
* @author shangxiaofei
*
*/
public interface CallBack { public boolean process(Integer a); public boolean delete(Integer b);
}

二:业务类

 package com.yeepay.sxf.testclassforinner;
/**
* 业务类使用回调接口
* @author shangxiaofei
*
*/
public class PayMentService { public String payforMoney(Integer a,CallBack callBack){
System.out.println("PayMentService.payforMoney()"+a);
Integer m=a+100;
if(m>100){
boolean falg=callBack.process(m);
if(falg){
return "callBack.process"+m;
}else{
return "callBack.process"+m;
} }else{
boolean flag=callBack.delete(m);
if(flag){
return "callBack.delete"+m;
}else{
return "callBack.delete"+m;
}
}
}
}

三:控制类

 package com.yeepay.sxf.testclassforinner;
/**
* 测试类
* @author shangxiaofei
*
*/
public class TestController { private PayMentService payMentService=new PayMentService(); private String dd="sxf"; public void testPay(){ String aString=payMentService.payforMoney(100, new CallBack() { @Override
public boolean process(Integer a) {
String mString="";
if(a>100){
mString="sxf";
}
if(mString.equals(dd)){
return true;
}
return false;
} @Override
public boolean delete(Integer b) {
String mString="";
if(b<100){
mString="sxf";
}
if(mString.equals(dd)){
return true;
}
return false;
}
}); System.out.println("enclosing_type.enclosing_method()"+aString);
} public static void main(String[] args) {
TestController controller=new TestController();
controller.testPay();
}
}