자판기를 만드는 마지막 강의로, 순서도와 이용하여 코드 구현체를 만드는 강의입니다. 지금까지의 강의를 자기것으로 만들었다면 충분히 코드 구현체를 만들 수 있습니다. 마지막까지 힘내봅시다!
실습도구 9번라인에서 beverageStock을 final로 선언했는데 40번라인에서 값변경이 어떻게 가능한건가요? final은 값 변경이 불가능하게 하는거 아니였나요?
안녕하세요. 코드라떼입니다 :) final int[] beverageStock = {4, 3, 2}; 해당 코드를 말씀하신 것으로 보입니다. final로 선언된 변수는 변수의 값이 지정되면 그 이후에 값 변경이 불가능한 것이 맞습니다. 다만 여기서 헷갈리지 말아야 할 부분은 int[]에 저장되는 값은 배열의 값이 아니라 '배열의 값을 저장하고 있는 공간'의 참조값입니다. 그러므로 '배열 공간에 저장되는 값'과 '배열 공간의 위치값'을 저장하는 변수와 분리해서 생각해야 합니다. ps. 참조값에 대한 부분은 '[심화] 배열과 메모리'에서 확인하실 수 있습니다. 감사합니다.
Code Run을 통해 코드를 실행해보세요. root$에 입력을 하여 자판기에게 명령을 내려보세요.
자판기를 만드는 마지막 강의로, 순서도와 이용하여 코드 구현체를 만드는 강의입니다. 지금까지의 강의를 자기것으로 만들었다면 충분히 코드 구현체를 만들 수 있습니다. 마지막까지 힘내봅시다!
실습도구 9번라인에서 beverageStock을 final로 선언했는데 40번라인에서 값변경이 어떻게 가능한건가요? final은 값 변경이 불가능하게 하는거 아니였나요?
안녕하세요. 코드라떼입니다 :) final int[] beverageStock = {4, 3, 2}; 해당 코드를 말씀하신 것으로 보입니다. final로 선언된 변수는 변수의 값이 지정되면 그 이후에 값 변경이 불가능한 것이 맞습니다. 다만 여기서 헷갈리지 말아야 할 부분은 int[]에 저장되는 값은 배열의 값이 아니라 '배열의 값을 저장하고 있는 공간'의 참조값입니다. 그러므로 '배열 공간에 저장되는 값'과 '배열 공간의 위치값'을 저장하는 변수와 분리해서 생각해야 합니다. ps. 참조값에 대한 부분은 '[심화] 배열과 메모리'에서 확인하실 수 있습니다. 감사합니다.
Code Run을 통해 코드를 실행해보세요. root$에 입력을 하여 자판기에게 명령을 내려보세요.