gpt4 book ai didi

java - 为什么带有未初始化成员变量的类在java中可以编译?

转载 作者:行者123 更新时间:2023-12-01 23:11:55 25 4
gpt4 key购买 nike

这个问题是在测试中提出的。我想知道你对此有何看法。

私有(private)方法中使用的未初始化的局部成员变量(例如 b)。

“为什么它可以编译?”

编辑:

class Class
{
private int a=0; // this is an initialized member variable and I knew already that c# & java initializes all variables but that was NOT the question.
private int b; // to me this is an uninitialized member variable
private void Method()
{
b++; //no compiler error here in java. and the question was why is that so?
}
}

我不知道成员变量在java中被称为属性。我更感兴趣的是你对这个我觉得很奇怪的问题的看法。当然,编译器设计者决定这样做,但问题是为什么它是可编译的?我认为老师在质疑其基本原理。但我不再问老师奇怪的问题。不管怎样,谢谢您的回答。

最佳答案

“成员”是 C++ 中更常用的术语,但这里大概指的是实例变量。答案是:因为根据 Java 语言规范 ( http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.5 ),实例变量有一个默认值。 (与局部变量相反,局部变量没有默认值)

关于java - 为什么带有未初始化成员变量的类在java中可以编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21803033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com