【发布时间】:2010-04-06 05:21:15
【问题描述】:
第一个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);
}
}
【问题讨论】:
-
这还能编译吗?
this.var1是什么?var1是一个 static 类变量,是一个局部参数,而不是实例成员。无论如何,this.var1的游戏是本地的,什么都不做,因为你打印的是val1,而不是this.var1。 -
Kobi、this.var1 和 main 中的 var1 都是指静态字段。这绝对是一种糟糕的风格。
-
真的吗?
this适用于静态字段?我学Java的时候是swapex.var1... -
提示:类名以大写字母开头。一目了然地区分类/方法/变量很方便,它会避免你从其他程序员那里得到奇怪的外观。