"์๋ ํ์ธ์, ์๋ฏธ๊ณ ! ์ฌ๊ธฐ ๋น์ ์ ์ํ ์ถ๊ฐ ์ ๋ณด๊ฐ ์์ต๋๋ค."
"์ปดํ์ผ๋ฌ๊ฐ ์ค์ ๋ก ๋ชจ๋ ์ต๋ช ํด๋์ค๋ฅผ ์ผ๋ฐ ๋ด๋ถ ํด๋์ค๋ก ๋ณํํ๋ค๊ณ ์ด๋ฏธ ๋ง์๋๋ ธ์ต๋๋ค."
"๋ค. ๊ทธ๋ค์ ์ด๋ฆ์ด 1, 2, 3 ๋ฑ์ ์ซ์๋ผ๋ ๊ฒ๋ ๊ธฐ์ตํฉ๋๋ค."
"๊ทธ๋ ์ต๋๋ค. ํ์ง๋ง ์ฌ๊ธฐ์๋ ๋ ๋ค๋ฅธ ๋์์ค๊ฐ ์์ต๋๋ค."
"ํด๋์ค๊ฐ ๋ฉ์๋ ๋ด์์ ์ ์ธ๋๊ณ ํด๋น ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํด๋น ๋ณ์์ ๋ํ ์ฐธ์กฐ๊ฐ ์์ฑ๋ ํด๋์ค์ ์ถ๊ฐ๋ฉ๋๋ค. ์ง์ ํ์ธํ์ญ์์ค."
"์ฐ๋ฆฌ๋ ์ด๊ฒ์ผ๋ก ์์ํฉ๋๋ค:"
class Car
{
public ArrayList createPoliceCars(int count)
{
ArrayList result = new ArrayList();
for(int i = 0; i < count; i++)
{
final int number = i;
result.add(new Car()
{
public String toString()
{
return ""+number;
}
});
}
return result;
}
}
"๊ทธ๋ฆฌ๊ณ ์ปดํ์ผ๋ฌ๋ ๋ค์์ ์์ฑํฉ๋๋ค.
class Car
{
public ArrayList createPoliceCars(int count)
{
ArrayList result = new ArrayList();
for(int i = 0; i < count; i++)
{
final int number = i;
result.add(new Anonymous2 (number));
}
return result;
}
class Anonymous2
{
final int number;
Anonymous2(int number)
{
this.number = number;
}
public String toString()
{
return ""+ number;
}
}
}
"์์ ์ ์ดํดํ์ จ์ต๋๊น? ๋ด๋ถ ํด๋์ค์ ์ฝ๋๊ฐ ์คํ๋ ๋์ฏค์ด๋ฉด ๋ด๋ถ ํด๋์ค๋ ๋ฉ์๋์ ๋ก์ปฌ ๋ณ์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ฉ์๋๋ฅผ ๋ชจ๋ ์ข ๋ฃํ ์ ์์ต๋๋ค."
"์ด์ ๋ ๋ฒ์งธ ์์ ์ ๋๋ค. toString() ๋ฉ์๋๋ ์ ๋ฌ๋ ๋ณ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฅผ ์ํํ๋ ค๋ฉด ๋ค์์ด ํ์ํ์ต๋๋ค."
A) ์์ฑ๋ ํด๋์ค ์์ ์ ์ฅ
B) ์์ฑ์์ ์ถ๊ฐํ์ญ์์ค.
"์๊ฒ ์ต๋๋ค. ๋ฉ์๋ ๋ด๋ถ์ ์ ์ธ๋ ํด๋์ค๋ ํญ์ ๋ณ์์ ๋ณต์ฌ๋ณธ์ ์ฌ์ฉํฉ๋๋ค."
"์ ํํ!"
"๊ทธ๋ฌ๋ฉด ๋ณ์๊ฐ ์ต์ข ๋ณ์์ฌ์ผ ํ๋ ์ด์ ๊ฐ ์ดํด๊ฐ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณ์๊ฐ ๋ณ๊ฒฝ๋ ์ ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ค์ ๋ก ์๋ณธ์ด ์๋ ๋ณต์ฌ๋ณธ์ผ๋ก ์์ ํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ์๋ ๋ณ์์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ ์ด์ ๋ฅผ ์ดํดํ์ง ๋ชปํ ๊ฒ์ ๋๋ค. ๊ทธ๊ฐ ๊ทธ๊ฒ๋ค์ ๋ฐ๊พธ๋ ๊ฒ์ ๊ธ์งํด์ผ ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค."
"๊ทธ๋ ์ต๋๋ค. ๋ณ์๋ฅผ ์ต์ข ์ผ๋ก ์ ์ธํ๋ ๊ฒ์ ์ปดํ์ผ๋ฌ๊ฐ ํด๋์ค๋ฅผ ์์ฑํ๊ณ ๋ฉ์๋์ ์ ๋ฌํ๊ณ ์ฌ์ฉํ๋ ค๋ ๋ฉ์๋์ ๋ชจ๋ ๋ณ์๋ฅผ ์ ์ฅํ๋ ๋๊ฐ๋ก ์ง๋ถํด์ผ ํ๋ ์์ ๋๊ฐ์ธ ๊ฒ ๊ฐ์ต๋๋ค."
"๋์ํฉ๋๋ค. ์ต๋ช ์ ๋ก์ปฌ ํด๋์ค๋ ์ฌ์ ํ ๋งค์ฐ ๋ฉ์ง๋๋ค."
"๋ฉ์๋ ๋ด์์ ๋ก์ปฌ ํด๋์ค๋ฅผ ์ ์ธํ๊ณ ๊ทธ ์์ ์๋ ๋ฉ์๋์ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ปดํ์ผ๋ฌ๊ฐ ํด๋์ค์๋ ์ถ๊ฐํฉ๋๊น?"
"์, ํด๋์ค์ ํด๋น ์์ฑ์์ ์ถ๊ฐํฉ๋๋ค."
"๊ทธ๊ฒ์ด ๋ด๊ฐ ์๊ฐํ๋ ๊ฑฐ์ฃ ."
GO TO FULL VERSION