이것은 StackOverflow의 첫 번째 질문입니다. 이 문제의 코드입니다 :왜이 변수가 영향을 받습니까?
이public class ListStuff {
public static void main(String [] args) {
String[] randomNames = {"Herbie", "Jaco", "Pat", "Michael"};
String[] reversedNames = revertNames(randomNames);
for (int i = 0; i < reversedNames.length; i++) {
System.out.println(reversedNames[i]);
}
}
public static String[] revertNames(String[] s) {
for (int i = 0; i < s.length/2; i++) {
String tmp = s[s.length - 1 - i];
s[s.length - 1 - i] = s[i];
s[i] = tmp;
}
return s;
}
}
이 코드는 잘 실행하고 복귀로 reversedNames
변수 인쇄; 거기에 아무런 불만이 없습니다. 내 주요 관심사는, 그러나 내가 String[] reversedNames = revertNames(randomNames);
할 때, 변수 randomNames
도 되돌릴 가져옵니다. 나는 randomNames = blabla;
을 사용하여 randomNames
변수를 변경하지 않으므로 그 변수가 왜 인수로만 전달 되더라도 그 변수가 자체 버전으로 계속 변경되는지 확인하지 못합니다.
저는 약 1 년 동안 프로그래밍을 해왔고 변수 범위에 대한 지식은 매우 제한적입니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?
왜 downvote? – mc10
와우. 가장 빠른 응답, 위대한 애호가들, 나는 이것을보고 변이를 가지고 놀 것입니다. =) – user1114051
지금 투표를 변경했습니다 ... 초기 응답은이 문제에 대한 통찰력을 제공하지 못했습니다. +1 –