2013-11-26 115 views
1

我不明白为什么日食希望我删除“;”并用“,”替换它。变量声明问题

numberOfTimes1 = numberOfTimes + numberOfDelayTimes; 

我猜这是一些简单的语法,我忘了。你能否解释一下为什么这样做以及如何解决这个问题。 整个程序

public class Spam { 


    public static void main(String[] args) { 
     //1- Taking an instance of Timer class. 
     Timer timer = new Timer("Printer"); 

     //2- Taking an instance of class contains your repeated method. 
     timeso t = new timeso(); 

     timer.schedule(t, 0, 10); 
    } 

} 
class timeso extends TimerTask { 
    //times member represent calling times. 
    private int times = 0; 
    int time = 6; //How long do you wish for the spamming to run? 
    int numberOfTimes = time * 100; 
    int delayTime = 5; //How long do you wish for the program to wait before spamming? 
    int numberOfDelayTimes = delayTime * 100; 
    numberOfTimes = numberOfTimes + numberOfDelayTimes; 
    String spam; 
    Random randomGenerator = new Random(); 

    public void run() { 
     times++; 
     if (times >= numberOfDelayTimes && times <= numberOfTimes+numberOfDelayTimes) { 

      try { 
       Robot typer = new Robot(); 
       //for(int x = 1;x <=randomGenerator.nextInt(5); x++){ 
       // spam = spam + randomGenerator.nextInt(10); 
       //} 
       byte[] bytes = "spam".getBytes(); 
       //byte[] bytes = spam.getBytes(); 
       for (byte b : bytes){ 
        int code = b; 
        // key code only handles [A-Z] (which is ASCII decimal [65-90]) 
        if (code > 96 && code < 123) code = code - 32; 
        typer.delay(10/bytes.length+1); 
        typer.keyPress(code); 
        typer.keyRelease(code); 
       } 
       if(times % (randomGenerator.nextInt(25)+1) == 0){ 
        typer.delay(10/bytes.length+1); 
        typer.keyPress(KeyEvent.VK_ENTER); 
        typer.keyRelease(KeyEvent.VK_ENTER); 
       } 
      } 
      catch (AWTException e){ 
      } 
     } else { 
      if (times >= numberOfTimes){ 
       try{ 
        Robot typer = new Robot(); 
        typer.delay(10); 
        typer.keyPress(KeyEvent.VK_ENTER); 
        typer.keyRelease(KeyEvent.VK_ENTER); 
       } catch(Exception e){ 

       } 
       //Stop Timer. 
       this.cancel(); 
      } 
     } 
} 
    } 

回答

3

你试图调用的代码行的方法或构造之外,这就是为什么Java编译器(不蚀)抱怨。在构造函数或方法中做这样的代码,而不是在类中裸体。事实上,你的timeso类中的所有代码都是不正确的,需要在方法或构造函数中。

注意:您需要学习Java命名约定并坚持使用它,包括以大写字母开头的类名和使用小写字母的方法和变量名。这样做会帮助其他人(我们!)更好地理解你的代码。

+0

我不能把声明代码放入运行,因为它会将numberOfTimes保留为1.我会在哪里放置代码? –

+0

@Cammy_the_block:在你尚未但需要创建的构造函数中。 –

+0

如果我在构造函数中有这些声明run()会如何访问它? –