这个Java程序的运行结果是几?为什么?
展开全部
同学 这个代码有错误 main方法 是静态的 它不能使用 非静态的内部类 如果想使用的话 把apple类定义为静态的吧
追问
那结果是多少?
追答
这么给你说吧
你把apple定义为静态的内部类
在main函数中就可以直接由外部类定义了 (因为你的main是静态的 所以只能即那个apple定义为静态的 这个你不要有疑问 一般情况下apple可以定义为非静态的)
你可能疑问 为什么输出的x值还为 构造函数中的值 我告诉你 这个值其实已经+1了 但是线程的执行的是需要准备时间的 这个时候你的主线程(也就是你的主函数已经执行了System.out.println(a.x))而咱们的线程 还没执行到x=x+1呢 所以输出的值没有改变
其实已经改变了 这个你不用疑问
如果想验证的话 可以晚些输出这个值 比如在a.start 和System.out.println(a.x)之间加一个循环 最好多循环点 就有可能出现你要的结果 但是也不一定哦 因为不知道 具体这个线程准备的时间是否大于 你循环的执行的时间
如果有疑问 欢迎再提问
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询