最小数量的 static

  • 5
  • 已锁定
锻炼大脑是很有用的,而这最好通过拼图游戏来完成。但是因为我们是程序员,所以我们将拼图游戏放入代码中。现在开始吧:对于此任务,你需要放入使代码开始工作和程序成功完成所需的最小数量的 static 修饰符。
无法完成此任务,因为你尚未登录。
评论 (10)
  • 受欢迎
你必须先登录才能发表评论
远方
级别 15 ,United States of America,United States
24 六月 2022, 07:55
因为main方法直接调用了method1方法,所用method1是静态方法。method1方法直接调用了method2方法,所以method2方法也是静态方法。因为method2方法调用method3方法进行了实例化,所有method3方法是非静态方法。method3方法直接调用了method4方法,按道理来说method4也应该是静态方法,但是method3本身是非静态方法,非静态方法是可以直接调用非静态方法的,所以method4方法可以是非静态方法。又因为method4方法直接使用了step变量,这说明step变量为静态变量。这样理解是对的吗
z18335776829
级别 7 ,China,China
21 三月, 12:16
method4方法 调用了 step++; 此时step可以是static变量也可以是实例变量 关键在于 后面 if( step > 1 ) 如果step不是static则会导致: 1. step为实例变量, 2. 每次都会因为method3方法中使用new关键字创建一个新的实例, 3. 新实例中的step初始化为0, 4. 在method4方法内将新的实例变量 step++ 更新为 1 5. (step > 1) 条件无法成立所以无法退出 会一直执行 main(null) 这导致程序一直在嵌套执行 main方法一直无法结束, main方法快结束时又执行一次main方法 每次都在将要结束时再次执行. 会导致当前程序由于main方法嵌套执行太多次, 每次执行main方法都要分配内存导致内存不足 将step设置为static时 在第二次执行main方法时 便会使得step在第二轮执行中从1更新为2 满足条件并结束程序
z18335776829
级别 7 ,China,China
21 三月, 12:22
并不是因为method4方法直接使用step变量 就说明step是静态变量 首先: 静态变量会在类加载后立即被加载进入static内存中 此时没有任何对象被创建 static关键字声明的变量和方法 可以直接使用 类名.标识符 来访问 使用new关键字创建的实例在访问 static变量时 会去类中查找 (当然也可以直接使用 类名.static变量名 来访问)
诸葛靓
级别 11 ,China
8 五月 2021, 09:43
if step is static. method4 use step , why isn`t it static?
晏楚
级别 20 ,San Mateo
7 六月 2021, 02:05
非静态方法可以访问静态变量
durtain
级别 16 ,Chongqing,China
19 四月 2021, 02:15
Why isn't the method4 static?
wedfrgt
级别 8 ,China
24 二月 2021, 14:01
I found out I couldn't
Yun Liu
级别 11 ,Warrington
3 一月 2021, 02:59
Why isn't the method3 static?
暮鼓晨钟
级别 13 ,Beijing,China
10 三月 2021, 04:38
new Solution()实例化了一个对象 method3是个实例方法所以不用加static
rojack
级别 16 ,Chongqing,China
4 三月 2020, 08:16
any idea?