Constructor Parameter Method ¶
Constructor Method๋ก ์ธ์คํด์ค๋ฅผ ๋ง๋ค๋, ๊ทธ๋ฆฌ๋ก ๋๊ฒจ์ค ํ๋ผ๋ฉํฐ๋ค์ ์๋กญ๊ฒ ๋ง๋ค์ด์ง ์ธ์คํด์ค๋ก ์ด๋ป๊ฒ ๊ฐ๊ณ ์ค๋๊ฐ? ๊ฐ์ฅ ์ ์ฐํ ๋ฐฉ๋ฒ์ ๊ฐ๊ฐ์ ๋ณ์์ ๋ํด setter๋ค์ ๋ง๋ค์ด ์ฃผ๋ ๊ฒ์ด๋ค. ์ฆ,
~cpp class Point { /* ... */ void setX(int x) { /* ... */ } void setY(int y) { /* ... */ } static Point* makeFromXnY(int x, int y) { Point* pt = new Point; pt->setX(x); pt->setY(y); return pt; } /* ... */ };์ด๋ ๊ฒ ๋๋๊ฒ์ด๋ค. ํ์ง๋ง ๋ณ์๊ฐ ๋ง์์ง์๋ก setter๋ค์ ๊ณ์ ๋์ด๋๋ค. ์ด๋ด๋์๋ ๋ชจ๋ ๋ณ์๋ฅผ ํ๋ฒ์ setํด์ฃผ๋ ํ๋์ ๋ฉ์๋๋ฅผ ๋ง๋ ๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋์ฌ๋ฅผ set์ผ๋ก ๋ช ๋ช ํด์ฃผ๊ณ ๋ณ์์ ์ด๋ฆ์ ๋ธ๋ ค์ค๋ค.
~cpp class Point { /* ... */ static Point* makeFromXnY(int x, int y) { Point* pt = new Point; pt->setXnY(x,y); return pt; } void setXnY(int x, int y) // smalltalk์์๋ setX:xNum y:yNum์ด๋ผ๋ ๋ฉ์ธ์ง๋ฅผ ์ฌ์ฉํ๋ค. { this->x = x; this->y = y; } /* ... */ };