构造方法作用就是对类进行初始化。 如果你没有定议任何构造方法的形式,程式会为你取一个不带任何参数的构造函数,那么你产生类的对像时只能用不带参数的方法,如:class a {}//没有任何构造函数。
构造方法就是与类同名的那个方法,它的作用是可以用来初始化,例子如下
class Person //人类{
public Person(String n,int a) //构造方法
{
name = n; age = a;
}
private string name;
private int age;
}
static void main(String[] args){
Person p = new Person("张三",14);//这就是作用
}
new一个对象的时候要用到构造函数,
例如Hello hello = new Hello();这时调用的是Hello的无参数构造方法;
Hello hello = new Hello("hi");这个是调用Hello有参数构造方法,
在JAVA中如果不写构造方法的话,会默认加上一个无参数的构造方法,但是如果已经有了一个有参数的构造方法,那么无参数的构造方法就不会默认被加上.
如果Hello类中已经有了一个有参数的构造方法,这时再使用 Hello hello = new Hello();来创建对象的时候就会出错,这就是为什么书上要强调写了有参数的构造方法就最好加一个无参数的构造方法.
@Component
public class ManagerTask implements ExecutionListener{
public ManagerTask(){
System.out.println("你好啊但是JFK的历史飞机打瞌睡了附近的考试零分");
}
@Override
public void notify(DelegateExecution execution) throws Exception {
// TODO Auto-generated method stub
}
public Boolean test(DelegateExecution execution,String code){
String s="1";
System.out.println(s);
// 获取流程变量
List<String> list = (List<String>) execution.getVariable("expenseTypeCodes");
if(list != null){
for (int i = 0; i < list.size(); i++) {
if(list.get(i).equals(code)){
return true;
}
}
}
return false;
}
构造方法得作用:
可以利用构造函数传参:
未被spring容器管理得类可以利用构造函数传参:
runtimeServiceImpl.getCommandExecutor().execute(new RollbackTaskCmd(todoTaskid, position, exeNodeId,
actHiActInstDao, actHiVarInstDao, actRuTaskDao));
public class RollbackTaskCmd extends NeedsActiveTaskCmd<Void> {
private static final long serialVersionUID = 1264547749014497759L;
private RollbackPosition _position;
private String _exeNodeId;
private ActHiActInstDao _actHiActInstDao;
private ActHiVarInstDao _actHiVarInstDao;
public RollbackTaskCmd(String taskId, RollbackPosition position, String exeNodeId, ActHiActInstDao actHiActInstDao,
ActHiVarInstDao actHiVarInstDao, ActRuTaskDao actRuTaskDao) {
super(taskId);
_position = position;
_exeNodeId = exeNodeId;
_actHiActInstDao = actHiActInstDao;
_actHiVarInstDao = actHiVarInstDao;
}
}