"์๋ , ์๋ฏธ๊ณ !"
"๋ ๋ค๋ฅธ ์์ ์ฃผ์ ๋ ์ง์ญ ์์ ์ ๋๋ค ."
"๋ณด์๋ค์ํผ ๋ณ๋์ ํ์ผ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ํด๋์ค ๋ด๋ถ์๋ ํด๋์ค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ํ์ง๋ง ๊ทธ๊ฒ ๋ค๊ฐ ์๋๋๋ค. ํด๋์ค๋ ๋ฉ์๋ ๋ด์์๋ ์์ฑํ ์ ์์ต๋๋ค. ์ด๋ฌํ ํด๋์ค๋ฅผ ๋ก์ปฌ ํด๋์ค๋ผ๊ณ ํฉ๋๋ค. ์ผ๋ฐ์ ์ธ ๋ด๋ถ ํด๋์ค์ฒ๋ผ ์๋ํ์ง๋ง ์ ์ธ๋ ๋ฉ์๋ ๋ด์์ ์ฌ์ฉํ ์ ์์ต๋๋ค."
"ํ๋ฉด์ ๋ด:"
class Car
{
public ArrayListcreatePoliceCars(int count)
{
ArrayList result = new ArrayList();
class PoliceCar extends Car
{
int policeNumber;
PoliceCar(int policeNumber)
{
this.policeNumber = policeNumber;
}
}
for(int i = 0; i < count; i++)
result.add(new PoliceCar(i));
return result;
}
}
"์ ๊ทธ๋ฐ ์์ ์ด ํ์ํ๊ฐ์?"
"๋ชจ๋ ์์ฑ์์ ๋ฉ์๋๊ฐ ํฌํจ๋ ํด๋์ค๋ฅผ ๋ฉ์๋ ์์ ๋ฃ๋ ๊ฒ์ ์ฝ๋๋ฅผ ๋งค์ฐ ์ฝ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์ง ์์ต๋๊น?"
"๊ทธ๋ ์ต๋๋ค. ๋น์ ๋ง์ด ์ ๋์ ์ผ๋ก ์ณ์ต๋๋ค."
"๋ฉ์๋ ๋ด์์ ์ต๋ช ์ ๋ด๋ถ ํด๋์ค๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ํด๋์ค์๋ ํ ๊ฐ์ง ์์ ์ด์ ์ด ์์ผ๋ฏ๋ก ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ฉ์๋ ๋ด์์ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค."
"๋ฉ์๋ ๋ด์์ ์ ์ธ๋ ํด๋์ค๋ ํด๋น ๋ฉ์๋์ ์ง์ญ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค."
class Car
{
public ArrayListcreatePoliceCars(int count)
{
ArrayList result = new ArrayList();
for(int i = 0; i < count; i++)
{
final int number = i;
result.add(new Car()
{
int policeNumber = number;
});
}
return result;
}
}
"ํ์ง๋ง ํ ๊ฐ์ง ์ ํ์ด ์์ต๋๋ค. ๋ณ์๋ ยซ์ฝ๊ธฐ ์ ์ฉยป์ด๋ฏ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค."
"์ ํ ์ฌํญ์ด ์กด์ฌํ๋ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค."
"๋ฉ์๋ ๋ด์์ ์ ์ธ๋ ํด๋์ค๋ final ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ธ๋ ๋ฉ์๋์ ๋ณ์์๋ง ์ก์ธ์คํ ์ ์์ต๋๋ค. ์์ ์์์ i ๊ฐ์ policeNumber์ ์ฆ์ ํ ๋นํ ์ ์์์ ์ ์ ์์ต๋๋ค. ๋์ ๋จผ์ ๊ทธ๊ฒ์ ์ต์ข ๋ณ์ ๋ฒํธ."
"๋ฉ์๋์ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ์ ๋ง ๋ฉ์ง ์ผ์ ๋๋ค. ์ ๋๋ก ๊ฐ์ฌํ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ํ์ง๋ง ๋ณ์๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค๋ ๊ฒ์ด ๋๋ฌด ์ํ๊น์ต๋๋ค."
"์ค๋ ์๋ฆฌ๊ฐ ๋น์ ์ด ๊ทธ๊ฒ๋ค์ ๋ฐ๊ฟ ์ ์๋ ์ด์ ๋ฅผ ์ค๋ช ํ ๊ฒ์ ๋๋ค. ๊ทธ๋์ ์ ๋ ํ ์๊ฐ ์ ๋ ๋ฎ์ ์ ์๋ฌ ๊ฐ ๊ฒ์ ๋๋ค."
"์์, ํด. ์ฌ๋ฏธ์๋ ์์ ๊ณ ๋ง์."