相关疑难解决方法(0)

为什么局部变量没有在Java中初始化?

有没有理由为什么Java的设计者觉得局部变量不应该被赋予默认值?说真的,如果实例变量可以给出一个默认值,为什么我们不能对局部变量做同样的事情呢?

它也会导致问题,如本评论中对博客文章的解释:

这个规则在尝试关闭finally块中的资源时最令人沮丧.如果我在try中实例化资源,但尝试在finally中关闭它,我会收到此错误.如果我在try之外移动实例化,我会收到另一个错误,指出它必须在try中.

很沮丧.

java variables initialization

96
推荐指数
7
解决办法
7万
查看次数

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

考虑一下:

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"
    }

}
Run Code Online (Sandbox Code Playgroud)

我不明白."b"永远不会被初始化,但会产生与"c"相同的运行时错误,这是一个编译时错误.为什么局部变量和成员之间存在差异?

编辑:让会员私密是我最初的意图,问题仍然存在......

java oop variables

28
推荐指数
3
解决办法
2万
查看次数

标签 统计

java ×2

variables ×2

initialization ×1

oop ×1