当前位置: 首页 > 面试题库 >

Java中未初始化的变量和成员

陆海阳
2023-03-14
问题内容

考虑一下:

public class TestClass {

    private String a;
    private String b;

    public TestClass()
    {
    a = "initialized";
    }

    public void doSomething()
    {
    String c;

        a.notify(); // This is fine
    b.notify(); // This is fine - but will end in an exception
    c.notify(); // "Local variable c may not have been initialised"
    }

}

我不明白 “ b”从不初始化,但会给出与“ c”相同的运行时错误,这是编译时错误。为什么局部变量和成员之间存在差异?

编辑:将成员设为私有是我的初衷,但问题仍然存在…


问题答案:

确定分配的规则非常困难(请阅读JLS第三版的第16章)。在字段上强制执行明确分配是不现实的。就目前而言,甚至可以在初始化最终字段之前观察它们。



 类似资料:
  • 我在这里看到过类似的问题,如果这看起来像是重复的,我很抱歉,但是类似问题的答案对我没有帮助。所以我有一个方法,它是类的一部分。这里是: 错误表明变量min可能尚未初始化。我不明白这怎么可能是真的。我觉得变量不可能不在for循环之外初始化。请帮忙。谢谢

  • 问题内容: 我的Java程序中出现以下错误: Java变量未初始化错误…错误:变量nam和r未初始化位置类子级 但是并且已经初始化,但是我仍然遇到相同的错误。 问题答案: 不要获取 默认值 ,应在使用它们之前对其进行初始化,并使用main中的默认值进行初始化,这样就可以了。 顺便说一句,考虑为您的类和变量命名是有意义的。

  • 本文向大家介绍tensorflow 初始化未初始化的变量实例,包括了tensorflow 初始化未初始化的变量实例的使用技巧和注意事项,需要的朋友参考一下 今日在Stack Overflow上看到一个问如何只初始化未初始化的变量,有人提供了一个函数,特地粘贴过来共大家品鉴: 通过tf.global_variables()返回一个全局变量的列表global_vars, 然后以python列表解析式的

  • 我有以下Java代码: 但是,当我运行它时,它会抛出以下错误: 我在do之前初始化了变量。while 循环,并在 try. 中设置值。捕获循环。似乎尚未设置该变量。抱歉,如果这是一个相当基本的问题,但我似乎无法弄清楚。

  • 我正在研究Euler Problem 9项目,其中说明: 毕达哥拉斯三元组是由三个自然数组成的集合 例如,3^2 4^2=9 16=25=52。 确实存在一个毕达哥拉斯三重态,其bc=1000。查找产品abc。 以下是我到目前为止所做的: 当我运行代码时,会出现以下错误: 注意:我的每个变量(a、b和c)都有不同的行号。 我想当我声明a、b和c为整数时,如果不赋值,默认值是0。 即使不是这样,在我