关于优先局部变量

public class Exercises11 {	
	public static void main(String[] args){
		AllTheColorsOfTheRainbow atc = new AllTheColorsOfTheRainbow();
		atc.changeColor(8);
		System.out.println("atc.anIntegerRepresentingColors is = "+atc.anIntegerRepresentingColors);
		atc.changeTheHueOfTheColor(6);
		System.out.println("atc.newHue = " + atc.newHue);
	}
}

class AllTheColorsOfTheRainbow{
	int anIntegerRepresentingColors;
	int newHue = 0;
	void changeTheHueOfTheColor(int newHue){
		System.out.println("The color is: " + newHue);
	}
	int changeColor(int newColor) {
		return anIntegerRepresentingColors = newColor;		
	}
}


打印结果:

atc.anIntegerRepresentingColors is = 8
The color is: 6
atc.newHue = 0


在这段代码重 atc.newHue 的值为0 是因为  JAVA中优先局部变量的原因

从内存方面解释的话  int newHue = 0

和void changeTheHueOfTheColor(int newHue)

中两个 newHue 是指向的不同的内存地址

你可能感兴趣的:(java)