当我只是尝试使用 Java
编写一些程序时,我尝试使用final
变量,我知道final
变量必须在声明时进行初始化,但是在main方法内部它接受了final
没有初始化的变量。我不知道是什么原因。任何人都可以告诉我原因。
谢谢
码:
class name
{
final int b; //here shows error
public static void main(String args[])
{
final int a; // here no error... why?
System.out.println("hai");
}
}
对于 实例变量水平
最终变量只能初始化一次。
必须 在构造函数结束之前 初始化类级别的最终变量。
对于 本地(方法)级别
因此,基本上,如果您不使用局部最终变量,也可以跳过它的初始化。
如果变量处于实例级别,则必须在定义或构造函数主体中对其进行初始化。
在您的代码中,您有一个final int b
永远不会初始化的实例变量,因此会出现错误。
您还有一个final int a
从未使用过的局部变量。因此,该变量没有错误。
问题内容: print语句导致以下编译时错误, 局部变量f可能尚未初始化 如果Java中的原语已经具有默认值(float = 0.0f) ,为什么需要定义一个? 所以这有效 感谢大家! 问题答案: 因为它是一个局部变量。这就是为什么什么都没有分配的原因: 局部变量略有不同。编译器永远不会为未初始化的局部变量分配默认值。如果您无法在声明它的地方初始化本地变量,请确保在尝试使用它之前为其分配一个值。访
print语句会导致以下编译时错误, 局部变量f可能尚未初始化 如果Java中的原语已经有一个默认值(float=0.0f),为什么我需要定义一个呢? 所以,这是有效的 谢谢大家!
如果我在我的类中创建一个bool,就像一样,它默认为false。 当我在我的方法中创建相同的bool时,我得到一个错误“使用未分配的局部变量检查”。为什么?
下面的示例类无法编译: 此代码的编译错误消息是: 但是,对于包含以下方法的类,Java不会生成任何错误消息: 关于初始化及其要求,为什么Java对最终实例变量和最终局部变量的处理不同?谢谢
问题内容: 我写了下面的代码 因此,当我运行它时,它可以正常运行并打印输出“ Hello”。 但是,如果JVM规范要求该main方法应该是公开的,因为“否则它就看不到main”,那么它也不适用于该类吗?如果JVM在未声明为public时“看不到” Hello.main(),它将如何看到类A本身。 除了“因为规范这样说”以外,对此还有什么解释吗? 并且,如果JVM能够看到所有类和方法,因为它本身就是
问题内容: 为什么Java中的main方法总是需要参数?为什么我们每次都要写,而不是在使用任何参数时才写? 这样的方法会生成编译器错误。由于我们从不对main方法使用任何参数,因此应允许这样做。 这不是面试问题。编程时才想到。 问题答案: 基本上,有四个答案: 因为那是它的设计方式。是的,我知道这是一个循环的原因。但是关键是这就是它的样子,并且不会改变。因此,除非您打算设计自己的语言,否则这个问题