编译时cmd显示找不到符号thread.boot=false?什么情况?

我是一名java初学者,今天下午写了个程序是这样的:

import java.util.*;
public class TestPoint
{
public static void main(String[] args)
{
MyThread thread= new MyThread();
thread.start();
try{Thread.sleep(10000);}
catch(InterruptedException e){}
thread.boot=false;
Thread.sleep(10000);
thread.in
}
}

class MyThread extends Thread
{
Boolean boot=true;
public void run()
{
Boolean boot=true;
while(boot)
{
System.out.println("==="+new Date()+"===");
try{
sleep(1000);
}
catch(InterruptedException e)
{
return;
}
}
}
}

编译时cmd显示找不到符号thread.boot=false;
我想是因为我把boot这个变量放在了Mythread类的run方法中的缘故。
我把run方法中对布尔值boot的定义语句放到了run方法的外面,编译就能通过了。
所以现在我想问,如果我就是想把boot变量在run方法中定义,我在主函数中不能通过thread.boot这种方式引用该变量,那么,我该通过什么方式引用该变量呢?

慕哥9229398
浏览 137回答 2
2回答

隔江千里

你试试将fetchDictionary方法写到类GraduateResearch1_5里面,在类GraduateResearch1_5中声明私有变量A、B、C,将在main函数中要做的事放到构造函数中去完成,main函数调用构造函数,形如以下,希望可以帮到你。public class GraduateResearch1_5{private int A,B,C,D,E;public GraduateResearch1_5(){原来要放到main函数中去做的}public static void main(String args[]) {GraduateResearch1_5 gr = new GraduateResearch1_5();}public static void fetchDictionary(String s) {这里变量A、B、C应该就可以用了s1[A][B][C] = s.substring(0, i);......}}

千巷猫影

方法中的变量叫局部变量,顾名思义这变量只能在这个方法中使用;在方法中定义一个变量,却想在方法外面访问这个变量是不可能的
打开App,查看更多内容
随时随地看视频慕课网APP