拳头的输出System.out.println()与第二个不一样System.out.println()
可能是什么原因?
public class swapex{
public static int var1, var2;
public void badSwap(int var1, int var2){
int temp = var1;
this.var1 = var2;
this.var2 = temp;
System.out.println("var1 " + var1 + " var2 "+ var2);
}
public static void main(String args[])
{
swapex sw= new swapex();
sw.badSwap(10,20);
System.out.println("var1 " + var1 + " var2 "+ var2);
}
}
Run Code Online (Sandbox Code Playgroud)
第一个是输出参数值,第二个是输出静态字段.
让我们看看相关值的所有含义.
public void badSwap(int var1, int var2){
Run Code Online (Sandbox Code Playgroud)
var1并且var2是传递给方法的参数.
int temp = var1;
Run Code Online (Sandbox Code Playgroud)
temp设置为传递给var1.
this.var1 = var2;
Run Code Online (Sandbox Code Playgroud)
静态字段var1设置为传入var2.这种风格很差,因为它不必要地混淆.如果你有理由使用静态,写swapex.var1.
this.var2 = temp;
Run Code Online (Sandbox Code Playgroud)
同样,正在设置静态字段.
System.out.println("var1 " + var1 + " var2 "+ var2);
Run Code Online (Sandbox Code Playgroud)
当地人正在印刷.
回到主,行:
System.out.println("var1 " + var1 + " var2 "+ var2);
Run Code Online (Sandbox Code Playgroud)
解析为静态字段,因为没有带有这些名称的堆栈变量.再次,这也是糟糕的风格.你会用swapex.var1和swapex.var2.
因此,它们打印方式不同的原因是您首先打印原始未刷新的参数,然后打印交换(反向参数)静态字段.
| 归档时间: |
|
| 查看次数: |
283 次 |
| 最近记录: |