안녕하십니까 선생님. 수업 잘 듣고 있습니다. :)
다름이 아니라 14:09 에서 method 에서 a1과 a2가 스왑이 되었다고 하더라도, local 에서 바뀐 것이지, arr1 과 arr2 가 point 하고 있는 것을 못 건드린다고 하셨는데..
===> 이게 좀 헷갈리는 부분이에요. 이 경우는 a1 과 a2 가 바뀐 후, 그 내용을 (dereferencing) 바꾼다면 내용을 바꿀 수 있어요. 하지만 그냥 a1 과 a2의 주소만 바꾼 거기 때문에, 내용이 안바뀌죠 ^^ 이 부분을 가리켜 사람들은 '모든 것은 사실 pass by value 이다' 라고 말해요. reference 를 보내더라도, 그 '값', 즉 주소가 value 로 보내어진 거기 때문이죠. 주소를 받는것과 별개로, 받은 후 주소를 이용해 내용을 바꾸지 않는다면(a[0]=.. 이렇게) 원래 메인의 어레이들이 바뀌진 않겠죠.
이전에 pass by reference를 설명하실 때 array 와 같은 object의 경우 address 를 가질 뿐이고, 따로 코드를 가리키고 있기 때문에, method에서 바뀐 것이 main의 object에도 영향을 줄 수 있고, 따라서 return 없이도 method 만으로 main에 있는 object에 영향을 줄 수 있다고 하셨던거 같은데.. 제가 어느 부분을 잘 못 이해한건지 모르겠습니다..ㅠㅠ 제가 완전히 이해를 잘 못 한걸까요 ㅠㅠ..
===> 이건 잘 이해하고 있어요 ^^
또 같은 영상의 같은 부분에서, int temp = a1[i]; 이렇게 하셨는데.. array 같은 경우 integer 이렇게 assign 하더라도 passive casting이 되는건가요?
또 다른 object인 String의 경우 (당연히) integer로 casting이 불가능한데.. array는 list 형태라 가능 한 건가요..??
===> 그건 안되는 걸 보여주는 거였어요 ㅠ 이렇게 passive casting 은 가능하지 않아요 ^^