取消或停止方法?

我真的是编程新手(主要是在OOP中),所以也许这不是要回答的问题,但是无论如何都会这样做,可以取消或停止方法吗?我需要取消该方法(A),以执行其他类似的方法(方法B),但具有不同的方面;当我使用另一种方法(B)进行迭代时,委托人(A)仍然在做他的事情,并且我需要停止它,有人可以帮我吗? 我的故事是关于使用timerTask在3个不同位置移动仙子的,当向导得到一个精灵时,仙女从天空消失并进入了一个“监狱”,然后我做一个仙女仍在天空中移动的条件。也有任何评论提高我的编码的接受度<3

//这是第一个通过窗口打开事件开始的方法

    public void moverHadaUno(){

TimerTask task = new TimerTask() {


        @Override

        public void run() 
       {
            switch(POJO.contadorHada1){
                    case 0:
                        hada1HbLabel.setLocation(POJO.PP_HADA1_X,POJO.PP_HADA1_Y);
                        hada1Label.setLocation(POJO.PP_HADA1_X,POJO.PP_HADA1_Y);
                        POJO.contadorHada1++;
                        System.out.println(hada1Label.getBounds());
                        break;

                    case 1:
                        hada1HbLabel.setLocation(POJO.SP_HADA1_X,POJO.SP_HADA1_Y);
                        hada1Label.setLocation(POJO.SP_HADA1_X,POJO.SP_HADA1_Y);
                        System.out.println(hada1Label.getBounds());
                        POJO.contadorHada1++;
                        break;

                    case 2:
                        hada1HbLabel.setLocation(POJO.TP_HADA1_X,POJO.TP_HADA1_Y);
                        hada1Label.setLocation(POJO.TP_HADA1_X,POJO.TP_HADA1_Y);
                        System.out.println(hada1Label.getBounds());
                        POJO.contadorHada1 = POJO.RESET;
                        break;
            } 
        }
    };
   if(POJO.conHada1 == true)
       task.cancel();
        Timer timer = new Timer();
    timer.schedule(task, 0, 2000);  
}

这个是用向导捕捉仙女的

    public void hitBox(){
    Rectangle hitBoxMago = magoLabel.getBounds();
    Rectangle Hada1Hb = hada1HbLabel.getBounds();

    if(hitBoxMago.intersects(Hada1Hb)){
        POJO.atraparHada1 = true;
        POJO.conHada1 = true;
    }
    else 
        POJO.atraparHada1 = false;
        POJO.conHada1 = false;}




private void capturarHada(){

    hitBox();

    if(POJO.atraparHada1 == true){
        hada1Label.setLocation(POJO.HADA1_CARCELX,POJO.HADA1_CARCELY);
        hada1HbLabel.setLocation(POJO.HB_CARCEL_HADAS_X,POJO.HB_CARCEL_HADAS_Y);
    }