我写了我的代码,但现在我想改变看看发生了什么.
在对象类字段中,
static final String msg="here";
Run Code Online (Sandbox Code Playgroud)
并在同一个对象中,在一个methot
public void givemessage(int no)
{
System.out.println("look.");
System.out.println(msg);
}
Run Code Online (Sandbox Code Playgroud)
在这里,当我从main打电话时,它给出了"here".但
public void names(String[] names)
{
String msg=" - ";
System.out.println(msg);
}
Run Code Online (Sandbox Code Playgroud)
在这里,当我从主打电话给它 - ,而不是"这里"BUt它是最终的静态.它为什么会改变,为什么没有编译错误?或者我误解了所有的java?
您正在使用两个不同的变量,类变量是不可变的(最终)但本地变量不是,它们具有相同的名称但它们不相同.
如果你想验证这一点,请在主方法中输入类似MyClassName.msg =" - "的内容,你会看到编译器会抱怨.