More Related Content
[0820 ์์ฌํธ]headfirst๋์์ธํจํด HolubOnPatterns/chapter2_2 Head first๋์์ธํจํด 1~13_ํฌ๋ฏผ_ํธ์ค [1B1]์ค์ํํธํ๋ก๊ทธ๋๋ฐ์ธ์ด [Dev rookie]designpattern What's hot (18)
แแ
ตแฐแแ
ต แแ
ฉแแแ
ณแซ แแ
ฉแแ
ณแแ
ก แแ
ฉแแแ
ณแซแแ
ฉแแ
ณแแ
ก ๊ฒ์ ๊ฐ๋ฐ์ ์์ฃผ ์ฌ์ฉ๋๋ ๋์์ธ ํจํด Effective c++ chapter7_8_9_dcshin Exception log practical_coding_guide, ์์ธ์ ๋ก๊ทธ ์ฝ๋ฉ ์ค์ฉ ๊ฐ์ด๋ Working Effectively With Legacy Code - xp2005 Effective c++chapter1 and2 ์คํ๋ง๋ณด๋ค ์ค์ํ ์คํ๋ง ์ด์ผ๊ธฐ [HaU] ์ ์
๊ธฐ์ ๋ฉด์ ์ค๋น java Tcpl 12์ฅ ํ์ํด๋์ค Java rmi ๊ฐ๋ฐ ๊ฐ์ด๋ Effective c++ chapter 7,8 More effective c++ chapter3 4 Viewers also liked (6)
ํ์ด์ฌ ํ๋ผ์คํฌ๋ก ๋ฐฐ์ฐ๋ ์นํ๋ก๊ทธ๋๋ฐ #1 (ABCD Foundation) [SOPT] ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ฐ ์๊ณ ๋ฆฌ์ฆ ์คํฐ๋ - #01 : ๊ฐ์, ์ ๊ทผ์ ๋ณต์ก๋, ๋ฐฐ์ด, ์ฐ๊ฒฐ๋ฆฌ์คํธ Python ์ดํดํ๊ธฐ 20160815 ์๋ฒ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ ์ํ ์ฒซ ๊ฑธ์ Python ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ Python ์น ํ๋ก๊ทธ๋๋ฐ Similar to HolubOnPatterns/chapter2_1 (20)
์ค์ฉ์ฃผ์ ๋์์ธํจํด 2 ์ธํฐํ์ด์ค๋ก ํ๋ก๊ทธ๋๋ฐํ๊ธฐ Effective c++ chapter 1,2 ์์ฝ ์ดํํฐ๋ธ C++ 5,6 ์ฅ ์คํฐ๋ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ณธ Effective c++ chapter3, 4 ์์ฝ๋ณธ Effective C++ Chapter 2 Summary Effective c++ ์ฑํฐ 2 ์ ๋ฆฌ [์๋ฐ์นดํ] ์๋ฐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ (2017) ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ ํน๊ฐ OOP - Object Oriendted Programing HolubOnPatterns/chapter2_1
- 2. ์ extends๊ฐ ๋์๊ฐ?extend๋ OO์ธ์ด์์ ์ค์ํ ๊ธฐ๋ฅ์ ์ฐจ์ง๋ฐ๋ผ์ extend๋ฅผ ์ด๋ค๋ฉด ๋ญ๊ฐ OO์ ์ธ ๊ฒ์ ํ๊ณ ์๊ตฌ๋~ ํ๊ณ ์๊ฐํ๋ฉด์ ์ฌ๊ธฐ์ ๊ธฐ ๋ง ์ฐ๋ ๊ฒ ๋ฌธ์ (๊ทธ๋ฌ๋ ์ด extends๋ ๋ถ์์ฉ์ด ์ฐธ ๋ง๋ค)๊ฐ์ฒด ์งํฅ์ด๋! ๋์ผํ ํ์
์ ๋ค์ํ ๊ตฌํ์ ์ ๊ณตํ๋ ๋คํ์ฑ(๊ธฐ๋ฐ ํด๋์ค์ ํ๋์ ์ด๋ฅผ ์์ํ ํด๋์ค์์ ์ฌ์ ์ ํ๋ ๊ฒ)์ด ๊ฐ์ฒด ์งํฅ ์ฌ๊ณ ์ ํต์ฌ!์ด๋ฐ ๋คํ์ฑ์ extends ๋ณด๋ค๋ implements(์ธํฐํ์ด์ค)๋ฅผ ํตํด ๊ฐ์ฅ ์ ์ฑ์ทจํ ์ ์์!(์์ผ๋ก ๊ณ์ ์ค๋ช
ํ ๊ฒ์)
- 3. ์ธํฐํ์ด์ค vsํด๋์ค๊ตฌํ ์์๋ณด๋จ ์ธํฐํ์ด์ค ์์์ด ํจ์ฌ ๋ฐ๋์ง์ ์ฐ์ฑ์ ์์ค๊ตฌํ ์์์ด ๋์์ด์ ๋๋ฒ ์ด์ค ํด๋์ค์ ํจ์๊ฐ ์ด๋ฏธ ๊ตฌํ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ด ๊ตฌํ์ ์ข
์์ ์ผ ์ ๋ฐ์ ์๊ธฐ ๋๋ฌธ!๊ฒฐ๊ณผ์ ์ผ๋ก ์์ ์ด ํ๋ฌ!์ ์์ผ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ ํต์ฌ์ค ํ๋๋ ๋์์ธ๊ณผ ๊ฐ๋ฐ์ ๋ณํ! ์๋ฒฝํ ์๊ตฌ ์ฌํญ ๋์ถ ์ด์ ์ ํ๋ก๊ทธ๋๋ฐ ์์.. ์ฆ ์์ฃผ ๊ณ ์ณ์ผ ๋๋ค๋ ์ฌ์ค! ์ ์ฐํ ํ๋ก๊ทธ๋จ์ด ์๋๋ผ๋ฉด ๋ณํ ๊ฐ๋ฐ์ ๋ถ๊ฐ๋ฅ!
- 8. ์ธํฐํ์ด์ค vsํด๋์ค(์์ 2)f(){ Collection c = new Hashset(); //... examine(c);}void examine(Collection c){ for(Iteratori = c.iterator(); i.hasNext();) //i.next() ํตํด ์์๋ฅผ ์ํ}f(){ Collection c = new Hashset(); //... examine(c.iterator());}void examine(Iteratori){ for(; i.hasNext();) //i.next()๋ฅผ ํตํด ์์๋ฅผ ์ํ}Iterator๋ฅผ ๋ฐ๊ธฐ ๋๋ฌธ์ Collection์ผ๋ก๋ ์ฒ๋ฆฌ๋ชปํ๋Map๋ ์ฒ๋ฆฌ ๊ฐ๋ฅIterator๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉํ์ฌ ๋ค๋ฅด๊ฒ ์ํํ๋ ๊ธฐ๋ฅ ๊ฐ๋ฅ์ผ๋ฐํ๋ ๋ฒ์ ์ ์์ ์์ด ์ด๋ฌํ ๋ชจ๋ ๋ณํ๊ฐ ์์ฉ๊ฐ๋ฅ!!์ ์ฐํ๊ตฌ๋!!
- 9. ๊ฒฐํฉ๋๊ฒฐํฉ์ด ์๋ ํ๋ก๊ทธ๋จ์ด๋ ์กด์ฌํ์ง ์์ง๋งโฆ..ํ๋ก๊ทธ๋จ์์ ์ฝ๋๊ฐ์ ๊ฒฐํฉ๋๊ฐ ๋ฎ์์๋ก ์ข๋ค.์ ์ญ ๋ณ์๊ฐ ๋์์ด์ !(๊ฐํ ๊ฒฐํฉ)์ ์ญ ๋ณ์์ ํ์
์ ๋ฐ๊พผ๋ค๊ณ ์๊ฐํ์๋ ์ด ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ์ฝ๋๋ฅผ ๊ฒ์ฌ,์์ ,์ ํ
์คํธํด์ผํจ
- 10. ๊ฒฐํฉ๋OO ๊ฐ๋
์ ์ถฉ์คํ ์งํค๋ฉด ๊ฒฐํฉ๋๋ฅผ ์ค์ผ ์ ์๋ค..์์๋ฅผ ์ ์ธํ ๋ชจ๋ ํ๋๋ private๋ก!get, set์ ์ค์ฌ๋ผ..(public์ด๋ ์ง๋ฐฐ์์)๋์ค์ ์ ์ง๋ณด์์ ํธ๋ฆฌํจ
- 11. ๊นจ์ง๊ธฐ ์ฌ์ด ๊ธฐ๋ฐ ํด๋์ค ๋ฌธ์ ๊ตฌํ ์์์ ์์๊ณผ ๋ถ๋ชจ ํด๋์ค๊ฐ ๊ฐํ ๊ฒฐํฉ์ ์๋ฏธ๋ถ๋ชจ๋ฅผ ์กฐ๊ธ ์์ ํ์์๋ ์์์ด ๋ง๊ฐ์ง ์ ์์
- 12. ๊นจ์ง๊ธฐ ์ฌ์ด ๊ธฐ๋ฐ ํด๋์ค ๋ฌธ์ (์์ ) class Stack extends ArrayList{ private inttopOfStack = 0; public void push(Object article) { add(topOfStack++, article); } public Object pop() { return remove(--topOfStack); } public void pushMany(Object[] articles) { for(inti =0; i < articles.length; ++i) push(articles[i]); }}//์คํ์ํ์ฌ ์์น๋ฅผ ์ ์ฅํ๋ topOfStack๋ฅผ ์ ์ํจStack aStack = new Stack();aStack.push("1");aStack.push("2");aStack.clear(); //clear๋ ArrayList Method๋๋ต ๋ญํจ.. topOfStack์ 0์ด ์๋จ๊ฐ๋ง..!์์์ ํ๊ฒ ๋๋ฉด ์ํ์ง ์๋ ๋ฉ์๋clear() ๊น์ง ๋ชจ๋ ์์ํ๊ฒ ๋จ
- 13. ๊นจ์ง๊ธฐ ์ฌ์ด ๊ธฐ๋ฐ ํด๋์ค ๋ฌธ์ (์์ )ArrayList๋ฅผ ์์ํ ๊ฒ ์์ฒด๊ฐ ๊ฐ๋
์ ์ผ๋ก ๋ง์ด์๋จStack is ArrayList๊ฐ ์๋๋ค..์ด๋ป๊ฒ ๊ณ ์น ๊น?Clear()์์ ์์ธ๋ฅผ ๋์ ๋ฒ๋ฆฌ์!์ด๊ฑด ์ปดํ์ผ ์๋ฌ๋ฅผ ๋ฐํ์ ์๋ฌ๋ก ์ฎ๊ฒจ ๋ฒ๋ฆฌ๋ ๋งํ ๋์ ์๊ฐtopOfStack๋์ size()๋ฉ์๋ ์ด์ฉ์ด๊ฑด clear()๋ง ์ด๋ป๊ฒ ๊ณ ์ณ๋ณด๊ฒ ๋ค๋์๊ฐ๋ค๋ฅธ ํจ์์์ ๊ฐ๋งโฆ. (ex. removeRange..)์ง๊ธ ์ํฉ์์ ์์์ ์ดํ๊ฐ ์๋ค..์์๋์ ํฉ์ฑ์ ์ด์ฉํ์!!!
- 14. ๊นจ์ง๊ธฐ ์ฌ์ด ๊ธฐ๋ฐ ํด๋์ค ๋ฌธ์ (์์ )class Stack{private inttopOfStack = 0;private ArrayListtheData = new ArrayList();public void push(Object article){theData.add(topOfStack++, article);}public Object pop(){ return theData.remove(--topOfStack);}public void pushMany(Object[] articles){for(inti =0; i < articles.length;++i) push(articles[i]);}public int size(){ return theData.size();}}์์ํ์ง ์๊ณ ArrayList๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํํ์๋ค.์ด์ ArrayList๊ฐ ์์ ๋๋ ์ผ์ด ์๊ฒจ๋ ๊ฐ๋งํ๋ ์ผ์ ์์ด์ง!๋ณ๊ฒฝ์ ๊ฐํด์ง~
- 15. ๊นจ์ง๊ธฐ ์ฌ์ด ๊ธฐ๋ฐ ํด๋์ค ๋ฌธ์ (์์ )class MonitorableStack extends Stack{private inthighWaterMark = 0;private intlowWaterMark = 0;public void push(Object o){push(o);if(size() > highWaterMark)highWaterMark = size();}public Object pop(){Object poppedItem = pop();if(size() < lowWaterMark)lowWaterMark=size();return poppedItem;}public intmaximumSize(){return highWaterMark;}public intminimumSize(){return lowWaterMark;}public void resetMarks(){highWaterMark=lowWaterMark=size();}}}85~86์ชฝ ์์ ์ธ๋ฐ, Stack์ ๋๋ค์ ๊ตฌํ ์์ํ๋ MonitorableStack์ ๋ํด ์ ๊ธฐํ๊ณ ์์..์์ ๊ฒฝ์ฐ์ฒ๋ผ pushMany์์ ๋ ๊ฐ๋งํ๋ ์ผ์ด ๋ฐ์๋จ..!์ด์ ๊ฐ์ ์ด์ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ตฌํ์์์ด๋ ๊ฐ๋
์ด Base Class์ ๋ญ๊ฐ ๊ตฌํ์ด ๋์ด ์๋๋ฐ ๊ตฌํ์์ ์๋์๋ ๋ค๋ฅด๊ฒ ๋ฒ ์ด์ค ํด๋์ค์ ํจ์๊ฐ ๋์ํ ์ ์๊ธฐ ๋๋ฌธ์..์ ๋ฆฌํ๋ฉด.. ๊ตฌํ์์ ์ฐ์ง๋ง! ๊น๋นกํ๋ค๊ฐ์ค๋์ํ๋ค๊ตฌ!!
- 16. ๊นจ์ง๊ธฐ ์ฌ์ด ๊ธฐ๋ฐ ํด๋์ค ๋ฌธ์ (์์ )๊ตฌํ ์์์ ๋ฌธ์ ๊ฐ ๋ง๋ค. ์ ๋งํ๋ฉด์ธํฐํ์ด์ค ์์์ ์ฌ์ฉํ๋ผ!์์๋ ๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์ ์๋ชป๋ ์ผ๋์๋ค์ธํฐํ์ด์ค ์์์ ์ฌ์ฉํ๋ฉด ์์ ํ๊ฒ ๋คํ์ฑ ํ๋!๊ตฌํ ์์์ ํ์ํ ๊ธฐ๋ฅ์ด์ง๋ง ์ํํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ๊ธฐ ์ ์ ์ถฉ๋ถํ ์ฌ์ฌ์๊ณ ํ!๋ฌผ๋ก ์ธํฐํ์ด์ค ์์์ ์ผ์ผํ ๋ค ๋ง๋ค์ด์ค์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฝ๋ฉ์ด ๋๋ ๋จ์ ์ด ์๊ธฐ๋ ํ๋ค.ํ์ง๋ง ์ค๋์ํ๋ ๊ฒ๋ณด๋ค ๋ซ๋คโฆ! (์ดํด๋ฆฝ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ์์ ๋ฉ์๋๋ฅผ ๋ง๋ค ์ ์๋ค๊ณ ํจ)๊ทธ๋ฌ๋ ์ด๋ ๊ฒ ๋งํ๋ ์ ์๋๋คโฆ๋ ๊ธฐ๋ฐ ํด๋์ค ์์ ํ ๋๋ง๋ค ํ์ ํด๋์ค๋ ๋ค ๊ฒํ ๋ฅผ ํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ์๋ค๊ตฌ!!!์ด๋ฏธ ๋น์ ์ ๊ธฐ๋ฐ ํด๋์ค๋ฅผ ํ์ฅํ๋ ๊ฒ์ด ์๋๋ผ ์ธํฐํ์ด์ค ๊ตฌํ์ ํ๊ณ ์์์ด๋คโฆ ๊ฑ ์ธํฐํ์ด์ค ๊ตฌํ์ ํ์์ค.
- 17. ๊นจ์ง๊ธฐ ์ฌ์ด ๊ธฐ๋ฐ ํด๋์ค ๋ฌธ์ (์์ )์์์ ์ค๋ช
ํ Stack, MonitorableStack์ ๋ต์โฆ์ฃ์กํฉ๋๋คโฆ ํ์ดํ์ด ๋ ๋ง์์โฆ. 88,89์ชฝ์ ํด์ฃผ์ธ์..Interface๋ก Stack ๋ง๋ญ๋๋ค.SimpleStack์ implements๋ฅผ ํตํด ๊ตฌํํจSimpleStack์ ArrayList๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ฅ์ ๊ตฌํ - ์์(ํฉ์ฑ)MonitorableStack์์ญ์ implements๋ฅผ ํตํด ๊ตฌํMonitorableStack์ SimpleList๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ฅ์ ๊ตฌํ โ ์์(ํฉ์ฑ)
- 19. ํ๋ ์์ํฌMFC๋ฅผ ์๊ทผ์๊ทผ ์น๊ณ ์๋๋ฐโฆ.MFC๊ฐ ๋๋ฆฌ ์ฌ์ฉ๋ฌ๊ธฐ ๋๋ฌธ์ ๋ง์์ ๋ฐฉ์์ ์ฌ๋ฐ๋ฅธ ๊ฑฐ์ผ๋ผ๊ณ ๋ง์ด๋ค ์๊ฐํ๊ณ ์์MFC๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ตฌํ ์์ ๊ธฐ๋ฐ์ด๋ค.View, document๋ฅผ ์์ํด์ ์ฐ๊ณ ์์..์ญ์. ๊ฐ๋ง์ ์ง๋ฆ๊ธธโฆ๋ํ ๋ญ๊ฐ ๊ธฐ๋ฅ์ ๋ณ๊ฒฝํ๊ณ ์ถ์ผ๋ฉด ์์ ๊ธฐ๋ฐ์ ํด๋์ค๋ฅผ ์์ํด์ ๋ง๋ค์ด์ผ ๋๋๋ฐ ์ด๋ ๊ฒ ๋๋ฉด ํด๋์ค๊ฐ ์์ฒญ๋์ด๋๊ฒ ๋๊ณ ํด๋์ค๊ฐ ๋์ด๋๋ฉด ๋์๋ก ๊ฐ๋ฐ๊ธฐ๊ฐ์ ๊ธธ์ด์ง๋ค.
- 20. ์ง๊ธ๊น์ง ๊ตฌํ์์์ ํํ๋ฅผ ๋ณด์
จ์ต๋๋ค. ์ด์ ๋ณธ๊ฒฉ์ ์ผ๋ก ํจํด์ ๋ณด์์.. ํ์ง๋ง์ฌ๊ธฐ์๋ ๊ตฌํ ์์์ ํํ๋ฅผ์ค๋ช
ํ๊ธฐ ์ํด ํจํด์ ์๋ก ๋ญ๋๋ค.Template Method ํจํดFactory Method ํจํด(์ ๊ฐ ๋ฌธ์ ์)
- 21. Template Method ํจํดTemplate Method ํจํด๊ธฐ๋ฐ ํด๋์ค ์ฝ๋๊ฐ ์ค๋ฒ๋ผ์ด๋ฉ ๊ฐ๋ฅํ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ ๋ฉ์๋์ ๊ตฌํ์ ๊ธฐ๋ฐ ํด๋์ค๋ฅผ ๊ตฌํ ์์ํ ํด๋์ค์ ์ ๊ณตํ๋..์ ์๋ ์ด๋์๊ณผ ํจํด์ ๊ฒฝ๊ณ๊ฐ ๋ชจํธํ ์ ๋์ ํจํด์ด๋ผ๊ณ ํจ ํจํด ์ฐธ ์ฝ์ฃ ์..~~?
- 22. Factory Method ํจํดFactory Method ํจํด์ ๊ธฐ๋ฐ ํด๋์ค์ ์๋ ค์ง์ง ์์ ๊ตฌ์ฒด ํด๋์ค๋ฅผ ์์ฑํ๋ Template Method๋ผ ํ ์ ์๋ค.์ฌ์ค ์ฝ๋ ๋ณด๊ณ ์ดํดํ๋ ๋ฐ ์ ๋ง ์ด๋ ค์ ์;; Factory Method ํจํด์ ์์ฃผ ์ ์ฐํ์ง๋ง(๊ธฐ๋ฅ ์์ ์ถ๊ฐ๊ฐ ์ฝ๋ค)ํ์ ์ด์์ผ๋ก ๋ณต์กํ๋ค. ์ด ๋ณต์กํจ์ด ์ ์ง ๋ณด์์ฑ๊ณผ ์ฌ์ฉ ํธ์์ฑ์ ํฌ๊ฒ ํด์นจ..์ฑ
์ ์์ ๋ ๋๋ฌด ๋ณต์กํ์ฌ ๋ค๋ฅธ ์์ ๋ฅผ ์ค๋น์ธ์ฉ : http://underclub.tistory.com/125
- 23. Factory Method ํจํดProduct๋ Factory Method ํจํด์ ์ฌ์ฉํ์ฌ ์์ฑํ ๋ถ๋ชจํด๋์คIDCard๋ ์ค์ ์์ฑ๋๋ ์์ ํด๋์คFactory๋ Product๋ฅผ ์์ฑ์ ๋ด๋นํ๋ ํด๋์คIDCardFactory๋ ์ค์ ๊ธฐ๋ฅ์ ๊ฐ์ง ์์ Product๋ฅผ ์์ฑํ๋ ํด๋์ค
- 24. Factory Method ํจํดUse ํจ์๊ฐ product๋ง๋ค์ ๊ณ ์ ๊ธฐ๋ฅ์ ๋ด๋นCreate๋ public์ final๋ก ๊ฐ์ฒด์์ฑ์ ์ ํจ์๋ก ๋ด๋นCreateproduct์ registerproduct๋ ์์ฑํด์ค ๋๊ฐ์ฒด๋ง๋ค ๋ค๋ฅธ ๊ธฐ๋ฅ์ ๋ถ์ฌํด์ค ์ ์์(abstract)
- 25. Factory Method ํจํดFactory Method ํจํด์ ๋ฌธ์ ์ ๋ญ๊ฐ ํจํด์ ์ฌ์ฉํ๊ธฐ ์ํด extends๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ ๋์๋ค.Product ๋ฅผ ์์ํด์ IDCard๋ฅผ ๋ง๋ค๊ณ ์๋๋ฐ ์ด๋ Factory์์ ์ฌ์ฉํ๊ธฐ ์ํด ์ด๋ฐ ๊ตฌ์กฐ๋ก ๋ง๋ค์๋ค. Extends๊ฐ ํ์ํด์ ํ๊ฒ์ธ ์๋๋ผ!!!;;Factory Method ํจํด์ extends ๊ด๊ณ๋ฅผ ์๋ชป ์ฌ์ฉํ๊ณ ์๋ค.!! ๋์์ ์๋ค. Strategy ํจํด์ด ๋ฉ์ง ๋์์ด ๋ ์ ์๋ค.(์ ๋ชจ๋ฅธ๋ค๋ โฆ ๋ด์ ์ค๋ช
์ข ์โฆ๋ถํ ใ
)์ค์ ์ฌ์ฉIDCardFactory๋ฅผ ๋ง๋ค๊ณ Create ํจ์๋ก ์์ฑUse ํจ์๋ก ์ฌ์ฉ
- 26. ๊นจ์ง๊ธฐ ์ฌ์ด ๊ธฐ๋ฐ ํด๋์ค ๋ฌธ์ ์ ๋ฆฌ๊ผผ์๋ฅผ ์ฐ์ง๋ง๊ณ , ๊ตฌํ ์์ ๋์ ์บก์ํ(ํฉ์ฑ)์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ผ!์์ผ๋ก ์ค๋ช
ํ ํจํด ์ค ์๋น์๊ฐ ๊ตฌํ ์์์ ์ธํฐํ์ด์ค ์์์ผ๋ก ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ด์ฉ์ถ์ํ๋ฅผ ์ํ๋ผ.. ์ถ์ํ๋ฅผ ์ํ๋ฉด ์ ์ฐํด์ง(์์ ์ด ์ฌ์์ง), ํ์ง๋ง ๋ณต์ก์ฑ์ ์ฆ๊ฐํจ.์ ์ฐ์ฑ๊ณผ ๋ณต์ก์ฑ ์ฌ์ด์์ ์ ์ ํ ํธ๋ ์ด๋ ์คํ๋ฅผ ํ๋ผ~์ง๊ธ๊น์ง ํ ๋ง๋ค์ ์ ๋ฆฌํ ์ฑํฐ์..
- 27. ์ธ์ extends๋ฅผ ์ฌ์ฉํด๋ ์ข์๊ฐ?ํด๋์ค ์ ๊ทํํด๋์ค์ ์ค๋ณต๋๋ ๊ธฐ๋ฅ์ ์ ๊ฑฐํ๋ ๊ฒฝ์ฐ๊ตฌํ ์์์ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด ํ์ ํด๋์ค์์ ๋์ผํ ์ฝ๋๋ฅผ ๋ฐ๋ณตํด์ผ ํจ์ฌ๊ธฐ์๋ ๊ตฌํํ๊ณ ์ ํ๋ ํ๋ก๊ทธ๋จ์ด ๋ฐํ์์ ๊ฐ์ฒด๋ค์ด ์๋ก ์ด๋ป๊ฒ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์ง์ ๋ํ โ๋์ ๋ชจ๋ธโ์ ๊ท๋ช
ํ ํ!์ ๊ฐ ํด๋์ค๊ฐ ์ฌ์ฉํ๋ ๊ณตํต์ ์ธ ๊ธฐ๋ฅ์ด ํ์
์ด ๋๋ค๋ฉด ๊ทธ ๋! extends๋ฅผ ์ฌ์ฉํ๋ผ๊ณ ํจ!์ํ๋๋ ์ฐ์ฐ์ด ๊ณต์ ๋ ๋Is- a ๊ด๊ณ๊ฐ ํด๋์ค ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๊ฒ์ฆํ๋ ๋ฐ ํจ์จ์ ์ด์ง ๋ชปํจManager is a Employee ๋ผ๊ณ ํ ๋ ๊ณผ์ฐ Manager Extends Employee ์ธ๊ฐโฆ.Employee์ Manager๊ฐ ๊ฐ์ ์ผ์ ํ ์๋์ ํ ๋ค๋ฅธ์ผ์ ํ ์๋Manager๊ฐ Employee๊ฐ ํ๋ ์ผ๊น์ง ์ด๊ดํด์ ํ ์๋๊ฒฐ๋ก : ์์ฐ์ด์ ํ๋๋ฆฌ์ง ๋ง๊ณ , ์ํ๋๋ ์ฐ์ฐ์ ๊ณต์ ์ ์ด์ ์ ๋ง์ถ์ด๋ผ!์ปดํ์ผ ํ์ ํ์
๊ฒ์ฌ์ปดํ์ผ ํ์์ ํ์
๊ฒ์ฌ๋ฅผ ํด์ผํ ๊ฒฝ์ฐ๊ฐ ์๋ค.๋ฌผ๋ก ํ์
๊ฒ์ฌ๋ฅผ ํ์ง์๊ณ Implements๋ฅผ ์ฌ์ฉํ๋ ์ชฝ์ผ๋ก ๊ตฌํํ ์๋ ์๋ค.๋ณต์ก๋๋ฅผ ๋ถ์ํ ํ ๋จ์ํ ๊ฒ์ ์ฌ์ฉํ์